Node.jsが11件のセキュリティ脆弱性を修正、メモリ枯渇・ファイルアクセス・リクエストスマグリングを防止

Node.jsは、26.x、24.x、22.xの各リリースラインにまたがる11件の脆弱性に対処するセキュリティアップデートを公開しました。この中には、リモートからのメモリ枯渇、ファイルシステムアクセスの制限回避、HTTPリクエストスマグリング攻撃を可能にする高深刻度の欠陥も含まれています。

2026年7月29日に公開された今回のアップデートには、コアコンポーネントへのパッチに加え、HTTPクライアントのundiciやHTTPパーサーのllhttpなど、依存ライブラリのアップグレードも含まれています。

最も深刻な問題は広く使われているランタイム機能に影響しており、特にHTTP/2の処理と実験的機能であるPermission Modelが対象です。これは、バックエンドサービスやAPIをNode.jsに依存する本番環境にとって懸念材料となります。

高深刻度の脆弱性の一つであるCVE-2026-56846は、HTTP/2セッション管理における欠陥で、保持されたヘッダーブロックがmaxSessionMemoryの制限を回避できてしまうというものです。

これにより、攻撃者はリモートから制御不能なメモリ消費を引き起こすことが可能となり、サービス拒否(DoS)状態につながる恐れがあります。

もう一つの重大な問題であるCVE-2026-56848は、HTTP/2処理における再入可能性(re-entrancy)の欠陥に関わるもので、ヒープのuse-after-free状態を引き起こし、メモリ破損を招く悪用が可能です。

ファイルシステムやリソースへのアクセスを制限するために設計されたPermission Modelも、CVE-2026-58043として追跡されている高深刻度の脆弱性の影響を受けています。

ラディックスツリー(radix-tree)によるパスマッチングが不適切であるため、限定的なパスアクセスを許可された攻撃者が、想定された境界を越えて権限のないファイルを読み取ったり変更したりできてしまい、アプリケーションの分離制御が損なわれる可能性があります。中程度の深刻度を持つ複数の脆弱性は、TLS処理、DNS解決、内部モジュールに影響を及ぼします。

特に注目すべきは、CVE-2026-56850です。この脆弱性により、HTTPS Agentの接続再利用時に、異なる証明書構成間で相互TLS(mutual TLS)のIDが不適切に共有されてしまい、機密性の高い認証コンテキストが露出する可能性があります。

もう一つの問題であるCVE-2026-58040は、TLSセッション再利用時のホスト名検証が不完全であることを示しており、中間者攻撃のシナリオにおいてリスクをもたらします。

node:sqliteモジュールもCVE-2026-58041の影響を受けています。この脆弱性では、古くなったイテレータオブジェクトがリセット後に以前準備されたSQL文を再実行してしまい、意図しないデータベース書き込みにつながる恐れがあります。

さらに、CVE-2026-58042は、dns.resolveAny()が異常に大きなDNSレスポンスを受信した際にプロセスの終了を引き起こす可能性があり、細工されたクエリを通じたサービス拒否攻撃を可能にします。

その他の問題としては、偽装されたTypedArrayの長さによって引き起こされるnode:zlibのクラッシュ脆弱性(CVE-2026-58045)や、トレースログやプロセスレポートが制限されたファイルシステムパスの外に書き込まれてしまう2件のPermission Model回避の問題があります。

深刻度は低いものの注目すべき脆弱性であるCVE-2026-58044は、Node.jsベースのプロキシ環境においてリクエストスマグリングのリスクをもたらします。

ヘッダーの切り詰め(truncation)により、Content-Lengthなどの特定のヘッダーがアプリケーションから見える構造からは省略される一方で、バックエンドのリクエスト解析には引き続き影響を及ぼしてしまい、HTTPの非同期化(desynchronization)攻撃につながります。

これらの脆弱性は、現在アクティブなすべてのNode.jsリリースラインに影響し、最も高い深刻度はHighと評価されています。Node.jsチームは、パッチ適用済みのバージョン22.23.2、24.18.1、26.5.1を公開しており、直ちにアップグレードするよう強く推奨しています。サポートが終了(EOL)したバージョンは未修正のままであり、依然として重大なリスクをもたらします。

影響を受けるコンポーネントの範囲の広さと、高深刻度の脆弱性が存在することを踏まえると、本番環境でNode.jsを運用している組織は、アップデートを最優先で適用するとともに、HTTP/2、TLSセッション再利用、実験的なPermission Modelに関わる設定を見直し、リスクを最小限に抑えるべきです。

SOC調査の死角を排除し、ANY.RUNで脅威を早期に封じ込めることで、対応コストと事業への支障を軽減しましょう。

翻訳元: https://cyberpress.org/node-js-patches-11-security-flaws/

本記事は cyberpress.org の記事を翻訳・要約したものです。