Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-92392 — Vérifie les builds locaux de curl/libcurl pour l'exposition à la faille use-after-free lors des uploads HTTP/2 de CVE-2026-92392, avec un inventaire passif, l'analyse d'images montées et une sonde PoC bornée en boucle locale. | Kitploit
Outils/GitHubGitHub/ashu7ank/cve-2026-92392
Outils DéfensifsScanners de VulnérabilitésSécurité des ConteneursAnalyse Dynamique (Sandboxing)Analyse des VulnérabilitésCollecte d'InformationsVirtualisation de SécuritéFuzzing
GitHubashu7ank/cve-2026-92392

CVE-2026-92392

Vérifie les builds locaux de curl/libcurl pour l'exposition à la faille use-after-free lors des uploads HTTP/2 de CVE-2026-92392, avec un inventaire passif, l'analyse d'images montées et une sonde PoC bornée en boucle locale.

1il y a 21 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Voir le dépôt
Partager

Vérificateur d'exposition et POC pour CVE-2026-92392 curl/libcurl

cve_2026_92392_check.py évalue les artefacts curl et libcurl locaux pour CVE-2026-92392, une utilisation après libération (use-after-free) lors du téléversement HTTP/2 dans curl/libcurl.

Il prend en charge l'inventaire local passif, l'évaluation à partir de bannières fournies, l'analyse d'images montées sans exécution, et une sonde de protocole HTTP/2 en boucle locale bornée. La sonde est défensive et non weaponisée. Elle ne contient aucune charge utile de commande, aucun shellcode, aucune manipulation d'adresse mémoire, aucune logique de fuite d'information ni aucune charge utile RCE.

La sonde active se lie uniquement à 127.0.0.1, n'accepte aucune URL de cible distante ni aucun hôte, et n'exécute que le binaire curl local sélectionné.

Ce que ce vérificateur établit

Le vérificateur distingue quatre niveaux de preuve différents :

Niveau de preuveCe qu'il établitCe qu'il n'établit pas
Classification de buildSi un artefact curl/libcurl qualifié par version se situe hors de la plage affectée en amont, est affecté en amont avec un état de correctif fournisseur inconnu, ou est confirmé affecté à l'aide de preuves d'état de correctif fourniesSi une application utilise réellement le chemin de téléversement HTTP/2 affecté
Contexte d'exposition à l'exécutionSi les faits applicatifs fournis indiquent que des téléversements HTTP/2 peuvent atteindre un point de terminaison contrôlé par un attaquantSi la vulnérabilité a été déclenchée
Stimulus de protocoleSi le harnais en boucle locale a délivré les deux variantes de réinitialisation documentées avec deux téléversements sur une même connexion HTTP/2Une utilisation après libération, une cause de plantage ou une exécution de code
Résultat de sanitizer attribué à la CVESi la séquence candidate, une utilisation après libération de tas (heap-use-after-free) détectée par AddressSanitizer, une identité d'artefact affecté en amont et une pile HTTP/2 correspondante ont toutes été observéesLa fiabilité ou l'exploitabilité pratique sur un autre système

Une exécution propre, une exécution de protocole incomplète ou une exécution de sanitizer sans plantage ne prouve pas qu'un build est sûr.

Résumé de la vulnérabilité

CVE-2026-92392 affecte la gestion des téléversements HTTP/2 de curl/libcurl. Pendant un téléversement, un build affecté peut traiter un RST_STREAM HTTP/2 portant soit REFUSED_STREAM, soit HTTP_1_1_REQUIRED. Les données de téléversement mises en tampon peuvent alors être analysées comme une nouvelle requête après que l'état HTTP/2 du transfert d'origine a été détaché. Un rappel HTTP/2 ultérieur peut déréférencer un pointeur Curl_easy obsolète.

La comparaison REA utilisée pour réviser ce vérificateur a confirmé la différence d'ordonnancement du nettoyage pertinente :

  1. L'artefact affecté appelle Curl_conn_ev_data_done, traite les handles en attente, et seulement ensuite appelle Curl_req_done.
  2. Curl_req_done atteint req_flush, tandis que le chemin data-done HTTP/2 a déjà effacé le contexte de flux.
  3. Les données de téléversement restantes en tampon peuvent créer un flux HTTP/2 ultérieur associé au même pointeur brut de handle easy.
  4. L'implémentation corrigée exécute Curl_req_done avant Curl_conn_ev_data_done, éliminant cet ordonnancement obsolète.

