Plateforme
php
Composant
yansongda/pay
Corrigé dans
3.7.21
3.7.20
La CVE-2026-33661 décrit une vulnérabilité de contournement de signature dans la fonction verifywechatsign() de la librairie yansongda/pay. Cette vulnérabilité permet à un attaquant de falsifier des notifications de paiement WeChat en contournant la vérification RSA, en envoyant une requête HTTP avec un header Host: localhost. Les versions affectées sont les versions inférieures ou égales à v3.7.9. La vulnérabilité est corrigée dans la version 3.7.20.
La vulnérabilité CVE-2026-33661 dans le composant 'pay' affecte les applications utilisant WeChat Pay. Plus précisément, la fonction verifywechatsign() dans src/Functions.php ignore inconditionnellement la vérification de la signature RSA lorsque l'en-tête 'Host' de la requête PSR-7 indique 'localhost'. Cela permet à un attaquant d'envoyer des requêtes HTTP malveillantes vers le point de terminaison de rappel WeChat Pay, en contournant la vérification de la signature cruciale. Par conséquent, un attaquant pourrait falsifier de fausses notifications de succès de paiement WeChat Pay, ce qui pourrait amener l'application à marquer des commandes comme payées sans qu'un paiement réel n'ait eu lieu. Le CVSS a évalué cette vulnérabilité avec un score de 8,6, ce qui indique un risque élevé. Les versions affectées sont antérieures à 3.7.20. Cette vulnérabilité pourrait entraîner des pertes financières importantes et compromettre l'intégrité du système.
Un attaquant a besoin d'un accès au réseau où l'application vulnérable s'exécute et doit être capable d'envoyer des requêtes HTTP. L'attaque consiste à créer une requête HTTP malveillante contenant un en-tête 'Host: localhost'. Cette requête est envoyée au point de terminaison de rappel WeChat Pay. En raison de la faille dans la fonction verifywechatsign(), la vérification de la signature RSA est contournée, ce qui permet à l'attaquant de falsifier la notification de paiement. L'attaquant peut alors manipuler l'application pour marquer la commande comme payée, même si aucun paiement n'a été effectué. La complexité de l'attaque est relativement faible, car elle ne nécessite pas de compétences techniques avancées ni d'outils spécialisés. La probabilité d'exploitation est élevée, étant donné la facilité d'identification et d'exploitation de la faille.
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
Statut de l'Exploit
EPSS
0.09% (percentile 26%)
CISA SSVC
Vecteur CVSS
La solution pour atténuer CVE-2026-33661 consiste à mettre à niveau vers la version 3.7.20 ou ultérieure du composant 'pay'. Cette mise à jour corrige la logique défectueuse dans la fonction verifywechatsign() qui permet d'ignorer la vérification de la signature lorsque l'en-tête 'Host' est 'localhost'. De plus, il est recommandé de mettre en œuvre une validation supplémentaire de la source des requêtes de rappel WeChat Pay, au-delà de la vérification de la signature, en tant que mesure de sécurité complémentaire. Cela pourrait inclure la vérification de l'adresse IP d'origine ou l'utilisation d'une liste blanche d'adresses IP autorisées. Appliquer cette mise à jour rapidement est crucial pour se protéger contre les attaques potentielles. Des tests approfondis après la mise à niveau sont recommandés pour garantir que la fonctionnalité WeChat Pay reste opérationnelle.
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.
Analyses de vulnérabilités et alertes critiques directement dans votre boîte mail.
WeChat Pay est un système de paiement mobile populaire en Chine, intégré à l'application WeChat.
La vérification de la signature (RSA) garantit que les notifications de paiement WeChat Pay sont authentiques et n'ont pas été falsifiées.
Si vous ne pouvez pas mettre à niveau immédiatement, mettez en œuvre des mesures de sécurité supplémentaires, telles que la validation de l'IP d'origine et la surveillance des transactions.
Examinez votre code à la recherche de la fonction verifywechatsign() dans src/Functions.php et vérifiez si la vérification de la signature est ignorée lorsque l'en-tête 'Host' est 'localhost'.
Actuellement, il n'existe pas d'outils spécifiques pour détecter cette vulnérabilité, mais les audits de code et les tests d'intrusion sont recommandés.
Téléverse ton fichier de dépendances et découvre instantanément si cette CVE et d'autres te touchent.