プラットフォーム
php
コンポーネント
yansongda/pay
修正版
3.7.21
3.7.20
CVE-2026-33661は、yansongda/payライブラリの脆弱性で、署名検証が不適切に行われることが原因です。これにより、攻撃者は偽のWeChat Pay支払い通知を送信し、アプリケーションが実際には支払われていない注文を支払い済みとしてマークする可能性があります。この脆弱性は、バージョン3.7.9以前のバージョンに影響します。バージョン3.7.20で修正されました。
CVE-2026-33661は、'pay'コンポーネントに影響を与え、WeChat Payを利用するアプリケーションに影響します。具体的には、src/Functions.php内のverifywechatsign()関数は、PSR-7リクエストでホストが'localhost'と報告されている場合に、RSA署名検証を無条件でスキップします。これにより、攻撃者はWeChat Payのコールバックエンドポイントに悪意のあるHTTPリクエストを送信し、重要な署名チェックを回避できます。その結果、攻撃者は偽のWeChat Pay支払い成功通知を偽造し、アプリケーションが実際のお支払いがなかったにもかかわらず、注文を支払済としてマークする可能性があります。CVSSは、この脆弱性を8.6のスコアで評価しており、高いリスクを示しています。影響を受けるバージョンは3.7.20より前のものです。この脆弱性は、多大な経済的損失とシステムインテグリティの侵害につながる可能性があります。
攻撃者は、脆弱なアプリケーションが実行されているネットワークにアクセスする必要があり、HTTPリクエストを送信できる必要があります。攻撃は、'Host: localhost'ヘッダーを含む悪意のあるHTTPリクエストを作成することを含みます。このリクエストは、WeChat Payコールバックエンドポイントに送信されます。verifywechatsign()関数の欠陥により、RSA署名検証が回避され、攻撃者が支払い通知を偽造できるようになります。その後、攻撃者はアプリケーションを操作して、実際のお支払いがなかった場合でも、注文を支払済としてマークできます。攻撃の複雑さは比較的低く、高度な技術スキルや特殊なツールは必要ありません。脆弱性の悪用確率は高く、欠陥を特定して悪用するのが容易であるためです。
Applications that integrate WeChat Pay using the yansongda/pay library, particularly those deployed on shared hosting environments or with minimal input validation, are at significant risk. Legacy systems using older versions of the library and lacking robust security practices are also highly vulnerable.
• php: Examine application code for usage of yansongda/pay and check version. Search for code that unconditionally skips signature verification based on the Host header.
// Example: Check for vulnerable code in Functions.php
grep -r "verify_wechat_sign(R" /path/to/your/application• generic web: Monitor access logs for requests to WeChat Pay callback endpoints with a Host: localhost header.
# Example: grep for suspicious host headers in access logs
grep "Host: localhost" /var/log/apache2/access.logdisclosure
エクスプロイト状況
EPSS
0.09% (26% パーセンタイル)
CISA SSVC
CVE-2026-33661を軽減するための解決策は、'pay'コンポーネントをバージョン3.7.20以降にアップグレードすることです。このアップデートは、verifywechatsign()関数内の欠陥のあるロジックを修正し、ホストヘッダーが'localhost'の場合に署名検証をスキップすることを許可します。さらに、署名検証を超えて、WeChat Payコールバックリクエストのソースを検証する追加の検証を実装することを推奨します。これには、元のIPアドレスの検証、または許可されたIPアドレスのホワイトリストの使用が含まれる場合があります。潜在的な攻撃から保護するために、このアップデートをできるだけ早く適用することが重要です。アップデート後には、WeChat Payの機能が正しく動作し続けることを確認するために、徹底的なテストをお勧めします。
Actualice la biblioteca `yansongda/pay` a la versión 3.7.20 o superior. Esto corrige la vulnerabilidad de omisión de la verificación de la firma en el callback de WeChat Pay cuando el encabezado Host es localhost.
脆弱性分析と重要アラートをメールでお届けします。
WeChat Payは、WeChatアプリケーションに統合されている中国で人気のあるモバイル決済システムです。
署名検証(RSA)は、WeChat Pay通知が本物であり、改ざんされていないことを保証します。
すぐにアップグレードできない場合は、元のIPアドレスの検証やトランザクションの監視など、追加のセキュリティ対策を実装してください。
src/Functions.php内のverifywechatsign()関数を検索し、ホストヘッダーが'localhost'の場合に署名検証がスキップされるかどうかを確認してください。
現在、この脆弱性を検出するための特定のツールはありませんが、コード監査とペネトレーションテストをお勧めします。
CVSS ベクトル