Claude Code가 23년간 숨겨져 있던 Linux 취약점을 발견
6 days ago
8
-
Anthropic의 Claude Code가 Linux 커널의 원격 악용 가능한 취약점을 자동 탐지해, 23년간 발견되지 않았던 NFS 드라이버의 힙 버퍼 오버플로우를 찾아냄
- 단순히 “보안 취약점이 어디 있는가?”라는 프롬프트만으로 커널 전체를 분석해 거의 감독 없이 취약점을 식별함
- 해당 버그는 2003년 커널 코드의 112바이트 고정 버퍼 설계에서 비롯되었으며, 이후 LOCK 연산 추가 시 owner ID 길이 제한 누락으로 발생함
- Carlini는 이 외에도 수백 개의 잠재적 커널 취약점을 발견했으나, 인간 검증 병목으로 대부분 아직 보고되지 않음
- 최신 Claude Opus 4.6 모델이 이전 버전보다 훨씬 높은 탐지 능력을 보여, AI 기반 보안 연구의 전환점으로 평가됨
-
Anthropic의 연구원 Nicholas Carlini가 Claude Code를 이용해 Linux 커널의 원격 악용 가능한 취약점 여러 개를 발견함
- 그중 하나는 23년간 발견되지 않았던 NFS(Network File System) 드라이버의 버퍼 오버플로우 취약점
- Carlini는 “이런 종류의 취약점을 직접 찾은 적이 없었다”며 Claude Code의 성능에 놀라움을 표현
-
Claude Code의 취약점 탐지 방식
- Claude Code는 거의 감독 없이 Linux 커널의 보안 취약점을 탐지함
- Carlini는 단순히 “보안 취약점이 어디 있는가?”라는 프롬프트를 주고 커널 전체 소스 파일을 순회하도록 설정
- 사용된 스크립트는 각 파일을 대상으로 CTF(해킹 대회) 상황을 가정해 Claude Code가 가장 심각한 취약점을 /out/report.txt에 기록하도록 구성
-
find 명령으로 모든 파일을 탐색하고, 각 파일마다 Claude Code가 취약점을 찾도록 반복 실행
- 동일한 취약점이 중복 보고되지 않도록 설계되어, 커널의 모든 파일을 개별적으로 분석함
-
NFS(Network File System) 취약점
- Claude Code가 발견한 주요 취약점은 Linux NFS 드라이버의 힙 버퍼 오버플로우로, 공격자가 네트워크를 통해 커널 메모리를 읽을 수 있음
- 공격 시나리오는 두 개의 협력하는 NFS 클라이언트(Client A, Client B) 가 하나의 NFS 서버를 대상으로 수행
- Client A가 1024바이트의 긴 owner ID를 사용해 파일 잠금을 요청하고 승인받음
- 이후 Client B가 동일 파일에 잠금을 요청하면 서버는 이를 거부하며 응답 메시지를 생성
- 문제는 이 거부 응답 버퍼 크기가 112바이트에 불과한데, 실제 메시지는 owner ID 포함 시 총 1056바이트에 달함
- 결과적으로 커널이 1056바이트를 112바이트 버퍼에 기록하면서 공격자가 제어하는 데이터로 커널 메모리를 덮어씀
- Claude Code는 이 취약점을 보고할 때 ASCII 프로토콜 다이어그램까지 자동 생성해 포함함
-
23년간 발견되지 않은 이유
- 해당 버그는 2003년 3월 Linux 커널에 도입된 코드에서 비롯됨
- 당시 커밋 메시지에는 NFSD4_REPLAY_ISIZE라는 112바이트 고정 버퍼가 OPEN, CLOSE 등 NFSv4 연산용으로 충분하다고 명시됨
- 이후 LOCK 연산이 추가되면서 owner ID 길이 제한이 고려되지 않아 취약점이 발생
- 이 코드는 Git 도입(2005년) 이전의 변경 사항으로, 현재는 직접 링크조차 불가능한 오래된 코드 기반임
-
보고되지 못한 수백 개의 추가 취약점
- Carlini는 수백 개의 잠재적 Linux 커널 취약점을 추가로 발견했으나,
인간 검증 과정의 병목으로 인해 대부분 아직 보고되지 않음
- “검증되지 않은 결과를 커널 메인테이너에게 보낼 수 없기 때문에, 아직 확인하지 못한 수백 건의 크래시가 있다”고 언급
- 현재까지 Carlini가 직접 수정하거나 보고한 취약점은 5건으로 확인됨
-
nfsd: fix heap overflow in NFSv4.0 LOCK replay cache
-
io_uring/fdinfo: fix OOB read in SQE_MIXED wrap check
-
futex: Require sys_futex_requeue() to have identical flags
-
ksmbd: fix share_conf UAF in tree_conn disconnect
-
ksmbd: fix signededness bug in smb_direct_prepare_negotiation()
-
AI 기반 취약점 탐지의 발전
- Carlini는 Claude Opus 4.6(출시 2개월 전)을 사용해 이 취약점을 발견함
- 이전 버전인 Opus 4.1(8개월 전), Sonnet 4.5(6개월 전) 에서는 동일한 결과를 재현하지 못함
- 최신 모델이 훨씬 더 많은 취약점을 탐지할 수 있었음
- 그는 “앞으로 몇 달 안에 연구자와 공격자 모두가 이러한 AI 모델의 강력함을 인식하면서, 대규모 보안 취약점 발견의 물결이 올 것”이라고 전망
-
발표 및 기타 정보
- 이 내용은 [un]prompted AI security conference 2026에서 발표됨
- Claude Code의 발견 사례는 AI가 실제 보안 연구의 생산성을 극적으로 높일 수 있음을 보여주는 사례로 평가됨
-
Homepage
-
개발자
- Claude Code가 23년간 숨겨져 있던 Linux 취약점을 발견