protobufjsはprotobuf定義をJavaScript(JS)関数にコンパイルします。バージョン8.6.0および7.6.3以前では、protobufjsはprotobufjsのランタイムヘルパーで使用されるプロパティと衝突する可能性のある特定のスキーマ由来の名前を受け入れていました。影響を受ける既知の名前には、hasOwnPropertyという名前のフィールド、protobufjsのJSON/リフレクションディスクリプター経由で読み込まれた場合の$typeのようなフィールドやoneofの名前、そして生成されたヘルパー名がrpcCallであるサービスメソッドが含まれます。影響を受けるメッセージまたはサービスタイプが使用されると、protobufjsは所有プロパティヘルパー、反映された型メタデータ、または基本RPCヘルパーを期待する場所でスキーマ制御されたデータを読み取ることがありました。これにより、影響を受けるデコード後のチェック、検証、オブジェクト変換、反映JSONシリアル化、またはprotobufjs RPCヘルパー呼び出しで決定的な例外や再帰呼び出しが発生する可能性がありました。この脆弱性はバージョン8.6.0および7.6.3で修正されています。
|