Back to Blog

Claude가 루트 셸 권한을 얻는 완전한 FreeBSD 원격 커널 RCE를 작성했습니다 (CVE-2026-4747)

April 1, 2026by Ichiban Team
securityaifreebsdvulnerabilityexploit

Hero

#들어가며

인공지능과 오펜시브 시큐리티(Offensive Cybersecurity)가 교차하는 지점에서 방금 역사적인 순간이 기록되었습니다. 보안 연구원들에 따르면, Anthropic의 대규모 언어 모델(LLM)인 Claude가 FreeBSD 커널을 대상으로 한 완전하고 안정적인 원격 코드 실행(RCE) 익스플로잇을 성공적으로 작성해 냈습니다. CVE-2026-4747로 명명된 이 취약점을 이용하면 인증되지 않은 원격 공격자가 루트 셸(root shell)을 획득할 수 있습니다.

물론 과거에도 AI 모델들이 잠재적인 취약점을 찾아내거나 간단한 유저랜드(userland) 익스플로잇을 작성하는 능력을 보여준 적은 있습니다. 하지만 다단계로 이루어진 원격 커널 익스플로잇을 구성하는 것은 악명 높을 정도로 복잡한 작업입니다. 메모리 관리 기법과 커널 방어 메커니즘은 물론이고, 정밀한 타이밍에 대한 깊은 이해가 필수적이기 때문입니다. LLM이 이러한 복잡한 요구사항들을 종합하여 무기화된 페이로드(payload)를 만들어 낼 수 있다는 사실은, 우리가 취약점 관리와 시스템 방어에 접근하는 방식 자체의 패러다임이 바뀌어야 함을 시사합니다.

#무슨 일이 일어났는가

CVE-2026-4747은 FreeBSD 네트워크 스택 내부의 치명적인 결함에서 비롯되었습니다. 구체적으로는 비정상적인 IPv6 확장 헤더를 처리하는 과정에서 발생하는 레이스 컨디션(race condition)과 그에 뒤따르는 UAF(Use-After-Free) 취약점입니다. 시스템에 부하가 걸린 상태에서 이러한 헤더들이 동시다발적으로 파싱될 때, 커널은 mbuf(메모리 버퍼)를 해제하지만 패킷 처리 큐에는 댕글링 포인터(dangling pointer)를 그대로 남겨두게 됩니다.

Califio의 보안 연구원들에 따르면, 그들은 Claude에게 아주 최소한의 정보만을 제공했습니다. 커널 크래시 덤프, FreeBSD 네트워크 서브시스템의 취약한 소스 코드 스니펫, 그리고 작동하는 PoC(Proof-of-Concept)를 개발하라는 프롬프트가 전부였습니다.

Claude는 일련의 반복적인 프롬프트를 거치면서 단순히 이론적인 익스플로잇 단계만을 제시하는 데 그치지 않았습니다. 취약점을 트리거하고, 커널 힙 레이아웃을 조작하며(Heap Feng Shui), 정교한 ROP(Return-Oriented Programming) 체인을 실행하는 Python 코드를 직접 생성해 냈습니다. 이 모델은 다음과 같은 작업들을 자율적으로 파악하고 수행했습니다.

  • 네트워크 연결을 통해 조작된 데이터로 해제된 mbuf를 안정적으로 재할당받기 위해 **힙 스프레이(Heap Spraying)**를 수행했습니다.
  • ICMPv6 응답 핸들러에서 자체적으로 발견한 초기 정보 유출(information leak) 기법을 연쇄적으로 사용하여 KASLR(Kernel Address Space Layout Randomization)을 우회했습니다.
  • 스택을 피벗(pivot)하고, SMAP(Supervisor Mode Access Prevention)를 비활성화한 뒤, 리버스 루트 셸을 띄우는 최종 셸코드를 실행하도록 ROP 체인을 구성했습니다.

#이것이 왜 중요한가

역사적으로 볼 때 취약점이 공개된 시점부터 무기화된 원격 커널 익스플로잇이 등장하기까지는 짧게는 몇 주, 길게는 몇 달이 걸렸습니다. 커널 익스플로잇은 고도로 전문화된 장인 정신이 필요한 과정이기 때문입니다. 연구원들은 메모리 할당자의 동작을 분석하고, 유용한 가젯(gadget)을 찾으며, 익스플로잇이 커널 패닉을 일으키지 않도록 수백 시간을 쏟아붓습니다.

