Claude Code가 23년간 숨겨져 있던 Linux 취약점을 발견

6 days ago 8
  • Anthropic의 Claude CodeLinux 커널의 원격 악용 가능한 취약점을 자동 탐지해, 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가 실제 보안 연구의 생산성을 극적으로 높일 수 있음을 보여주는 사례로 평가됨
Read Entire Article