脆弱性対応ウォッチ重大・クリティカル脆弱性のクラウド別対応まとめ
最新更新履歴CriticalHigh回避策のみパッチありAWSGCPAzureLinux
Critical CVSS 9.8
CVE-2026-17544

PHP の BCMath 拡張 bccomp() に領域外書き込み(スタックとヒープを破壊)

情報取得日: 2026/07/30・本ページは公開情報の非公式まとめです

CVE IDCVE-2026-17544
製品PHP / PHP 8.4.0〜8.4.23 / 8.5.0〜8.5.8(ext-bcmath を有効にした構成)
CVSS9.8(Critical)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
種別 (CWE)CWE-787 領域外書き込み
登録/公開日2026/07/30
出典https://nvd.nist.gov/vuln/detail/CVE-2026-17544

概要

PHP の BCMath 拡張の bccomp() に、攻撃者が与えた入力で領域外書き込みが起きる欠陥がある。php-src の公式アドバイザリ GHSA-x692-q9x7-8c3f によれば、問題は文字列を内部の数値表現へ変換する bc_str2num() にあり、scale による切り詰めで生じた末尾のゼロがさらに取り除かれる経路で、確保し直したバッファは短くなるのにコピー先のポインタが更新されないため、確保した領域の外へ書き込む。破壊されるのはバッファの確保場所に応じてスタックとヒープの両方に及ぶ。影響を受けるのは 8.4.* が 8.4.24 未満、8.5.* が 8.5.9 未満で、修正版は 8.4.24 と 8.5.9 である。8.2 系・8.3 系は該当コードが入っていないため対象外で、Debian も php8.2 / php7.4 を「脆弱なコードが存在しない」として not-affected と判定している。原因のコードは php-8.4.3RC1 の 063c3c852236ecbe45ab23c0fb271b6292ce82c3 で入り、php-8.4.24 の fa18dab73f9340448c0d5c0a1d75d3fec844b358 で修正された。深刻度は採番元の PHP が CVSS 4.0 で 8.1 High、NVD が Primary として CVSS 3.1 で 9.8 Critical としており、本サイトは NVD の Primary 評価を採用している。CISA の KEV には本稿の確認時点(2026-08-23)で収載されていない。

クラウド/OS 別の対応状況

各ベンダー公式アドバイザリで確認できた事実に基づき整理しています。確認できていない項目は「情報確認中」と明記し、存在しないパッチ番号・バージョンは記載しません。

AWS / GCP / Azure は同じ対応区分です: 回避策のみ
Linux のみ異なります: ディストリ修正あり
環境対応状況対応方法・備考
AWS (ECS/EC2) 回避策のみ
EC2 / ECS 上で ext-bcmath を有効にしている PHP 8.4 系を 8.4.24 以降、8.5 系を 8.5.9 以降へ更新する。コンテナはベースイメージを引き直して再ビルドする。
AWS 側に修正対象は無い。Amazon Linux 2023 の既定の php パッケージは 8.2 系のため本件の対象外だが、remi 等の外部リポジトリで 8.4 系を入れている場合は対象になる。
参照リンク
GCP 回避策のみ
同上。GCE はディストリのセキュリティ更新、Cloud Run / GKE はベースイメージを更新して再ビルドする。
App Engine スタンダード環境の PHP ランタイムは Google が更新する。フレキシブル環境と Cloud Run は利用者のイメージなので更新が要る。
参照リンク
Azure 回避策のみ
同上。Azure VM はディストリのセキュリティ更新、App Service on Linux は対応済みのマイナーバージョンへスタックを切り替える。
App Service の PHP イメージで bcmath が有効かどうかは phpinfo() または php -m で実測する。
参照リンク
Linux ディストリ修正あり
Debian は trixie の php8.4 8.4.24-1~deb13u1(DSA-6406-1)で修正済み。sid / forky は 8.4.24-1。bookworm の php8.2 と bullseye の php7.4 は「脆弱なコードが存在しない」として not-affected。
本件は 8.4.3RC1 で入った回帰なので、8.2 系・8.3 系を使っているディストリは対象外である。トラッカーが not-affected を返すのは未対応ではなく、該当コードが無いという判定であることに注意する。
参照リンク

解決の方向性(パッチ/回避策/代替)

対応は、(1)BCMath を使っているかの確認、(2)bccomp() に外部入力が届く経路の確認、(3)更新、の3段である。まず ext-bcmath は既定で有効な拡張ではないので、有効にしていない環境は影響を受けない。php -m の一覧に bcmath が出るかで判定できる。ただし PHP アプリケーションの依存関係として要求されていることは珍しくない(金額計算や大きな整数を扱うライブラリが composer.json で ext-bcmath を要求する)。自前のコードで使っていなくても、依存ライブラリが有効化を要求している場合があるので、php -m の実測で見ること。次に経路である。bccomp() は2つの数値文字列を比較する関数で、第3引数の scale と組み合わせて使う。本件は攻撃者が値を制御できる場合に成立するので、外部入力(リクエストパラメータ、API のレスポンス、取り込んだファイルの中身)が bccomp() の引数へそのまま渡る箇所があるかを洗う。値が自分のデータベースから来る固定的なものだけであれば、緊急度は下がる。三つ目が更新である。8.4 系は 8.4.24、8.5 系は 8.5.9 以降へ上げる。8.2 系・8.3 系を使っている場合、本件のための更新は不要である(ただし同時に公開された CVE-2026-17543 は 8.2 系・8.3 系も対象なので、そちらの判断は別に行うこと)。緩和策はベンダーから提示されていない。更新までの間に取れる措置としては、bccomp() へ渡す前に入力を数値形式で検証すること、あるいは ext-bcmath を必要としない構成であれば無効化することが考えられるが、いずれも公式の workaround ではない。完了条件は、(1)ext-bcmath を有効にしている全ホストの PHP が 8.4.24 / 8.5.9 以降であること、(2)8.2 系・8.3 系については本件の対象外であることを php -v で確認済みであることの2点である。

