DONE2026.09역할: 5인 팀 · 취약점 진단·검증, 연구·검수·제보 워크플로 구축, 최종 보고서 작성·제출
CVE를 찾아서: LLM과 오픈소스 보안 연구
LLM을 활용해 오픈소스 취약점을 진단·제보하고, maintainer의 보고서 수락까지 경험한 5인 팀 프로젝트입니다.
저장소 비공개 · 아래 공개 자료와 개발 기록에서 확인할 수 있습니다
시작 배경
첫 주에는 공통 오픈소스를 각자 LLM으로 진단하고 제보했다. 진단 결과는 빠르게 나왔지만 겹치는 내용과 심각도가 낮은 후보가 많았고, 제보가 반려되는 일도 잦았다. 여러 대상을 살펴보면서 유의미한 결과에 팀의 검토를 모을 작업 방식이 필요했다.
맡은 일
- 2주차부터 각자 오픈소스를 선정해 진단하고, 유의미한 후보가 나온 대상을 공유해 집중 진단하는 방식으로 바꿨다.
- 대상별 연구와 개별 취약점 후보를 나눠 관리하도록 GitHub 저장소와 Project를 구성했다.
- High 이상으로 예비 평가한 후보는 다른 팀원이 교차검수하고, 보고서 작성·제출·후속 응답까지 이어서 관리하도록 절차를 정했다.
- High 미만이나 후보가 나오지 않은 연구도 수행 범위와 판단 근거를 남기도록 했다.
- 팀원이 처음 발견한 취약점을 여러 팀원과 함께 검증했고, 최종 보고서는 내가 작성해 maintainer에게 제출했다.
진행 내용
- 팀이 제출한 취약점 보고서 중 3건이 채택됐고 4건이 반려됐다. 채택된 사례에서는 수정 관련 응답도 받았다.
- 개인별 대상 연구와 팀 검토를 연결하는 운영 문서와 보드를 구축했다.
- 수락과 반려 사례를 놓고 보고서의 주장과 근거를 스스로 돌아보며 3주간의 공동 연구를 마무리했다.
CJ 하네스 프로젝트에서 이어진 연구
기존 CJ 프로젝트에서는 AI가 제안한 내용을 사람이 검토하고, 실행 결과를 기록하는 하네스를 만들어 허가된 랩에서 사용했다. 그 경험을 바탕으로 다섯 명이 3주간 오픈소스 취약점 진단과 제보에 도전했다.
LLM으로 취약점 후보를 찾고, 영향과 근거를 검토해 maintainer에게 제보했다. 이 과정에서 팀이 제출한 보고서가 수락됐고, 수정 관련 응답까지 확인했다.
개인별 연구를 팀의 검토로 연결하기
첫 주에는 같은 오픈소스를 각자 진단했다. 2주차부터는 각자 대상을 고르고, 유의미한 후보가 나온 오픈소스를 공유해 함께 집중 진단하는 방식으로 바꿨다.
나는 진단에 참여하면서 이 작업을 관리할 워크플로를 구축했다. 대상별 연구의 담당자와 개별 후보를 넘겨받을 검수자를 구분하고, 연구 상태와 다음 작업은 GitHub Project에, 검토 판단과 인계 이력은 Issue에, 근거와 보고서는 저장소에 남기게 했다.
심각도는 CVSS v3.1로 평가하고, High 이상을 팀이 집중해서 검토하고 제보할 후보를 고르는 기준으로 삼았다. 그보다 낮게 평가된 결과도 기록해, 이후 평가가 바뀌거나 같은 문제를 다시 살펴볼 때 앞선 근거와 판단을 확인할 수 있게 했다. 작업 방식을 바꾼 과정은 2주차 기록에 남겼다.
maintainer가 수락한 제보와 내가 맡은 일
공동 연구를 마무리할 때까지 팀이 제출한 보고서 중 채택된 보고서는 3건, 반려된 보고서는 4건이었다. 연구 종료 시점에 CVE 발급 여부는 확인되지 않았다.
채택된 사례 중 아래에서 다루는 취약점은 다른 팀원이 처음 발견했다. 나도 여러 팀원과 함께 해당 취약점의 검증에 참여했고, 팀이 정리한 결과를 바탕으로 최종 보고서를 작성해 제출했다. maintainer는 보고서를 수락했고, 이후 수정 관련 응답을 남겼다.

3주차에는 이 수락 사례와, 다른 프로젝트에 제출했다가 반려된 제보를 함께 정리했다. 보고서가 어떤 영향을 주장했고, 제시한 근거가 그 영향을 어디까지 뒷받침하는지를 스스로 돌아봤다.
3주간의 공동 연구를 마치며
각자 대상을 탐색하고 유의미한 후보를 함께 집중 진단하는 공동 연구는 3주차를 끝으로 마무리했다. 진단 결과를 얻는 데서 시작해, 팀의 분석과 검증을 거친 보고서를 제출하고 maintainer의 수락을 확인한 경험을 이번 프로젝트의 결과로 남긴다.
각자의 자율적인 탐색과 버그바운티 도전은 개별 활동으로 이어가되, GitHub와 Discord를 통한 팀의 경험 공유는 계속하기로 했다.
개발일지
프로젝트를 진행하며 내린 판단과 작업 과정을 시간순으로 정리했습니다.
