curl 8.23.0 corrige une faille HTTP/2 de gravité élevée, repérée avec l'aide de Claude
Publiée le 14 octobre, la version 8.23.0 de curl corrige la CVE-2026-92392, une faille d'HTTP/2 qui pourrait mener à une exécution de code, dans des conditions très strictes.

Le 14 octobre, le projet curl a publié la version 8.23.0 de son outil de transfert et de sa bibliothèque libcurl, présents dans d'innombrables systèmes, applications et objets connectés. Elle corrige notamment la CVE-2026-92392 : une faille de type « use-after-free » (réutilisation d'une zone mémoire déjà libérée) dans l'envoi de données en HTTP/2. Le projet la classe en gravité élevée. Les versions 8.12.0 à 8.22.0 sont touchées, outil en ligne de commande compris.
Un serveur piégé comme point de départ
D'après l'avis du projet, le problème survient quand un serveur interrompt un envoi en cours avec un message RST_STREAM de motif REFUSED_STREAM ou HTTP_1_1_REQUIRED. curl libère alors une structure interne qui sert encore. Il faut donc que la victime envoie des données vers un serveur contrôlé par l'attaquant, muni d'un certificat valide.
Selon l'avis, il a été démontré qu'on peut transformer ce bug en exécution de code à distance, mais seulement si une longue liste de conditions est réunie : version et architecture exactes connues, disposition précise de la mémoire, comportement prévisible des bibliothèques nghttp2 et OpenSSL. Le fondateur de curl, Daniel Stenberg, ajoute sur son blog qu'il faut aussi un envoi d'environ 135 Ko et une charge utile d'une vingtaine d'octets à peine. Pour lui, le résultat le plus probable est un plantage, et une attaque réussie est peu probable. Ni l'avis ni le blog ne mentionnent d'exploitation.
Une faille repérée avec l'IA d'Anthropic
L'avis attribue la découverte à « Luna with Claude, Anthropic » et date le signalement du 15 septembre. Selon Daniel Stenberg, Luna Tong, d'Anthropic, l'a repérée avec le nouvel outil d'Anthropic baptisé « OSS Scanner », qui s'appuie sans doute sur ses modèles d'IA. Le correctif est l'œuvre de Stefan Eissing. Pour publier rapidement le correctif, l'équipe a raccourci ce cycle de publication de deux semaines, de huit à six semaines. Depuis quelques années, elle remplace aussi des pointeurs internes par des identifiants de transfert, plus robustes. Daniel Stenberg reconnaît qu'un langage sûr pour la mémoire aurait probablement évité ce bug, mais exclut de réécrire curl. Autre changement de cette version : la prise en charge du protocole SMB disparaît.
Que faire ?
- Mettre à jour vers curl 8.23.0. Pour les branches maintenues, les versions 8.20.2, 8.16.2 et 8.14.3 ne sont pas touchées.
- Recenser les logiciels, images de conteneurs et firmwares qui embarquent libcurl : ils dépendront de la mise à jour de leur éditeur.
- Si la mise à jour doit attendre, le seul contournement indiqué par le projet est de ne pas utiliser HTTP/2.
- Si vous utilisez curl avec SMB, prévoyez une solution de remplacement avant de mettre à jour.
Méthode : veille assistée par intelligence artificielle, sources vérifiées, article relu et validé par Frédéric LENQUETTE.
Partager cet article