Il s'agit de preuves d'implémentation étayant le modèle de preuve du vérificateur. L'état du correctif fournisseur nécessite toujours une vérification indépendante.

Versions amont affectées

L'avis amont identifie l'implémentation vulnérable comme introduite dans curl 8.12.0. Le vérificateur classe les versions amont comme suit :

Condition de versionClassification
Antérieure à 8.12.0NOT AFFECTED
De 8.12.0 à 8.22.0, hors rétroportages corrigésAffectée en amont
Branche 8.14 à partir de 8.14.3Rétroportage corrigé
Branche 8.16 à partir de 8.16.2Rétroportage corrigé
Branche 8.20 à partir de 8.20.2Rétroportage corrigé
8.23.0 ou ultérieureNOT AFFECTED
Développement, snapshot, nightly ou version ambiguëINDETERMINATE

Un fournisseur peut rétroporter le correctif sans modifier la chaîne de version amont de curl. Par conséquent, une version amont affectée constitue une preuve d'inventaire, et non une preuve concluante qu'un build fournisseur n'est pas corrigé.

Utilisez --patch-state uniquement lorsque l'état du correctif sémantique en aval a été vérifié au moyen d'avis fournisseurs, de journaux de modifications de paquets, d'une comparaison de sources ou d'une autre méthode fiable au niveau de l'artefact.

Valeur de --patch-stateSignification
unknownPar défaut. Une version amont affectée produit UPSTREAM-AFFECTED VERSION.
absentL'opérateur a vérifié de manière indépendante que le correctif en aval est absent. Une build affectée compatible HTTP/2 produit AFFECTED BUILD.
presentL'opérateur a vérifié de manière indépendante que le correctif sémantique en aval est présent. Il s'agit d'une assertion de l'opérateur, et non d'une preuve automatique d'équivalence binaire avec le correctif amont de curl.

Prérequis

  • Python 3.10 ou plus récent.
  • Aucune dépendance Python au-delà de la bibliothèque standard.
  • Un exécutable curl local pour --poc.
  • Un support HTTP/2 confirmé pour un sondage actif pertinent.
  • Une build curl instrumentée avec AddressSanitizer pour --poc-proof asan.
  • La commande openssl uniquement lorsque --tls est utilisé.
  • Un exécutable curl natif ELF ou Mach-O qualifié par produit pour le sondage actif.

Le mode PoC actif refuse les scripts, les wrappers, les exécutables natifs non identifiés et les binaires PE/Windows. L'évaluation passive reste disponible pour les bannières et les systèmes de fichiers montés.

Démarrage rapide

Inspecter le binaire curl trouvé dans PATH :

python3 cve_2026_92392_check.py

Émettre du JSON :

python3 cve_2026_92392_check.py --json

Exécuter les autotests internes :

python3 cve_2026_92392_check.py --self-test
python3 -O cve_2026_92392_check.py --self-test

Inspectez un exécutable curl sélectionné et la bibliothèque partagée libcurl :

python3 cve_2026_92392_check.py \
  --curl-binary /opt/curl/bin/curl \
  --libcurl-path /opt/curl/lib/libcurl.so \
  --json

Évaluer une bannière curl de confiance sans exécuter de binaire :

python3 cve_2026_92392_check.py \
  --version-string 'curl 8.12.0 libcurl/8.12.0 nghttp2/1.61.0' \
  --json

Une version nue telle que 8.12.0 n'est pas acceptée comme preuve vérifiée de l'identité de curl/libcurl.

Flux de travail d'inventaire distant

Le vérificateur ne contacte délibérément pas les hôtes distants. Obtenez la bannière via un canal administratif autorisé, enregistrez-la localement, puis évaluez-la localement :

ssh [email protected] 'curl --version' > host-curl-version.txt

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use unknown \
  --untrusted-upload unknown \
  --https-certificate unknown \
  --json

Si l'examen de l'application ou une trace de confiance établit que les téléversements utilisent HTTP/2, peuvent atteindre un point de terminaison contrôlé par l'attaquant et acceptent son certificat HTTPS, fournissez ces faits explicitement :

python3 cve_2026_92392_check.py \
  --version-file host-curl-version.txt \
  --http2-use yes \
  --untrusted-upload yes \
  --https-certificate yes \
  --patch-state unknown \
  --json

Pour h2c en clair, utilisez --https-certificate not-applicable.

Télécharger l’outil