MongoDB Python ドライバ:不正な正規表現要素によるBSONデコード時の範囲外アクセス

### 影響
C拡張のBSONデコーダは、正規表現要素のパターンとフラグの文字列をstrlenでスキャンした後、ドキュメントの残りの長さを確認しますが、細工された途切れた正規表現要素によって、呼び出し元のバッファの末尾を超えて読み込みが発生する可能性があります。bson.decodeとbson.decode_allは、NUL終端記号を持たないmmapと配列バッファを受け入れますが、これにより読み込みがマッピングされていないメモリ領域に及ぶ可能性があり、捕捉不可能なSIGSEGVによってプロセスが終了する可能性があります。そのようなバッファから信頼できないBSONをデコードするアプリケーションはすべて影響を受けますが、範囲外のバイトはコンテンツとして返されないため、影響は可用性のみです。NUL終端されたバッファ(bytes、bytearray)の場合、最悪の場合`InvalidBSON`が発生します。ドライバ自体のトランスポートや、純粋なPython環境でのインストールには影響はありません。C拡張がロードされている場合、4.18.2までのすべてのバージョンが影響を受けます。

### 修正
PyMongo 4.18.3で修正されました。不正な正規表現要素は、すべての受け入れ可能なバッファタイプで`InvalidBSON`を発生させます。有効なドキュメントは、変更されずにデコードされます。

### 対策
信頼できないBSONは、NUL終端されたバッファ(bytesまたはbytearray)からのみデコードし、mmapの入力を最初にコピーします。例えば、bytes(mm[:size])のようにします。

影響を受けるパッケージ:
- pip (Python) pymongo: 影響を受けるバージョンは3.9.0以上、4.18.2以下、4.18.3で修正済み。