Fuzzilli + current V8
REPRL·coverage gate를 통과한 window에서 실행 수, target hit, 유효 입력, timeout, crash를 원시 artifact로 남깁니다.
과거 CVE의 근거를 현재 V8 퍼징 전략으로 연결합니다. Experiment Manager만 campaign, queue, corpus, 예산을 변경하며 모든 제안과 결과는 기록·게이트를 통과합니다.
준비 단계에서 전략을 만들고, Manager가 실행을 동결합니다. 실행 이벤트는 전략 갱신이나 후보 검증으로만 이어집니다.
공개 CVE → 현재 V8
schema·출처·권한·예산을 검사하고 campaign을 동결합니다. queue, corpus, 설정, 상태 변경 권한은 이 제어면에만 있습니다.
REPRL·coverage gate를 통과한 window에서 실행 수, target hit, 유효 입력, timeout, crash를 원시 artifact로 남깁니다.
후보를 중복 제거·최소화하고 별도 환경에서 반복 재현합니다. 사람 검토 후에만 검증된 finding으로 승격합니다.
Agent는 공유 상태를 직접 수정하지 않습니다. 실행 결과의 해석과 버그 판정도 executor가 수행하지 않습니다.
각 레코드는 부모 ID, 상태, source hash를 연결합니다. 관찰값을 보존하고 해석이 바뀌면 새 기록을 남깁니다.
현재 V8 SHA, 경로와 불변식이 확인되어야 strategy를 campaign으로 보낼 수 있습니다.
campaign freeze와 d8·Fuzzilli·toolchain hash, 환경 manifest가 맞아야 run을 시작합니다.
최소 입력, 별도 환경의 반복 재현, 중복 판정과 사람 검토가 있어야 bug로 기록합니다.
B2의 단일 Strategy Agent는 사전 등록된 이벤트에서만 제안합니다. Manager가 제안의 schema, allowlist, 예산을 검증한 뒤 다음 window 설정에 적용합니다.
시작 corpus와 generator weight는 window 중 바뀌지 않습니다. 실행과 contributor 통계를 snapshot으로 보존합니다.
새 target path, hit 정체, 반복 실패, 새 oracle candidate 중 등록된 trigger가 있을 때만 Agent를 호출합니다.
허용된 weight 변경 또는 재검토 요청만 받습니다. 권한·event ID·token 상한을 벗어나면 거절 로그를 남깁니다.
새 immutable configuration과 corpus hash를 기록하고 다음 window에만 반영합니다. 실패 시 직전 승인 설정으로 되돌립니다.
동일 current V8, 초기 corpus, CPU·실행·시간 예산을 기준으로 비교하며 arm 간 corpus는 분리합니다.
target 도달이나 crash 한 건은 검증된 취약점이 아닙니다. 원시 결과와 실패 상태도 삭제하지 않고 남깁니다.
coverage·target hit·exit·signal·stdout/stderr hash
중복 제거, 최소화, 반복 재현 대상
최소 입력 hash, 원인 검토, 안정성 확인
검증된 결과만 report의 bug 수에 포함
경로가 사라졌으면 전략을 보류하고 더 일반적인 불변식으로 되돌립니다.
REPRL·coverage·binary hash가 맞지 않으면 run을 무효로 분리하고 실행 전 단계로 돌아갑니다.
직전 승인 configuration과 시작 corpus에서 재개합니다. 실패 window의 corpus는 다음 단계로 전달하지 않습니다.
후보를 삭제하지 않고 not_reproduced 상태와 근거를 남깁니다.
LLM 피드백(B2) 비교 실험을 반복하며 제어 경로를 교정한 뒤, 동결된 정책을 서로 다른 CVE 계열의 external holdout으로 전이했습니다.
Codex CLI provider·제안 경로·window runner 배선을 smoke로 확인. 적응 효과 측정 이전 단계.
저가중치 action 1→6. 제어 경로는 통과했으나 조정 대상 hit 증가는 발동 4쌍 중 2쌍으로 효과 불확정.
weight 교정(≥20 invoc/window ≈ weight 100)으로 action 1→100. 발동 4쌍 중 3쌍에서 hit 양수(+6/+7), v2보다 뚜렷.
네 generator·9 run·18 window. weight 변경이 마지막 window 뒤 발생해 적응 실행 window가 0.
강한 적응 재시도. 40k window에서 6번째 B2 콜 누적 input이 한도를 164토큰 초과해 중단(aborted 기록 보존).
30k window로 낮춰 9 run·18 window 완주(362,008 execs). 균형 weight 시작이라 발동률이 낮고 B2가 B1을 앞서지 않음.
LiveAlias 1 / DefaultRef 20로 시작해 안정 발동. 3 B2 run 모두 1→100, 처음으로 B2가 B1을 일관되게 앞서는 양의 신호(interesting +4.6%·corpus +7.5% 중앙값). 단 n=3 저검정력.
방향을 뒤집음(DefaultRef-low). v7의 일반 우위가 재현되지 않고 음으로 뒤집힘(interesting −38·corpus −22). → v7 신호는 방향 특정 artifact, 적응 일반우월성 미입증.
JSON exception path, Array species, super IC/API getter의 3 campaign·9 paired repetition에서 B2−B1 target hit이 9/9 양수(중앙값 +37). 일반 coverage·corpus·interesting 개선은 0/3이라 target 재배분 효과로만 판정.
v8-fuzz-lab의 architecture/overview.md, workflow.md, data-contracts.md, b2-feedback-control.md와 experiments/protocol.md를 요약했습니다. B3는 설계상 비교군이며 완료 실험으로 표시하지 않습니다.