Ils ont détecté une vulnérabilité qui affecte curl, libcurl et les projets basés sur ceux-ci.

boucle

cURL est un projet logiciel composé d'une bibliothèque et d'un interpréteur de commandes destiné au transfert de fichiers.

Daniel Stenberg (auteur du projet cURL) récemment annoncé via un article de blog, des informations sur une vulnérabilité qui a été détectée dans l'utilitaire pour recevoir et envoyer des données sur le réseau curl et la bibliothèque libcurl.

Il est mentionné que la vulnérabilité (déjà cataloguée sous CVE-2023-38545) est dû à un bug dans le code de résolution du nom d'hôte avant d'accéder au proxy SOCKS5.

SOCKS5 est un protocole proxy. Il s'agit d'un protocole assez simple permettant d'établir une communication réseau via un « courtier » dédié. Par exemple, le protocole est généralement utilisé lors de la mise en place d'une communication via Tor, mais également pour accéder à Internet depuis des organisations et des entreprises.

SOCKS5 dispose de deux modes de résolution de nom d'hôte différents. Soit le client résout le nom d'hôte localement et transmet la destination comme adresse résolue, soit le client transmet le nom d'hôte complet au proxy et autorise le proxy à résoudre l'hôte à distance.

Ainsi l’échec peut provoquer un débordement de buffer et potentiellement exécuter le code côté client d'un attaquant lors de l'accès à un serveur HTTPS contrôlé par l'attaquant via l'utilitaire curl ou une application qui utilise libcurl. mais le problème présent uniquement si accès via un proxy SOCKS5 est activé dans curl. Lors d'un accès direct sans proxy, la vulnérabilité n'apparaît pas.

Le propriétaire d'un site accessible par curl via un proxy SOCKS5 est décrit comme étant capable de :

Déclenchez un débordement de tampon côté client en renvoyant un code de redirection de requête (HTTP 30x) et en définissant l'en-tête « Location : » sur une URL avec un nom d'hôte dont la taille varie de 16 à 64 Ko (16 Ko est la taille maximale). pour dépasser le tampon alloué et 65 Ko est la longueur maximale autorisée du nom d'hôte dans une URL).

Si la redirection des requêtes est activée dans la configuration de libcurl et que le proxy SOCKS5 utilisé est suffisamment lent, alors le nom d'hôte long sera écrit dans un petit tampon, évidemment de plus petite taille.

Dans son article de blog, Daniel Stenberg a mentionné que la vulnérabilité n'a pas été détectée pendant 1315 XNUMX jours.. Il indique également que 41 % des vulnérabilités précédemment identifiées dans curl auraient probablement pu être évitées si curl avait été écrit dans un langage sécurisé en mémoire, mais il n'est pas prévu de réécrire curl dans un autre langage dans un avenir proche.

La vulnérabilité affecte principalement les applications basées sur libcurl et apparaît dans l'utilitaire curl uniquement lors de l'utilisation de l'option « –limit-rate » avec une valeur inférieure à 65541, puisque libcurl alloue un tampon de 16 Ko par défaut et 100 Ko dans curl, mais cette taille change en fonction de la valeur du « –paramètre « taux-limite ».

Il est mentionné que si le nom d'hôte comporte jusqu'à 256 caractères, curl transmet immédiatement le nom au proxy SOCKS5 pour résolution, et si le nom comporte plus de 255 caractères, il passe au résolveur local et transmet l'adresse déjà définie à SOCKS5. . En raison d'un bug dans le code, l'indicateur indiquant la nécessité d'une résolution locale pouvait être défini sur une valeur incorrecte lors d'une négociation lente d'une connexion via SOCKS5, conduisant à l'écriture d'un nom d'hôte long dans un tampon attribué dans l'espoir de stocker l'adresse IP. adresse ou nom, ne devant pas dépasser 255 caractères.

Enfin, il est mentionné que la vulnérabilité a été corrigée dans curl version 8.4.0 et comme mesures visant à améliorer la sécurité de la base de code, il est proposé d'étendre les outils de test du code et d'utiliser plus activement les dépendances écrites dans des langages de programmation qui garantissent un fonctionnement sûr avec la mémoire. Il envisage également de remplacer progressivement certaines parties de curl par des options écrites dans des langages sûrs, tels que le backend expérimental Hyper HTTP implémenté dans Rust.

Si vous intéressé à en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.