PHP SOAP Extension の脆弱性 CVE-2026-6722 などが FIX:リモートコード実行の恐れ

PHP SOAP Extension Flaw Could Let Attackers Execute Code Remotely

2026/05/11 gbhackers — 先日に公開された PHP の脆弱性の中で、広く使用される SOAP エクステンションに存在する問題が、サイバーセキュリティ・コミュニティ全体に深刻な警鐘を鳴らしている。新たに特定された脆弱性の中には、対象サーバ上でのリモートコード実行 (RCE) を攻撃者に許す、深刻なものが含まれる。

その他にも、PHP コアモジュール全体において、Use-After-Free (UAF) バグ/NULL ポインタ逆参照/out-of-bounds 読み取りなどの、複数の Medium レベルの脆弱性も発見された。

セキュリティ専門家およびシステム管理者は、即時のパッチ適用により、環境を保護する必要がある。歴史的に見て、PHP SOAP エクステンションは攻撃者の主要な標的である。以前にも、CVE-2021-21702 の悪用により、不正な XML を介した未認証 DoS 攻撃が発生したという事例も存在する。XML 処理の複雑性は、攻撃者が悪用できる微妙なメモリ管理バグを生み出し続けている。

PHP SOAP エクステンションの脆弱性
  • 深刻度 High と評価される脆弱性 CVE-2026-6722 は、ext-soap パッケージに存在する Use-After-Free (UAF) の欠陥である。この問題は、XML グラフ内で id および href 属性を使用した、オブジェクトの重複を排除するための処理に起因する。

XML グラフ走査中に、PHP は SOAP_GLOBAL(ref_map) と呼ばれるハッシュマップにプレーン・オブジェクトを格納するが、この際に参照カウントが適切にインクリメント (増加) されない。攻撃者は Apache Map メカニズムを悪用して既存エントリを上書きし、オブジェクトを早期解放することで、この欠陥を悪用できる。

具体的には、細工された XML ペイロードにより古いオブジェクトを評価させ、その直後に NULL で上書きすることで、参照マップ内ポインタを無効化できる。その後に、href 属性により、この無効メモリを再参照する。

さらに、解放済みメモリへ文字列を割り当てることで、メモリ領域に対する高度な制御が可能となる。このレベルのメモリ操作により、標準的なメモリ保護を回避した、高い再現性を持つ RCE 経路が形成される。

追加の SOAP および PHP コア脆弱性
  • 脆弱性 CVE-2026-7261 は、SoapServer のセッション永続化機能に関連する Medium レベルの Use-After-Free (UAF) 欠陥である。

SOAP_PERSISTENCE_SESSION フラグにより、セッション間でのハンドラ・オブジェクトの保持が可能である。しかし、この soap.c の関数は、false が返された場合や、致命的な例外が発生した場合に、このフラグを適切に処理しない。

その結果、オブジェクトが解放されても、セッション・ストレージへの書き込みが行われ、Use-After-Free 状態が発生する。この脆弱性の悪用においては特定のコンフィグが必要となるが、複雑なセッション状態を持つアプリケーションにおいては重大なリスクとなる。

脆弱性 CVE-2026-7262 は、Apache Map デコーダにおける NULL ポインタ逆参照の欠陥である。to_zval_map() はキー欠如を検証するが、<value> ノード欠如の検証が不十分である。

したがって、typemap が有効な場合には、値が欠如している Apache:Map ノードにより処理スレッドがクラッシュし、ユーザー操作を必要としない DoS 攻撃ベクターとなる。

SOAP 以外にも PHP コアに 2 件の out-of-bounds 読み取り脆弱性が存在する。

  • 脆弱性 CVE-2026-7258 は、urldecode() に影響を及ぼす欠陥である。isxdigit() へ負の値を渡す際に、unsigned 変換が行われずに符号拡張が発生し、NetBSD などでメモリ境界外読み取りが発生する。
  • 脆弱性 CVE-2026-6104 は、mb_convert_encoding() におけるグローバル・バッファ over-read の欠陥である。NUL バイトを含むエンコード名により strncasecmp が早期終了し、隣接グローバル・メモリの読み取りが発生する。
影響の範囲

これらメモリ破損およびロジック破綻の脆弱性は、広範な PHP バージョンに影響する。具体的な影響範囲は、8.2.31/8.3.31/8.4.21/8.5.6 未満である。高いリスクが生じるのは、SOAP エクステンション/URL デコード/多バイト文字変換処理で、未信頼の入力を扱うアプリケーションである。

すでに PHP 開発チームは、最新リリースで厳格なメモリ安全性チェックを導入し、これらの問題を修正している。管理者およびホスティング事業者にとって必要なことは、速やかな 8.2.31/8.3.31/8.4.21/8.5.6 へのアップグレードである。

CVE IDSeverity (CVSS)WeaknessAttack TypeVector
CVE-2026-6722HighCWE-416: Use-After-FreeRemote Code Execution (RCE)Network
CVE-2026-7261ModerateUse-After-FreeUse-After-FreeNetwork
CVE-2026-7262ModerateNULL pointer dereferenceDenial of Service (DoS)Network
CVE-2026-7258ModerateCWE-125: Out-of-bounds ReadOut-of-bounds ReadNetwork
CVE-2026-6104ModerateCWE-125: Out-of-bounds ReadInformation DisclosureNetwork

高深刻度の SOAP 脆弱性の修正では、グローバル参照マップ追加前に参照カウントを増加させ、処理終了時に安全に解放するデアロケータが導入された。

これらの発見と迅速な修正は、オープンソース・セキュリティ・コミュニティの協力の成果である。報告者は以下のとおりであり、修正パッチは iluuu1994 が開発し ndossche がレビューした。