Plateforme
ruby
Composant
puma
Corrigé dans
3.12.4
4.0.1
3.12.4
La vulnérabilité CVE-2020-5247 concerne Puma, un serveur web et application Ruby, où l'injection de caractères de nouvelle ligne dans les en-têtes de réponse peut permettre à un attaquant d'injecter du contenu malveillant. Cette technique, appelée HTTP Response Splitting, peut servir de vecteur pour d'autres attaques comme le XSS. Les versions de Puma affectées sont celles inférieures ou égales à 3.9.1, et une correction a été déployée dans la version 3.12.4.
La vulnérabilité CVE-2020-5247 dans Puma, affectant les versions antérieures à 4.3.2 et 3.12.3, permet à un attaquant d'injecter du contenu malveillant dans les réponses HTTP en manipulant les en-têtes. Cela est réalisé en exploitant la présence de caractères de nouvelle ligne (CR, LF ou /r, /n) dans les entrées non fiables que l'application envoie dans les en-têtes de réponse. Bien qu'il ne s'agisse pas d'une attaque en soi, cette technique, connue sous le nom de 'HTTP Response Splitting', ouvre la voie à des attaques plus graves, telles que Cross-Site Scripting (XSS), permettant à un attaquant de contrôler l'apparence et le comportement de l'application web. La gravité de cette vulnérabilité est notée avec un score CVSS de 6,5, ce qui indique un risque modéré à élevé, en particulier dans les applications traitant des données sensibles ou interagissant avec des utilisateurs non authentifiés.
L'exploitation de CVE-2020-5247 nécessite que l'application utilise Puma comme serveur web et autorise l'entrée utilisateur à être directement incluse dans les en-têtes HTTP. Un attaquant peut envoyer des requêtes HTTP spécialement conçues contenant des caractères de nouvelle ligne dans des champs d'en-tête contrôlés par l'utilisateur. En insérant ces caractères stratégiquement, l'attaquant peut diviser l'en-tête en plusieurs parties, permettant l'injection d'en-têtes supplémentaires ou la manipulation du corps de la réponse. L'efficacité de cette attaque dépend de la configuration de l'application et de la présence d'autres mécanismes de sécurité, tels que les pare-feu d'applications web (WAF), qui pourraient atténuer le risque.
Applications built with Ruby that utilize Puma as their web server are at risk. This includes web applications deployed on shared hosting environments where the Puma version is not directly controlled by the application developer. Legacy applications using older Puma versions are particularly vulnerable.
• ruby / puma:
puma -v | grep '3.9.1' # Check Puma version• generic web:
curl -I <target_url> | grep -i 'Content-Type:' # Inspect response headers for anomaliesdisclosure
Statut de l'Exploit
EPSS
2.09% (percentile 84%)
Vecteur CVSS
La solution principale pour atténuer CVE-2020-5247 consiste à mettre à niveau Puma vers la version 4.3.2 ou supérieure, ou vers la version 3.12.4 ou supérieure. Ces versions incluent des correctifs qui empêchent l'interprétation incorrecte des caractères de nouvelle ligne dans les en-têtes de réponse. De plus, il est recommandé de mettre en œuvre une validation et une désinfection rigoureuses de toutes les entrées fournies par l'utilisateur qui sont utilisées pour construire les en-têtes HTTP. Cela implique de supprimer ou d'échapper tout caractère de nouvelle ligne avant d'inclure l'entrée dans l'en-tête. Enfin, il est essentiel d'examiner le code de l'application pour identifier tout point où l'entrée utilisateur pourrait influencer les en-têtes de réponse et d'appliquer les mesures de sécurité nécessaires.
Mettez à jour la gema Puma à la version 4.3.2 ou supérieure, ou à la version 3.12.3 ou supérieure. Cela corrigera la vulnérabilité de division de réponse HTTP en vérifiant les en-têtes pour les fins de ligne et en rejetant les en-têtes contenant ces caractères. Exécutez `gem update puma` pour mettre à jour.
Analyses de vulnérabilités et alertes critiques directement dans votre boîte mail.
C'est une technique qui permet à un attaquant d'injecter des en-têtes HTTP supplémentaires ou de modifier le corps de la réponse, en exploitant la façon dont les serveurs web interprètent les caractères de nouvelle ligne dans les en-têtes.
Elle peut permettre des attaques XSS, le vol de cookies, des redirections malveillantes et d'autres attaques qui compromettent la sécurité et l'intégrité de l'application.
Mettez en œuvre une validation et une désinfection rigoureuses de toutes les entrées utilisateur utilisées dans les en-têtes HTTP.
Il existe des outils d'analyse de sécurité des applications web qui peuvent identifier les modèles de code vulnérables au HTTP Response Splitting.
Oui, il est recommandé de mettre à jour tous les serveurs Puma utilisant des versions vulnérables pour éviter tout risque d'exploitation.
Téléverse ton fichier de dépendances et découvre instantanément si cette CVE et d'autres te touchent.
Téléverse ton fichier Gemfile.lock et nous te dirons instantanément si tu es affecté.