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 ID | Severity (CVSS) | Weakness | Attack Type | Vector |
|---|---|---|---|---|
| CVE-2026-6722 | High | CWE-416: Use-After-Free | Remote Code Execution (RCE) | Network |
| CVE-2026-7261 | Moderate | Use-After-Free | Use-After-Free | Network |
| CVE-2026-7262 | Moderate | NULL pointer dereference | Denial of Service (DoS) | Network |
| CVE-2026-7258 | Moderate | CWE-125: Out-of-bounds Read | Out-of-bounds Read | Network |
| CVE-2026-6104 | Moderate | CWE-125: Out-of-bounds Read | Information Disclosure | Network |
高深刻度の SOAP 脆弱性の修正では、グローバル参照マップ追加前に参照カウントを増加させ、処理終了時に安全に解放するデアロケータが導入された。
これらの発見と迅速な修正は、オープンソース・セキュリティ・コミュニティの協力の成果である。報告者は以下のとおりであり、修正パッチは iluuu1994 が開発し ndossche がレビューした。
- BrettGervasoni:CVE-2026-6722
- iliaal :CVE-2026-7261/CVE-2026-7262
- xfourj:CVE-2026-7258
- AkshayJainG:CVE-2026-6104
訳者後書:PHP の SOAP エクステンションなどで見つかった、深刻な脆弱性について解説する記事です。問題の原因は、複雑な XML データを解析する際のメモリ管理不備や、入力値の検証不足にあります。特に CVE-2026-6722 は、データの参照カウントを正しく制御できなかったことで、解放済みのメモリを悪用して任意のプログラムを実行される (RCE) 恐れがあります。この他にも、サーバを停止させる DoS 攻撃や情報漏洩につながる脆弱性も複数特定されました。ご利用のチームは、ご注意ください。よろしければ、PHP での検索結果も、ご参照ください。
You must be logged in to post a comment.