Proto6:Protobuf.js で 6 件の重大な脆弱性を発見、データおよび AI システムに脅威
サイバーセキュリティ研究者らが、人気の JavaScript および TypeScript 実装である Protocol Buffers の protobuf.js において、Proto6 と総称される 6 件の重大な脆弱性を発見しました。これらの脆弱性は、リモートコード実行 (RCE) およびサービス拒否 (DoS) 攻撃を可能にする可能性があり、多数の Node.js アプリケーション、Google Cloud クライアントライブラリ、さらには AI エコシステムにも影響を与える可能性があります。
Cyera のサイバーセキュリティ研究者らが、広く使用されている Protocol Buffers (Protobuf) の JavaScript および TypeScript 実装である protobuf.js 内で、半ダースの脆弱性を明らかにしました。Proto6 と総称されるこれらの脆弱性が悪用された場合、リモートコード実行 (RCE) やサービス拒否 (DoS) 攻撃を含む深刻な結果につながる可能性があります。
Cyera のセキュリティ研究者である Assaf Morag 氏は、潜在的な影響について次のように強調しました。「影響を受ける環境では、単一の悪意のある protobuf スキーマ、ディスクリプタ、または細工されたペイロードが、クラッシュ、ランタイム破損、あるいはコード実行を引き起こすのに十分な場合があります。」
Protobuf は、2008 年の一般公開前に Google によって内部的に開発および利用された、構造化データをシリアライズするためのオープンソースで言語に依存しないメカニズムです。
### Node.js およびクラウド環境全体にわたる広範な影響
特定された脆弱性は、主に protobuf.js を利用する Node.js アプリケーション、Google Cloud クライアントライブラリ、Baileys などのメッセージングフレームワーク、および CI/CD パイプラインに影響を与えます。Cyera は、Protobuf データをデシリアライズしたり、protobuf.js を使用してスキーマからコードを生成したりするあらゆる Node.js サービスがリスクにさらされている可能性があると警告しています。
### Proto6 脆弱性の解説
6 件の脆弱性は以下の通りです。
* **CVE-2026-44289** (CVSS スコア: 7.5): 無制限の protobuf 再帰による DoS。
* **CVE-2026-44290** (CVSS スコア: 7.5): 安全でないオプションパスを持つスキーマのロード時のプロセス全体 DoS。
* **CVE-2026-44291** (CVSS スコア: 8.1): プロトタイプ汚染後のコード生成ガジェット。
* **CVE-2026-44292** (CVSS スコア: 5.3): 生成されたメッセージコンストラクタにおけるプロトタイプインジェクション。
* **CVE-2026-44294** (CVSS スコア: 5.3): 生成されたコードでのフィールド名の細工による DoS。
* **CVE-2026-44295** (CVSS スコア: 8.7): 細工されたスキーマ名からの pbjs 静的出力におけるコードインジェクション。
Cyera はこれらの脆弱性を、ライブラリがスキーマおよびメタデータ入力を信頼できるとデフォルトで想定していることに起因すると指摘しています。この重大な検証の不備は、アプリケーションの動作を操作し、コード実行につながる可能性があります。
### 攻撃シナリオ
Morag 氏は、悪用には特定の条件が必要であるものの、これらの条件は、さまざまなサービスやプラットフォーム間でデータ、スキーマ、設定ファイルを頻繁に交換する現代のデータおよび AI エコシステムにおいて、ますます一般的になっていると強調しました。
攻撃者は、悪意のある protobuf スキーマを注入して CI/CD ワークフローを侵害し、ビルドシークレットの漏洩を引き起こす可能性があります (CVE-2026-44295)。あるいは、特別に細工されたメッセージが、Baileys を使用して構築された WhatsApp ボットのような Node.js サービスをクラッシュさせる可能性があります (CVE-2026-44292)。
### 最も深刻な脆弱性: CVE-2026-44291
最も重大な脆弱性である CVE-2026-44291 は、Node.js アプリケーションが攻撃者制御の入力を処理する際にコード実行を可能にします。
別のセキュリティ研究者である Vladimir Tokarev 氏は、そのメカニズムを次のように説明しました。「その入力はプロトタイプ汚染ガジェットに到達します。その後、同じプロセスが protobuf.js を使用してメッセージをエンコードまたはデコードします。protobuf.js はプレーンなプロパティルックアップを介して型名を解決するため、汚染された Object.prototype は、攻撃者制御の文字列を有効な protobuf プリミティブのように見せることができます。」
彼はさらに、「protobuf.js はその文字列を生成されたエンコーダまたはデコーダ関数に挿入し、Function() でコンパイルします。攻撃者は Node.js プロセス内で任意の JavaScript 実行を取得します。」と付け加えました。
### 影響を受けるバージョンとパッチ
ツールで脆弱性のあるバージョンは以下の通りです。
* protobuf.js: バージョン <= 7.5.5 および >= 8.0.0 <= 8.0.1
* protobufjs-cli: バージョン <= 1.2.0 および >= 2.0.0 <= 2.0.1
パッチは、protobufjs バージョン 7.5.6 および 8.0.2、protobufjs-cli バージョン 1.2.1 および 2.0.2 で利用可能です。潜在的な脅威を軽減するために、これらのアップデートを直ちに適用することを強く推奨します。
### AI ワークロードのための新しい攻撃サーフェス
Cyera は、その広範な影響を次のように締めくくりました。「protobuf.js はデータベース、ベクトルストア、推論パイプライン、オーケストレーションシステム、CI/CD ツール、クラウド SDK の内部で広く使用されているため、悪用に成功すると、機密性の高いエンタープライズおよび AI ワークロードに大規模な影響を与える可能性があります。」
このインシデントは、増加する傾向を浮き彫りにしています。「現代のソフトウェアは、スキーマ、メタデータ、設定ファイルを、自動化、オーケストレーション、コード生成を推進する信頼された入力としてますます扱っています。それらの信頼の仮定が破られると、データは振る舞いになります。その変化は、セキュリティチームが特定して管理することを学ばなければならない新しい攻撃サーフェスを作成します。」