プラットフォーム
php
コンポーネント
phpseclib
修正版
1.0.28
phpseclibはPHPでセキュアな通信を行うためのライブラリです。バージョン3.0.51、2.0.53、および1.0.28以前では、phpseclib\Net\SSH2::getbinarypacket()関数が、受信したSSHパケットのHMACをローカルで計算されたHMACと比較する際に、PHPの!=演算子を使用していました。この演算子は、等長のバイナリストリングに対してmemcmp()を使用するため、最初の異なるバイトで短絡します。これにより、タイミング攻撃に対して脆弱性が生じます。バージョン1.0.28, 2.0.53, 3.0.51で修正されました。
CVE-2026-40194 は、phpseclib SSH2 ライブラリに影響を与え、特に getbinarypacket() 関数に影響を与えます。この関数は、PHP の != 演算子を使用して、受信した SSH パケットの HMAC を、ローカルで計算された HMAC と比較します。PHP は等長のバイナリ比較に memcmp() を使用しますが、このプロセスは、特定の PHP 実装およびバージョンにおける memcmp() の動作方法により、時間可変になる可能性があります。これにより、時間可変比較の脆弱性 (CWE-208) が導入されます。深刻度は低い (防御インデプス) とみなされますが、実践的な攻撃が困難であっても、タイミングサイドチャネル攻撃の可能性は存在します。この脆弱性は、比較時間の変動を示すパフォーマンスベンチマークを通じて検証されています。
この脆弱性の悪用には、脆弱なサーバーに悪意のある SSH パケットを送信できる攻撃者が必要です。攻撃は、サーバーが HMAC を検証するのにかかる時間を測定することに基づいています。応答時間のわずかな違いは、正しい HMAC に関する情報を明らかにする可能性があります。ただし、このタイプの攻撃の難易度は高く、ネットワーク環境を正確に制御し、正確な時間測定を実行できる必要があります。さらに、処理時間のランダムノイズなどの防御インデプス対策は、悪用をさらに複雑にする可能性があります。
Applications utilizing phpseclib SSH2 for SSH2 functionality are at risk. This includes web applications, automation scripts, and any other PHP-based systems relying on this library for secure remote access. Systems with older, unpatched versions of phpseclib SSH2 are particularly vulnerable.
• php: Examine PHP application code for usage of phpseclib SSH2. • php: Check the version of phpseclib SSH2 being used within your PHP applications.
composer show phpseclib\phpseclib• php: Review application logs for SSH connection errors or disconnections, which could indicate attempted exploitation. • generic web: Monitor SSH server logs for unusual connection patterns or frequent disconnections.
disclosure
エクスプロイト状況
EPSS
0.01% (2% パーセンタイル)
CISA SSVC
CVE-2026-40194 の解決策は、phpseclib のバージョン 3.0.51 にアップグレードすることです。このバージョンは、!= 比較を時間一定の比較実装に置き換えることで脆弱性を修正します。phpseclib SSH2 を使用するアプリケーションをアップグレードして、このリスクを軽減することを強くお勧めします。さらに、潜在的なサイドチャネル攻撃に対する防御インデプスを確保するために、一般的なセキュリティプラクティスを見直してください。脆弱性への曝露ウィンドウを最小限に抑えるために、できるだけ早くアップデートを実行する必要があります。
Actualice la biblioteca phpseclib a la versión 3.0.51, 2.0.53 o 1.0.28 para mitigar la vulnerabilidad. La actualización reemplaza la comparación insegura con el operador != por la función hash_equals(), que proporciona una comparación segura de cadenas binarias.
脆弱性分析と重要アラートをメールでお届けします。
タイミングサイドチャネル攻撃は、暗号鍵などの機密情報を抽出するために、システムが操作を実行するのにかかる時間における変動を利用します。
脆弱性は存在しますが、実用的な悪用は困難であり、特定の条件が必要です。防御インデプス対策としてみなされています。
すぐにアップグレードできない場合は、処理時間にランダムノイズを追加するなど、防御インデプス対策を実装することを検討してください。
使用している phpseclib SSH2 のバージョンを確認してください。バージョン 3.0.51 より古い場合は、脆弱です。
現在、この脆弱性を検出するための特定のツールはありませんが、コード監査とペネトレーションテストをお勧めします。
CVSS ベクトル