gym 코퍼스 퍼징 발견 엔진 — DoS 근본원인 클러스터링 (#4828) - #4829
Closed
kevin9327 wants to merge 1 commit into
Closed
Conversation
robustness.py(edwardkim#4814)가 릴리스 게이트(바운드·패닉/행 0 강제)라면, fuzz_corpus.py는 그 앞단의 발견 엔진이다. 전 코퍼스 × 다명령 × 결정적 손상을 ThreadPoolExecutor로 병렬 퍼징해, 안 고쳐진 DoS를 소스 위치(file:line)별로 클러스터링한다. - gym/tools/fuzz_corpus.py: 명령 지정(기본 info/export-text/export-structure/ export-render-tree)·결정적 변형(절단·플립·biglen)·병렬·패닉 클러스터(스택오버플로· 어보트 별도 버킷)·무한루프 timeout 버킷. JSON/사람용 리포트. - 이 캠페인의 실제 DoS(렌더러·파서 오버플로·무한루프·스택오버플로)를 전부 이 방식으로 발견했고, 그 방법을 재사용 가능한 도구로 정식화. 에이전트가 돌려 rhwp를 계속 경화. - 가드: test_gym_fuzz_corpus(변형 결정성·분류·클러스터링, 바이너리 없이 목킹 5건), ci.yml 등록, gym/README 문서. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
jangster77
self-requested a review
August 15, 2026 13:28
Collaborator
|
통합 PR #4883(4412546)로 병합 완료했습니다. 원 head와 CI를 다시 확인해 누적 반영했고, 상세 검토·메인터너 보정·검증 근거는 archive 검토 기록에 남겼습니다. 중복 병합을 막기 위해 이 원 PR을 닫습니다. 감사합니다. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
gym 코퍼스 퍼징 발견 엔진 — DoS 를 근본원인별로 색출
robustness.py(#4814)는 릴리스 게이트(바운드·"패닉/행 0" 강제)다. 그 앞단의발견 엔진이 없다 — 전 코퍼스를 여러 명령·여러 손상으로 exhaustive 하게 두들겨
아직 안 고쳐진 DoS 를 찾아 소스 위치별로 묶어주는 도구.
이 캠페인의 실제 DoS(렌더러/파서 오버플로·무한루프·스택 오버플로)는 전부 이런 병렬
퍼징으로 찾았다. 그 방법을 재사용 가능한 gym 도구로 정식화해, 어떤 에이전트든 돌려
새 DoS 를 발견→수정→(robustness 게이트가 회귀 차단)하게 한다.
제안
gym/tools/fuzz_corpus.py: 전 코퍼스 × 다명령(info·export-text·export-structure·export-render-tree 기본, 지정 가능) × 결정적 변형(절단·플립·biglen)을 ThreadPoolExecutor
로 병렬 실행. 패닉을
panicked at file:line로 클러스터(스택오버플로·어보트 별도),무한루프를 timeout 으로 버킷. JSON/사람용 리포트. 바이너리-없는 가드 5건.
Done when
fuzz_corpus.py --bin <rhwp>가 코퍼스를 병렬 퍼징해 고유 패닉 위치·행 클러스터를 낸다.test_gym_fuzz_corpus.py)가 변형 결정성·분류·클러스터링을 바이너리 없이 시험, CI 등록.