
Preuve de concept pour le débordement de tampon de tas CVE-2023-38545 dans la gestion du proxy SOCKS5 de curl, démontrant l'exploitation via la réduction du tampon par limitation de débit.
Ce POC est basé sur le POC précédent créé par UTsweetyfish, partagé dans ce dépôt : https://github.com/UTsweetyfish/CVE-2023-38545. Contrairement à ce POC, celui-ci concerne l'outil en ligne de commande et non la bibliothèque libcurl, et ne nécessite ni Python ni compilation
Ce POC concerne le débordement de tampon heap SOCKS5 de curl, et montre comment déborder le tampon de réception dans l'outil en ligne de commande curl. Par défaut, curl initialise le tampon de réception avec une taille de 100k, ce qui le rend insensible à CVE-2023-38545. Mais la taille de ce tampon peut être réduite en définissant une limite de débit (--limit-rate).
Pour exécuter le POC, configurez d'abord un proxy SOCKS5 local via SSH (cela nécessite un serveur SSH exécuté localement) :
ssh -fND 10801 localhost
Ensuite, exécutez le script poc.sh (cela nécessite que Netcat (nc) soit installé) :
./poc.sh
Plusieurs tentatives peuvent être nécessaires pour déclencher le débordement de tampon. Si le débordement est déclenché, le script se terminera avec un code d'erreur et un message d'erreur indiquant que l'exécution a été interrompue. Si le débordement échoue et que curl n'est pas impacté, un message indique qu'un hôte nommé « AAAA… » n'a pas pu être résolu.
Liens :