
PoC: CVE 이전의 무음 보안 패치 식별
VCamper("Version Camper")는 Git 커밋 범위에서 잠재적인 무소리 보안 수정(silent security fix)을 검토하는 개념 증명(PoC) CLI 도구입니다.
보안 수정은 공개 Git 히스토리에 도달하는 경우가 많지만, 권고(advisory)가 이를 따라잡기 전에 먼저 공개되는 경우가 많습니다. 유지보수처럼 보이는 커밋 하나에도 검토자가 버그 경로와 예상 결과를 추론할 수 있는 충분한 증거가 담길 수 있습니다.
VCamper는 이러한 릴리스-디프(release-diff) 워크플로를 반복 가능한 증거 수집으로 전환합니다. 각 후보의 패치와 변경된 파일 스냅샷을 수집하고, 에이전트가 가장 중요할 가능성이 높은 커밋을 선별하고 검증하기 전에 핫스팟 계획을 기록합니다.
업데이트 팔로우: x.com/rndhouse
curl은 커밋 76f83f0db23846e254d940ec7fe141010077eb88에서 CVE-2025-0725를 수정했습니다. 제목 content_encoding: drop support for zlib before 1.2.0.4는 호환성 유지보수처럼 보입니다. 이 수정은 2025-01-24에 PR #16079를 통해 curl의 GitHub 저장소에 반영되었습니다. curl은 2025-02-05에 권고를 게시했습니다. 즉, 공개 코드와 공개 권고 사이에 약 12일의 간격이 있었습니다. 출처: curl 권고 및 curl PR #16079.
다음 명령은 해당 수정 커밋을 단독으로 분석합니다:
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로 보안 관련 커밋으로 플래그했습니다. 이 발견은 제거된 구형 zlib gzip 폴백을 원격 클라이언트 측 메모리 고갈 경로로 추적했습니다: 서버가 curl로 하여금 공격자가 제어하는 gzip 헤더 바이트를 메모리가 고갈될 때까지 버퍼링하도록 유지할 수 있었습니다. 검증기는 관련 상태를 GZIP_UNDERFLOW로 식별했습니다. 선택적 gzip 헤더 필드가 종료 NUL을 계속 누락할 수 있는 동안 curl은 z->next_in에 바이트를 계속 재할당하고 추가했습니다.
이 실행은 공개 수정 커밋만 사용했으며, CVE 텍스트는 분석에서 제외되었습니다. 이 발견은 취약한 구형 zlib 폴백 경로와 일치했으며, 지원되는 결과를 원격 리소스 소비 DoS로 보고했습니다. curl의 권고는 더 광범위한 CWE-680 분류를 사용합니다.
wolfSSL은 PR #10131의 커밋 abce5be989ccd0665e2b9445abb856886975dfd1에서 CVE-2026-5194를 수정했습니다. 커밋 제목은 20260403-WC_FIPS_186였습니다. 이는 curl보다 더 어려운 사례인데, 패치가 FIPS 186 준수 작업과 테스트 및 검증 변경 사항을 혼합하고 있기 때문입니다. wolfcrypt/src/의 ASN.1 및 ECC 코드를 건드리며, TLS 및 PKCS#7 경로에도 영향을 미칩니다.
이 커밋은 VCamper가 단계별(staged) Codex 패스를 사용하는 이유를 보여줍니다. 광범위한 프롬프트는 하나의 로컬 버그 스토리로 흘러갔습니다. 단계별 파이프라인은 별도의 이론을 유지했고, 동일한 커밋에서 세 가지 검증된 발견을 표면화했습니다:
ConfirmSignature의 공유 ASN.1 signatureAlgorithm / 키-패밀리 바인딩 결함복합 최종 후보가 주요 신호를 담고 있습니다. 최종 단계 실행은 서명 객체 검증이 공격자가 제어하는 서명 OID가 ECDSA 검증을 불일치하거나 정책 미만의 다이제스트로 유도하도록 허용한다는 0.90 발견을 확인했습니다. 게시된 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