Plattform
php
Komponente
yansongda/pay
Behoben in
3.7.21
3.7.20
CVE-2026-33661 describes a signature bypass vulnerability within the yansongda/pay PHP library, specifically impacting versions up to 3.7.9. This flaw allows attackers to forge WeChat Pay payment success notifications, potentially leading to unauthorized order marking as paid. The vulnerability stems from an unconditional bypass of signature verification when the HTTP request's Host header is set to localhost. A patch is available in version 3.7.20.
Die CVE-2026-33661 im 'pay'-Komponent betrifft Anwendungen, die WeChat Pay verwenden. Konkret überspringt die Funktion verifywechatsign() in src/Functions.php bedingungslos die RSA-Signaturverifikation, wenn der PSR-7-Request den Host 'localhost' meldet. Dies ermöglicht einem Angreifer, manipulierte HTTP-Requests an den WeChat Pay Callback-Endpunkt zu senden und so die entscheidende Signaturprüfung zu umgehen. Infolgedessen könnte ein Angreifer gefälschte WeChat Pay-Zahlungserfolgsbenachrichtigungen erstellen, was dazu führen könnte, dass die Anwendung Bestellungen fälschlicherweise als bezahlt markiert, obwohl keine tatsächliche Zahlung erfolgt ist. Der CVSS hat diese Schwachstelle mit einem Wert von 8,6 bewertet, was ein hohes Risiko anzeigt. Betroffene Versionen sind vor 3.7.20. Diese Schwachstelle könnte zu erheblichen finanziellen Verlusten und einer Kompromittierung der Systemintegrität führen.
Ein Angreifer benötigt Zugriff auf das Netzwerk, in dem die anfällige Anwendung ausgeführt wird, und muss HTTP-Requests senden können. Der Angriff beinhaltet die Erstellung einer manipulierten HTTP-Request mit einem 'Host: localhost'-Header. Diese Request wird an den WeChat Pay Callback-Endpunkt gesendet. Aufgrund des Fehlers in der Funktion verifywechatsign() wird die RSA-Signaturverifikation umgangen, was es dem Angreifer ermöglicht, die ZahlungBenachrichtigung zu fälschen. Der Angreifer kann dann die Anwendung manipulieren, um die Bestellung fälschlicherweise als bezahlt zu markieren, auch wenn keine Zahlung erfolgt ist. Die Angriffskomplexität ist relativ gering, da keine fortgeschrittenen technischen Fähigkeiten oder speziellen Tools erforderlich sind. Die Ausnutzungswahrscheinlichkeit ist hoch, da der Fehler leicht zu identifizieren und auszunutzen ist.
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
Exploit-Status
EPSS
0.09% (26% Perzentil)
CISA SSVC
CVSS-Vektor
Die Lösung zur Minderung von CVE-2026-33661 ist das Upgrade auf Version 3.7.20 oder höher der 'pay'-Komponente. Dieses Update behebt die fehlerhafte Logik in der Funktion verifywechatsign(), die es ermöglicht, die Signaturverifikation zu überspringen, wenn der 'Host'-Header 'localhost' lautet. Darüber hinaus wird empfohlen, zusätzliche Validierungen der Quelle von WeChat Pay Callback-Requests über die Signaturverifikation hinaus als ergänzende Sicherheitsmaßnahme zu implementieren. Dies könnte die Überprüfung der ursprünglichen IP-Adresse oder die Verwendung einer Whitelist zugelassener IP-Adressen umfassen. Die zeitnahe Anwendung dieses Updates ist entscheidend, um sich vor potenziellen Angriffen zu schützen. Nach dem Update werden gründliche Tests empfohlen, um sicherzustellen, dass die WeChat Pay-Funktionalität weiterhin ordnungsgemäß funktioniert.
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.
Schwachstellenanalysen und kritische Warnungen direkt in deinen Posteingang.
WeChat Pay ist ein beliebtes mobiles Zahlungssystem in China, das in die WeChat-Anwendung integriert ist.
Die Signaturverifikation (RSA) stellt sicher, dass WeChat Pay-Benachrichtigungen authentisch sind und nicht manipuliert wurden.
Wenn Sie nicht sofort aktualisieren können, implementieren Sie zusätzliche Sicherheitsmaßnahmen, wie z. B. die Validierung der IP-Quelle und die Überwachung von Transaktionen.
Überprüfen Sie Ihren Code auf die Funktion verifywechatsign() in src/Functions.php und prüfen Sie, ob die Signaturverifikation übersprungen wird, wenn der 'Host'-Header 'localhost' lautet.
Derzeit gibt es keine speziellen Tools, um diese Schwachstelle zu erkennen, aber Code-Audits und Penetrationstests werden empfohlen.
Lade deine Abhängigkeitsdatei hoch und erfahre sofort, ob dich diese und andere CVEs treffen.