Claude의 성공은 이 타임라인을 극적으로 압축해 버렸습니다. AI가 크래시 덤프와 패치 내역(diff)을 안정적인 제로 클릭(zero-click) 원격 루트 익스플로잇으로 변환할 수 있다면, 사실상 '익스플로잇 제작 소요 시간(time-to-exploit)'은 거의 0에 수렴하게 됩니다.

  • 진입 장벽의 붕괴: 지능형 지속 위협(APT) 그룹이나 엘리트 취약점 연구 팀만이 안정적인 커널 RCE를 개발할 수 있는 시대는 끝났습니다.
  • '숨기는 것을 통한 보안(Security by Obscurity)'의 종말: 시스템의 복잡성이나 익스플로잇의 극악한 난이도에 기대어 방어망을 구축하는 것은 더 이상 유효하지 않은 전략입니다.
  • 무기화의 자동화: 우리는 취약점 스캐너와 LLM이 결합하는 시대에 진입하고 있습니다. 이는 단순히 누락된 패치를 찾는 것을 넘어, 패치되지 않은 시스템들을 대규모로 침해할 수 있는 맞춤형 익스플로잇을 자동으로 생성할 수 있음을 의미합니다.

#기술적 시사점

원격 커널 익스플로잇을 개발하려면 최신 익스플로잇 완화(mitigation) 기술들을 여러 개 우회해야만 합니다. FreeBSD의 uma_zalloc(Universal Memory Allocator)에 대한 Claude의 접근 방식은 특히 흥미로웠으며, 운영체제 내부에 대한 깊은 개념적 이해를 보여주었습니다.

#정밀한 메모리 조작

이 AI는 네트워크 지터(jitter)와 패킷 순서 뒤섞임 현상 때문에 표준적인 네트워크 기반 힙 스프레이가 충분히 안정적이지 않다는 것을 인지했습니다. 대신 대상 객체와 인접한 위치에 특정 소켓 버퍼를 할당하도록 커널을 강제하는 기법을 사용하여 100%에 가까운 안정성을 확보했습니다.

# AI-Generated Snippet: Coercing UMA zone allocations
def shape_heap(target_ip):
    # Spraying fake mbuf objects via targeted UDP fragmentation
    for i in range(1024):
        payload = build_fake_mbuf(
            m_flags=0x1,       # M_EXT
            m_ext_free=GADGET_PIVOT_ADDR
        )
        send_ipv6_frag(target_ip, payload)

#가젯 체인 합성

FreeBSD 커널과 같이 거대한 바이너리에서 ROP 가젯을 찾는 것은 보통 특수한 도구와 수작업 검증을 요구합니다. 그러나 방대한 양의 오픈소스 코드, 어셈블리, 취약점 보고서로 학습된 Claude는 특정 에필로그(epilogue)의 존재를 개념적으로 추론해 냈습니다. 또한 스크립트 출력을 통해 연구원들의 테스트 환경과 동적으로 상호작용하면서, 오프셋(offset)을 조정하여 KASLR을 안정적으로 우회했습니다.

#권한 상승과 안전한 종료

실행 제어권을 획득한 후, 페이로드는 복잡하거나 비대한 셸코드에 의존하지 않았습니다. 대신 AI는 실행 중인 스레드의 ucred(사용자 자격 증명) 구조체를 직접 덮어쓰는 데이터 지향적(data-oriented) 공격을 구성하여 권한을 UID 0으로 상승시켰습니다. 가장 결정적인 부분은, 전문적인 익스플로잇 개발의 특징이라고 할 수 있는 크래시 방지를 위해 손상된 포인터들을 우아하게 복구하고 실행 흐름을 네트워크 루프로 자연스럽게 되돌려 놓았다는 점입니다.

#앞으로의 과제

방어자 커뮤니티는 주요 커널 서브시스템에 메모리 안전(memory-safe) 언어의 도입을 가속화하는 것으로 대응해야 합니다. FreeBSD 프로젝트는 Linux와 마찬가지로 Rust 통합을 모색해 왔으며, 이번 CVE-2026-4747 사건은 이러한 아키텍처 전환이 왜 그토록 시급한지를 보여주는 강력한 경고 메시지입니다.

나아가 방어형 AI 역시 공격 기술의 발전에 발맞춰 진화해야 합니다. 공격자가 코드 변경 내역(diff)을 무기화하기 전에 코드 커밋을 분석하고 안정적인 핫패치, 방화벽 규칙, 또는 eBPF 필터를 자동으로 생성할 수 있는 AI 시스템이 필요합니다.

#결론

Claude에 의한 CVE-2026-4747의 무기화는 사이버 보안 분야에서 매혹적이면서도 뼈아픈 이정표입니다. 이는 추상적인 메모리 손상 버그를 실제 작동하는 무기화된 원격 익스플로잇으로 탈바꿈시키는 데 필요한 '인지적 도약'을 이제 대규모 언어 모델이 해낼 수 있음을 증명합니다. 개발자와 시스템 관리자로서 우리가 허용받을 수 있는 실수의 여지는 빠르게 줄어들고 있습니다. 신속한 패치 적용, 견고한 네트워크 분리, 그리고 심층 방어(defense-in-depth) 전략이 그 어느 때보다 중요해졌습니다. 자동화된 커널 익스플로잇의 시대가 공식적으로 도래했습니다.