
PoC: выявление скрытых патчей безопасности до CVE
VCamper («Version Camper») — это концептуальный CLI-инструмент, который анализирует диапазон коммитов Git на предмет вероятных скрытых исправлений безопасности.
Исправления безопасности часто попадают в публичную историю Git раньше, чем выходят соответствующие уведомления (advisory). Коммит, выглядящий как рутинное обслуживание, может содержать достаточно улик, чтобы рецензент мог вывести путь к ошибке и её вероятные последствия.
VCamper превращает этот рабочий процесс анализа релизных диффов в воспроизводимый сбор доказательств. Он собирает патч каждого кандидата и снимки изменённых файлов. Он фиксирует план «горячих точек» (hotspot) перед тем, как попросить агента отсеять и проверить коммиты, которые с наибольшей вероятностью имеют значение.
Следите за обновлениями: x.com/rndhouse
curl исправил CVE-2025-0725 в коммите 76f83f0db23846e254d940ec7fe141010077eb88. Название content_encoding: drop support for zlib before 1.2.0.4 звучит как совместимостное обслуживание. Исправление попало в GitHub-репозиторий curl 2025-01-24 через PR #16079. curl опубликовал уведомление 2025-02-05. Между публичным кодом и публичным уведомлением прошло около 12 дней. Источники: и .
Эта команда анализирует сам по себе коммит с исправлением:
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 пометил коммит как относящийся к безопасности с уверенностью 0.95. Находка проследила удалённый fallback для старого zlib-gzip до пути удалённого исчерпания памяти на стороне клиента: сервер мог заставлять curl буферизовать управляемые атакующим байты gzip-заголовка до полного исчерпания памяти. Верификатор определил соответствующее состояние как GZIP_UNDERFLOW; необязательные поля gzip-заголовка могли продолжать не получать завершающий NUL, пока curl продолжал перераспределять память и добавлять байты в z->next_in.
Запуск использовал только публичный коммит с исправлением; текст CVE не участвовал в анализе. Находка совпала с уязвимым путём fallback для старого zlib и сообщила о поддерживаемом последствии как об удалённом DoS с исчерпанием ресурсов. Уведомление curl использует более широкую классификацию CWE-680.
wolfSSL исправил CVE-2026-5194 в коммите abce5be989ccd0665e2b9445abb856886975dfd1 из PR #10131. Название коммита — 20260403-WC_FIPS_186. Это более сложный случай, чем curl, потому что патч смешивает работу по соответствию FIPS 186 с изменениями тестов и проверок. Он затрагивает код ASN.1 и ECC в wolfcrypt/src/. Он также достигает путей TLS и PKCS#7.
Этот коммит показывает, почему VCamper использует поэтапные проходы Codex. Широкий промпт дрейфовал в сторону одной локальной истории об ошибке. Поэтапный конвейер сохранял отдельные теории живыми и выявил три проверенные находки из одного коммита:
signatureAlgorithm / семейства ключей в ASN.1 в ConfirmSignatureСоставной финалист несёт основной сигнал. Финальный поэтапный запуск подтвердил находку с уверенностью 0.90: проверка подписанных объектов позволяла управляемым атакующим OID подписи направлять проверку ECDSA на несоответствующие или ниже политики дайджесты. Опубликованный CVE также подчёркивает смешанное включение EdDSA / ML-DSA. VCamper попал в то же семейство патчей. Он сохранил несколько теорий и проверил их независимо. Он также восстановил общую границу проверки.
Эта команда показывает текущее поведение прототипа на этом коммите:
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
Эта команда использует курируемый короткий список «горячих точек», потому что коммит необычно шумный. Запуск восстановил релевантное семейство патчей и полезную составную теорию проверки подписанных объектов из коммита, который читается как рутинное соответствие требованиям. Для сложных криптографических коммитов прототип может восстановить общие границы доверия. Он также может поддерживать несколько проверенных историй безопасности одновременно. Более точное совпадение с нарративом CVE требует более сильных рассуждений о смешанных функциях на более поздних этапах.
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