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
관련 논문
Forge – Guardrails로 8B 모델 성능을 53%에서 99%로 끌어올리기
작은 로컬 LLM(8B)에 guardrails(구조적 안전망)를 씌워 멀티스텝 에이전트 작업 성공률을 53%에서 99%까지 올린 Python 프레임워크 Forge 공개. 모델 자체는 건드리지 않고 실행 환경을 강화하는 접근법이라 주목받고 있음.
Mini Shai-Hulud 재등장: npm 패키지 314개 동시 감염 사건 분석
2026년 5월 19일, npm 계정 하나가 탈취되어 22분 만에 637개 악성 버전이 배포됐고, echarts-for-react·size-sensor 등 월 수백만 다운로드 패키지들이 감염되어 AWS 자격증명·SSH 키·AI 코딩 에이전트까지 탈취하는 정교한 공급망 공격이 발생했다.
Semble – AI 에이전트용 코드 검색 도구, grep 대비 토큰 98% 절감
AI 에이전트가 코드베이스를 탐색할 때 grep+파일 읽기 대신 자연어로 관련 코드 스니펫만 뽑아주는 검색 라이브러리로, 토큰 사용량을 약 98% 줄여준다.
Zerostack – 순수 Rust로 작성된 Unix 철학 기반 코딩 에이전트
Claude Code나 OpenCode처럼 메모리를 수 GB씩 잡아먹는 코딩 에이전트 대신, Rust로 만든 초경량(~8MB RAM) 코딩 에이전트 Zerostack이 공개됐다. 저사양 환경에서도 쓸 수 있고, 직접 만든 유사 프로젝트들과 비교 토론이 활발하게 이뤄지고 있다.
Δ-Mem: LLM을 위한 효율적인 온라인 메모리 메커니즘
LLM의 컨텍스트 윈도우를 늘리지 않고도 과거 정보를 효율적으로 기억할 수 있는 경량 메모리 모듈 δ-mem을 제안한 논문. 모델 자체를 바꾸거나 파인튜닝 없이 기존 LLM에 붙여서 장기 기억 성능을 높일 수 있어 에이전트 시스템 개발자에게 관심을 끌고 있다.
대규모 코드베이스에서 Claude Code가 동작하는 방식: 모범 사례와 시작점
Anthropic이 수백만 줄짜리 모노레포, 레거시 시스템, 수십 개 마이크로서비스 환경에서 Claude Code를 운영한 패턴을 정리한 글이다. RAG 방식 대신 에이전틱 검색을 쓰는 이유와 실제 현장의 한계를 함께 확인할 수 있다.