La vulnérabilité CVE-2023-38545 dans cURL n’est pas aussi grave que prévu ! Ouf !
Une nouvelle version de l'outil cURL a été publiée dans le but de corriger une faille de sécurité qui s'annonçait très dangereuse et inquiétante. La bonne nouvelle c'est que cURL 8.4.0 est là et que cette vulnérabilité n'est pas aussi grave que nous pouvions le craindre ! Faisons le point.
cURL est un outil en ligne de commande très pratique et que l'on retrouve sur les différents systèmes d'exploitation, notamment Linux et Windows. C'est un outil populaire que l'on peut utiliser pour télécharger un fichier, interroger un serveur Web, analyser les en-têtes HTTP, etc... Si vous bossez dans l'informatique, normalement, vous le connaissez. Il est implémenté au sein de nombreux projets par l'intermédiaire de la librairie libcurl. De ce fait, une vulnérabilité critique dans cURL peut être lourde de conséquences et affoler tout le monde...
La CVE-2023-38545 de cURL
cURL est affecté par une faille de sécurité associée à la référence CVE-2023-38545 et qui s'annonçait comme la pire vulnérabilité découverte dans cURL jusqu'ici... D'ailleurs, dans le but de publier un correctif rapidement, le développement de la version 8.4.0 de cURL a été écourté.
Sur GitHub, Daniel Stenberg, le développeur de cURL, précise : "Nous raccourcissons le cycle de publication et publierons curl 8.4.0 le 11 octobre, incluant des correctifs pour une CVE avec une sévérité HAUTE et une CVE avec une sévérité FAIBLE."
Ce mercredi 11 octobre 2023, cURL 8.4.0 a été mis en ligne pour corriger deux vulnérabilités, comme prévu. Un bulletin de sécurité dédié pour la vulnérabilité CVE-2023-38545 est également disponible.
Il s'agit d'une vulnérabilité de type "heap buffer overflow" liée à l'écriture des données en mémoire, pouvant permettre un plantage de l'application voire même une exécution de code à distance, dans le pire des cas. La bonne nouvelle, et c'est rassurant, c'est qu'il y a plusieurs conditions requises pour que la vulnérabilité puisse être exploitée.
Pour que la vulnérabilité soit exploitable, le client cURL doit être configuré pour utiliser un proxy SOCKS5 lors de la connexion à un site distant (notamment l'option --socks5-hostname), et il faut que la connexion soit suffisamment lente pour que le bug de sécurité puisse être déclenché. Ensuite, pour exploiter la faille de sécurité, l'attaquant doit jouer sur la longueur de l'URL pour qu'elle dépasse la taille autorisée et déclenche un dépassement de la mémoire tampon.
La majorité des utilisateurs n'utilisent pas de proxy SOCKS5 pour les connexions (si ce n'est pour des cas d'usage spécifiques) et d'après les tests effectués par les chercheurs, cette vulnérabilité permettrait de faire planter l'application (déni de service) mais ne permettrait pas une exécution de code arbitraire. Ce qui n'exclut pas qu'un nouvel exploit remette en cause ces propos...
Toutefois, vous devez envisager de mettre à jour cURL. Tenez compte de ceci avant de vous lancer :
- Versions impactées : libcurl 7.69.0 à 8.3.0 inclus
- Versions non impactées : libcurl < 7.69.0 et >= 8.4.0