
PoC : identifier les correctifs de sécurité silencieux avant CVE
VCamper (« Version Camper ») est un CLI de preuve de concept qui examine une plage de commits Git pour détecter d'éventuelles corrections de sécurité silencieuses.
Les corrections de sécurité arrivent souvent dans l'historique Git public avant que les avis de sécurité ne soient publiés. Un commit d'apparence anodine peut contenir suffisamment d'indices pour qu'un réviseur déduise le chemin du bug et ses conséquences probables.
VCamper transforme ce flux de travail de diff de version en collecte de preuves reproductible. Il rassemble le patch de chaque candidat et les instantanés des fichiers modifiés. Il enregistre un plan de points chauds avant de demander à un agent de filtrer et de vérifier les commits les plus susceptibles d'être importants.
Suivez les mises à jour : x.com/rndhouse
curl a corrigé CVE-2025-0725 dans le commit 76f83f0db23846e254d940ec7fe141010077eb88. Le titre content_encoding: drop support for zlib before 1.2.0.4 ressemble à une maintenance de compatibilité. La correction a été intégrée au dépôt GitHub de curl le 2025-01-24 via PR #16079. curl a publié l'avis le 2025-02-05. Cela laisse environ 12 jours entre le code public et l'avis public. Sources : avis curl et .
Cette commande analyse ce commit de correction isolément :
cargo run -- analyze \
--repo /path/to/curl \
--from 76f83f0db23846e254d940ec7fe141010077eb88 \
--to 76f83f0db23846e254d940ec7fe141010077eb88 \
--provider codex \
--model gpt-5.4 \
--screen-effort medium \
--verify-effort high \
--out /tmp/vcamper-curl-cve-2025-0725
VCamper a signalé le commit comme pertinent pour la sécurité avec une confiance de 0.95. La découverte a relié l'ancien repli gzip zlib supprimé à un chemin d'épuisement de mémoire côté client à distance : un serveur pouvait maintenir curl en train de mettre en mémoire tampon des octets d'en-tête gzip contrôlés par l'attaquant jusqu'à épuisement de la mémoire. Le vérificateur a identifié l'état pertinent comme GZIP_UNDERFLOW ; les champs optionnels d'en-tête gzip pouvaient continuer à manquer leur NUL de terminaison pendant que curl réallouait et ajoutait des octets à z->next_in.
L'exécution a utilisé uniquement le commit de correction public ; le texte de la CVE est resté hors de l'analyse. La découverte correspondait au chemin vulnérable de l'ancien repli zlib et rapportait la conséquence prise en charge comme un déni de service à distance par consommation de ressources. L'avis de curl utilise la classification plus large CWE-680.
wolfSSL a corrigé CVE-2026-5194 dans le commit abce5be989ccd0665e2b9445abb856886975dfd1 issu de PR #10131. Le titre du commit était 20260403-WC_FIPS_186. C'est un cas plus difficile que curl car le patch mélange le travail de conformité FIPS 186 avec des modifications de tests et de vérification. Il touche au code ASN.1 et ECC dans wolfcrypt/src/. Il atteint également les chemins TLS et PKCS#7.
Ce commit montre pourquoi VCamper utilise des passes Codex par étapes. Une invite large dérivait vers une seule histoire de bug local. Le pipeline par étapes a maintenu des théories distinctes en vie et a fait émerger trois découvertes vérifiées issues du même commit :
signatureAlgorithm / famille de clés ASN.1 dans ConfirmSignatureLe finaliste composite porte le signal principal. L'exécution finale par étapes a confirmé une découverte à 0.90 selon laquelle la vérification d'objets signés laissait les OID de signature contrôlés par l'attaquant orienter la vérification ECDSA vers des digests non concordants ou inférieurs à la politique. La CVE publiée met également l'accent sur l'activation mixte EdDSA / ML-DSA. VCamper a atterri dans la même famille de patchs. Il a préservé plusieurs théories et les a vérifiées indépendamment. Il a également récupéré la frontière de vérification partagée.
Cette commande montre le comportement actuel du prototype sur ce commit :
cargo run -- analyze \
--repo /path/to/wolfssl \
--from abce5be989ccd0665e2b9445abb856886975dfd1 \
--to abce5be989ccd0665e2b9445abb856886975dfd1 \
--provider codex \
--model gpt-5.4 \
--screen-effort xhigh \
--verify-effort xhigh \
--inventory-focuses 0,1,3,4,9 \
--out /tmp/vcamper-wolfssl-cve-2026-5194
Cette commande utilise une liste restreinte de points chauds sélectionnés car le commit est exceptionnellement bruité. L'exécution a récupéré la famille de patchs pertinente et une théorie utile de vérification d'objets signés composites à partir d'un commit qui ressemble à du churn de conformité. Pour les commits cryptographiques difficiles, le prototype peut récupérer les frontières de confiance partagées. Il peut également maintenir plusieurs histoires de sécurité vérifiées en vie. Un rapprochement plus étroit avec le récit de la CVE nécessite un raisonnement plus fort sur les fonctionnalités mixtes dans les étapes ultérieures.
cargo run -- analyze \
--repo /path/to/repo \
--from <older-release-commit> \
--to <newer-release-commit> \
--provider codex \
--model gpt-5.4 \
--screen-effort medium \
--verify-effort high \
--out /tmp/vcamper-run
gitcodexclaude