よくある質問(CVE-2026-17544)

CVE-2026-17544(PHP 8.4.0〜8.4.23 / 8.5.0〜8.5.8)の影響は?

Critical(CVSS 9.8)に分類されるPHP PHP 8.4.0〜8.4.23 / 8.5.0〜8.5.8(ext-bcmath を有効にした構成)の脆弱性です。PHP の BCMath 拡張の bccomp() に、攻撃者が与えた入力で領域外書き込みが起きる欠陥がある。php-src の公式アドバイザリ GHSA-x692-q9x7-8c3f によれば、問題は文字列を内部の数値表現へ変換する bc_str2num() にあり、scale による切り詰めで生じた末尾のゼロがさらに取り除かれる経路で、確保し直したバッファは短くなるのにコピー先のポインタが更新されないため、確保した領域の外へ書き込む。破壊されるのはバッファの確保場所に応じてスタックとヒープの両方に及ぶ。影響を受けるのは 8.4.* が 8.4.24 未満、8.5.* が 8.5.9 未満で、修正版は 8.4.24 と 8.5.9 である。8.2 系・8.3 系は該当コードが入っていないため対象外で、Debian も php8.2 / php7.4 を「脆弱なコードが存在しない」として not-affected と判定している。原因のコードは php-8.4.3RC1 の 063c3c852236ecbe45ab23c0fb271b6292ce82c3 で入り、php-8.4.24 の fa18dab73f9340448c0d5c0a1d75d3fec844b358 で修正された。深刻度は採番元の PHP が CVSS 4.0 で 8.1 High、NVD が Primary として CVSS 3.1 で 9.8 Critical としており、本サイトは NVD の Primary 評価を採用している。CISA の KEV には本稿の確認時点(2026-08-23)で収載されていない。

CVE-2026-17544 の対応方法・回避策は?

対応は、(1)BCMath を使っているかの確認、(2)bccomp() に外部入力が届く経路の確認、(3)更新、の3段である。まず ext-bcmath は既定で有効な拡張ではないので、有効にしていない環境は影響を受けない。php -m の一覧に bcmath が出るかで判定できる。ただし PHP アプリケーションの依存関係として要求されていることは珍しくない(金額計算や大きな整数を扱うライブラリが composer.json で ext-bcmath を要求する)。自前のコードで使っていなくても、依存ライブラリが有効化を要求している場合があるので、php -m の実測で見ること。次に経路である。bccomp() は2つの数値文字列を比較する関数で、第3引数の scale と組み合わせて使う。本件は攻撃者が値を制御できる場合に成立するので、外部入力(リクエストパラメータ、API のレスポンス、取り込んだファイルの中身)が bccomp() の引数へそのまま渡る箇所があるかを洗う。値が自分のデータベースから来る固定的なものだけであれば、緊急度は下がる。三つ目が更新である。8.4 系は 8.4.24、8.5 系は 8.5.9 以降へ上げる。8.2 系・8.3 系を使っている場合、本件のための更新は不要である(ただし同時に公開された CVE-2026-17543 は 8.2 系・8.3 系も対象なので、そちらの判断は別に行うこと)。緩和策はベンダーから提示されていない。更新までの間に取れる措置としては、bccomp() へ渡す前に入力を数値形式で検証すること、あるいは ext-bcmath を必要としない構成であれば無効化することが考えられるが、いずれも公式の workaround ではない。完了条件は、(1)ext-bcmath を有効にしている全ホストの PHP が 8.4.24 / 8.5.9 以降であること、(2)8.2 系・8.3 系については本件の対象外であることを php -v で確認済みであることの2点である。

自分の環境が CVE-2026-17544 の影響を受けるか確認するには?

PHP PHP 8.4.0〜8.4.23 / 8.5.0〜8.5.8(ext-bcmath を有効にした構成) を利用している場合、稼働バージョンが影響範囲に含まれるかを一次情報(https://nvd.nist.gov/vuln/detail/CVE-2026-17544)で確認してください。AWS・GCP・Azure・Linux それぞれの対応状況は本ページの「クラウド/OS 別の対応状況」表にまとめています。確認できていない項目は「情報確認中」と明記しており、存在しないパッチ番号・バージョンは記載していません。

参考情報(出典)

本ページの記載は下記の一次情報に基づく非公式まとめです。数値・対応状況は各出典元で最終確認してください。

免責: 本ページは CISA KEV・NVD・各ベンダー公式アドバイザリ等の公開情報をもとにした非公式まとめです。修正バージョンや対応可否は変更される場合があります。実際の対応は必ず 出典元および各ベンダー公式情報・自環境で確認してください。

« 一覧に戻る