Tóm tắt toàn bài trong một dòng
- Đã tìm ra 3 lỗ hổng denial-of-service trong Django và FastAPI (Starlette) bằng một pipeline chi phí thấp kết hợp prompt LLM và đóng gói mã nguồn (CVE-2025-64458, CVE-2025-64460, CVE-2025-62727)
Tóm tắt
- Khi chứng kiến các đội xếp hạng cao tại DEF CON LiveCTF và DARPA AIxCC dùng LLM để phân tích binary và thậm chí tìm ra cả 0-day mới, tác giả nhận ra rằng trong lĩnh vực offensive research thực tế, LLM có thể cho hiệu suất tốt hơn con người
- Sau khi mổ xẻ kho lưu trữ GitHub và thiết kế RoboDuck của các đội tham gia AIxCC (Team Atlanta, Theori), tác giả thấy rằng cách tiếp cận “dùng LLM tìm bug thay vì fuzzing” có thể được đưa vào workflow tìm kiếm lỗ hổng
- Dựa trên bối cảnh tích lũy được từ việc báo cáo nhiều vấn đề bảo mật trong Django, DRF và Python, tác giả đặt mục tiêu giai đoạn đầu thật rõ ràng: dùng LLM để tìm các lỗ hổng mới thuộc nhóm denial-of-service trong framework Django
- Khác với các mô hình tham gia AIxCC tự động hóa toàn bộ từ phân tích binary đến vá lỗi, tác giả thiết kế một cấu trúc chỉ tự động hóa “bước gom các ứng viên đoạn mã có vẻ dễ bị tấn công” cho Django, vốn là nền tảng dựa trên script, nhờ đó giữ chi phí ở mức chỉ vài đô la
- Tác giả gán cho LLM vai trò “nhà nghiên cứu bảo mật tìm lỗ hổng trong Django”, rồi tạo một prompt dài gộp chung diff CVE mẫu về DoS, các ràng buộc trong
<tips> và ví dụ định dạng đầu ra, nhằm ngăn các đề xuất vá lỗi không cần thiết và giảm tỷ lệ false positive
- Mã nguồn Django được đóng gói theo từng thư mục thành XML rồi chia nhỏ dưới 40K token để đưa vào GPT-5; nhờ cách này, ngay cả khi quét hết toàn bộ framework một lượt, chi phí chạy vẫn chỉ khoảng 5 USD
- Khi xem xét các ứng viên false positive do workflow phát hiện, tác giả còn tìm ra những mẫu dễ tổn thương đã bị bỏ sót suốt nhiều năm. Ngay cả trong quá trình đánh giá tính hợp lệ, LLM cũng cho thấy năng lực rất tốt trong việc giải thích root cause của vấn đề bảo mật và viết PoC
- Sau đó, thay vì dùng OpenAI API, tác giả chuyển sang dùng prompt AGENTS.md với Codex CLI để chủ động rà soát mã nguồn Django; kết quả là đã phát hiện lỗ hổng DoS O(n²) trong xử lý hostname URL của
HttpResponseRedirectBase, và lỗ hổng này được đăng ký thành CVE-2025-64458
- Khi áp dụng cùng prompt đó cho FastAPI (chính xác hơn là Starlette), tác giả phát hiện logic hợp nhất header Range của
FileResponse có thể gây ReDoS do xử lý O(n²) dựa trên regex; lỗ hổng này được công bố là CVE-2025-62727 và được Snyk chấm CVSS 8.7 (High)
4 bình luận
Tinh thần hành động thật đáng kinh ngạc.. rất tuyệt vời
> Xét từ góc độ vốn, tôi nghĩ những công việc đòi hỏi ngữ cảnh cao và cần prompt tinh tế, dài thì thời điểm bị thay thế chắc chắn sẽ đến muộn hơn.
Tôi cũng nghĩ đây là một insight rất xuất sắc.
Tôi cũng chỉ mới quan tâm chứ chưa thực sự đào sâu, nhưng bài viết này mang lại cả động lực lẫn góc nhìn hữu ích. Xin giới thiệu một bài rất hay.
Nội dung bài viết hay hơn nhiều so với ấn tượng ban đầu khi chỉ đọc phần tóm tắt (giật tít..). Nếu quan tâm thì tôi khuyên bạn nên đọc nguyên bản.