16P by nuremberg 11시간전 | ★ favorite | 댓글 3개

전체 한 줄 요약

  • LLM 프롬프트와 소스코드 번들링을 얹은 저렴한 파이프라인으로 Django 와 FastAPI(Starlette)에서 denial-of-service 취약점 3건을 찾아냄 (CVE-2025-64458, CVE-2025-64460, CVE-2025-62727)

요약

  • DEF CON LiveCTF와 DARPA AIxCC에서 상위권 팀들이 LLM으로 바이너리를 뚫고 신규 0-day까지 찾는 걸 보면서, 실제 offensive research 분야에서도 LLM이 인간보다 더 나은 능률을 보일 수 있다는 것을 느낌
  • AIxCC 참가 팀(Team Atlanta, Theori)의 GitHub 아카이브와 RoboDuck 설계를 뜯어보며, "퍼징 대신 LLM으로 버그를 찾는" 접근 방식을 취약점 발굴 workflow에 이식할 수 있겠다고 느낌
  • Django, DRF, Python에서 여러 보안 이슈를 제보하며 쌓은 컨텍스트를 활용해, LLM을 이용해 Django 프레임워크에서 denial-of-service 계열 신규 취약점을 찾는 것을 명확한 1차 목표로 삼음
  • 바이너리 분석·패치까지 전부 자동화하는 AIxCC 참가 모델들과 달리, 스크립트 기반인 Django를 대상으로 “취약해 보이는 코드 세그먼트 후보를 긁어 모으는 단계”만 자동화해서 비용을 몇 달러 수준으로 제한하는 구조를 설계함
  • LLM에게 "Django에서 보안 취약점을 찾는 시큐리티 리서처"라는 역할을 부여하고, DoS 예시 CVE diff, <tips> 제약조건, 출력 포맷 예시를 한데 묶은 장문 프롬프트를 만들어, 불필요한 패치 제안은 막고 오탐 비율을 낮추는 쪽으로 프롬프트를 작성
  • Django 소스코드는 같은 디렉터리끼리 XML로 번들링해 40K 토큰 이하로 쪼개 GPT-5에 넘겼고, 이런 식으로 프레임워크 전체를 한 바퀴 돌려도 실행 비용이 대략 5달러 정도로 유지되도록 함
  • Workflow에서 발견된 false-positive한 후보들을 검토해보니 수년간 놓쳤던 취약한 패턴을 발견하기도 함. 유효성 판단 과정에서도 보안 이슈의 root cause 설명과 PoC 작성 등에 뛰어난 능력을 보임
  • 이후 OpenAI API 대신 Codex CLI에 AGENTS.md 프롬프트를 물려 Django 소스를 능동적으로 훑게 했고, 그 결과 HttpResponseRedirectBase의 URL hostname 처리에서 O(n²) DoS 취약점을 찾아 CVE-2025-64458로 등록됨
  • 같은 프롬프트를 FastAPI(정확히는 Starlette)에 적용했더니, FileResponse의 Range 헤더 병합 로직이 정규식 기반 O(n²) 처리로 ReDoS를 유발할 수 있다는 점이 드러나 CVE-2025-62727로 공개되었고 Snyk 기준 CVSS 8.7(High) 평가를 받음

자본의 측면에서, 섬세하고 긴 프롬프트가 필요한 고맥락 작업일수록 대체 시기가 늦어질 수밖에 없다고 생각합니다.

요 부분도 훌륭한 인사이트라고 생각합니다.

저도 관심만 있었고 실제로 깊게 해보지 못했는데, 이 글이 동기와 인사이트를 함께 주네요. 좋은 글 추천합니다.

요약 보고 선입견 가졌던 것보다(어그로..) 글 내용이 훨씬 좋네요. 관심 있으신 분은 원문 읽으시길 추천드립니다.