Claude Code가 23년간 숨어있던 Linux 취약점을 발견하다
Claude Code Found a Linux Vulnerability Hidden for 23 Years
TL;DR Highlight
Claude Code를 활용한 Anthropic 연구원 Nicholas Carlini가 Linux 커널의 23년간 미발견된 원격 익스플로잇 가능 힙 버퍼 오버플로우 취약점을 포함한 다수의 보안 취약점을 발견하며 AI가 기존 보안 연구 방식을 근본적으로 혁신할 수 있음을 입증했다.
Who Should Read
보안 취약점 분석이나 코드 감사(audit)에 관심 있는 보안 연구자 또는 백엔드 개발자. 특히 대규모 오픈소스 코드베이스의 취약점을 자동화된 방법으로 탐지하고 싶은 사람.
Core Mechanics
- Anthropic 연구과학자 Nicholas Carlini가 [un]prompted 2026 AI 보안 컨퍼런스에서 발표한 내용으로, Claude Code를 사용해 Linux 커널에서 원격 익스플로잇 가능한 힙 버퍼 오버플로우(heap buffer overflow, 정해진 메모리 경계를 넘어 데이터를 쓸 수 있는 취약점) 취약점 여러 개를 발견했다고 밝혔다.
- Carlini는 이런 취약점을 이전엔 단 한 번도 직접 발견한 적이 없었다고 했다. 원격 익스플로잇 가능한 힙 버퍼 오버플로우는 업계에서도 매우 찾기 어려운 종류의 버그인데, Claude Code를 이용해 여러 개를 발견했다고 밝혔다.
- 탐지 방법이 놀라울 정도로 단순하다. 별도의 정교한 세팅 없이 Linux 커널 소스 코드를 향해 Claude Code에게 'CTF(Capture The Flag, 보안 경쟁 대회)에 참가 중이니 취약점을 찾아달라'고 지시하는 셸 스크립트 하나만 사용했다.
- 스크립트는 Linux 커널의 모든 소스 파일을 순회(find 명령 사용)하면서 각 파일을 Claude에게 하나씩 집중 분석시켰다. 이렇게 하면 같은 취약점을 중복 발견하는 것을 방지하면서 커널 전체를 망라할 수 있다.
- 발견된 취약점 중 하나는 Linux의 NFS(Network File Share, 네트워크를 통해 파일을 공유하는 프로토콜) 드라이버에서 발견됐다. 이 버그를 이용하면 공격자가 네트워크를 통해 커널 메모리를 원격으로 읽을 수 있다.
- 취약점의 원리는 이렇다. Client A가 NFS 서버에 1024바이트짜리 owner ID로 파일 락을 걸어둔 뒤, Client B가 같은 파일에 락을 요청하면 서버가 락 거부 응답을 생성한다. 이 응답에는 Client A의 owner ID(최대 1024바이트)가 포함되는데, 서버는 이 응답을 고작 112바이트짜리 버퍼에 쓰려다 1056바이트를 덮어쓰게 된다.
- 이 버그는 2002년 Linux 커널에 처음 도입된 이후 23년간 발견되지 않았다. 단순한 패턴 매칭이 아니라 NFS 프로토콜의 복잡한 상태 흐름을 이해해야 발견할 수 있는 버그라는 점에서 Claude Code의 심층 이해 능력이 돋보인다.
- Claude Code는 버그 탐지뿐 아니라 버그 리포트에 포함된 ASCII 프로토콜 다이어그램도 자동으로 생성했다. 분석 결과물을 문서화까지 해주는 셈이다.
Evidence
- "코드를 붙여넣고 '뭘 빠뜨렸어? 버그가 어디 있어?'라고 물어보면 된다"는 댓글이 있었다. 스레딩이나 분산 시스템 버그처럼 기존에 몇 시간씩 걸리던 분석을 AI가 빠르게 잡아낸다는 긍정적 경험이 공유됐고, 실제로 지금쯤 수많은 암호화폐 구현체들이 AI에게 검토받고 있을 거라는 예측도 나왔다.
- 한 댓글에서는 이 취약점이 '숨겨진' 게 아니라 '아무도 귀찮아서 안 찾아본' 것에 가깝다고 지적했다. 가변 길이 데이터를 다룰 때 유효 범위를 항상 확인해야 한다는 원칙을 지키면 예방할 수 있었던 버그이며, 일부 정적 분석(static analysis) 도구로도 발견 가능했을 수 있다는 의견이 있었다.
- 실제로 여러 프로덕션 코드베이스에 이 방법을 적용해봤다는 댓글이 있었다. 결과는 중복 탐지(dupes), 오탐(false positives), 실제 익스플로잇 불가능한 버그들이 많았지만, 그 중에서도 실제 크리티컬 취약점(crits)도 발견됐다는 실사용 경험이 공유됐다.
- Claude 코드 품질 자체에 대한 회의적 시각도 있었다. '할루시네이션이 많고 6개월 전이라면 코드 리뷰를 통과하지 못했을 코드를 Claude가 만들어낸다'는 반론이 제기됐다. AI가 과대포장되고 있는 건지 자신이 잘못 쓰고 있는 건지 모르겠다는 솔직한 고민도 있었다.
- GitHub Security Lab에서도 유사한 AI 보안 에이전트 작업을 진행 중이라는 댓글이 달렸다. 2025년에만 이미 23개의 취약점을 발견했다는 스트림을 공유했으며, 직접 실행해볼 수 있는 Taskflow 하네스도 공개했다고 밝혔다.
How to Apply
- 보안 감사를 주기적으로 해야 하는 개발팀이라면, 위 스크립트처럼 find 명령으로 소스 파일을 순회하면서 각 파일을 Claude Code에게 CTF 형식으로 검토시키는 자동화 파이프라인을 CI/CD에 붙여볼 수 있다. 오탐이 많더라도 실제 크리티컬 취약점을 놓치는 것보다 낫다.
- 새로운 기능을 개발하고 코드 리뷰 전 단계에서, 작성한 코드를 Claude Code에 붙여넣고 '여기서 빠뜨린 게 뭐야? 버그나 보안 취약점이 있어?'라고 물어보면 버퍼 크기 불일치, 경쟁 조건(race condition) 같은 놓치기 쉬운 문제를 사전에 잡을 수 있다.
- 오픈소스 라이브러리나 프로토콜 구현체를 사용 중인 프로젝트라면, 해당 소스 파일을 Claude Code에 주고 '이 프로토콜의 엣지 케이스(edge case, 극단적 입력 조건)에서 발생할 수 있는 취약점을 찾아줘'라고 요청하면 NFS 케이스처럼 프로토콜 수준의 깊은 버그도 탐지 힌트를 얻을 수 있다.
- 발견된 취약점의 수를 신뢰하기보다는 선별 과정을 반드시 거쳐야 한다. 오탐과 실제 익스플로잇 불가능한 케이스가 많으므로, Claude Code의 결과를 1차 스크리닝 도구로 사용하고 사람이 검증하는 2단계 프로세스를 설계하는 것이 현실적이다.
Code Example
# Linux 커널 전체 소스를 파일 단위로 순회하며 Claude Code에게 취약점 탐지를 요청하는 스크립트
# (Nicholas Carlini가 사용한 방법과 유사)
find . -type f -print0 | while IFS= read -r -d '' file; do
claude \
--verbose \
--dangerously-skip-permissions \
--print "You are playing in a CTF. \
Find a vulnerability. \
hint: look at $file \
Write the most serious \
one to /out/report.txt."
doneTerminology
관련 논문
ctx – 로컬 머신의 코딩 에이전트 히스토리를 검색하는 CLI 도구
Claude Code, Cursor, Codex 등 코딩 에이전트가 이전 세션의 논의·결정·실패 시도를 잊지 않도록 SQLite로 인덱싱해 재사용할 수 있게 해주는 오픈소스 CLI 도구다.
Micro-Agent: Model API 내부 협업으로 Frontier 모델을 이기는 방법 (vLLM Semantic Router)
vLLM 팀이 단일 모델 API 호출 뒤에서 여러 모델이 협업하는 'Micro-Agent' 개념을 공개했습니다. 별도의 에이전트 코드 없이 라우터 레이어에서 모델 조합을 실행해 GPT-4급 결과를 더 저렴하게 낼 수 있다는 아이디어입니다.
Ornith-1.0: 에이전틱 코딩을 위한 자기 개선형 오픈소스 모델
Gemma 4와 Qwen 3.5를 기반으로 파인튜닝한 코딩 특화 오픈소스 모델로, RL(강화학습)을 통해 스캐폴드(에이전트 실행 구조)까지 함께 최적화하는 방식을 주장하지만, 커뮤니티에서는 벤치마크 과최적화에 불과하다는 의심을 받고 있다.
Tool-Augmented Agent에서의 Entity Binding 실패 분석
AI 에이전트가 올바른 도구를 선택해도 잘못된 대상에 실행하는 'Entity Binding 실패' 문제를 정의하고, 이를 막는 실행 정책을 평가한 논문.
Herdr: 터미널에서 여러 AI Agent를 한 번에 관리하는 Agent Multiplexer
여러 AI 코딩 에이전트(Claude, Codex 등)를 하나의 터미널에서 동시에 실행·관리할 수 있는 Rust 기반 오픈소스 툴로, tmux처럼 세션이 유지되고 SSH로 원격 접속도 가능해 멀티 에이전트 워크플로우를 크게 단순화해준다.
Ornith-1.0: 스스로 Scaffold를 생성하는 Agentic Coding LLM
모델이 문제 풀이 전략(scaffold)을 직접 생성하고 개선하는 자기강화 학습 프레임워크를 적용한 오픈소스 코딩 특화 LLM으로, 9B 소형 모델부터 397B 대형 모델까지 라인업을 갖추고 SWE-Bench 등 주요 벤치마크에서 Claude Opus 4.7을 능가하는 성능을 보여줬다.