기타 Lobsters · 2026-10-14

개발자들 식은땀 흘리게 한 역대급 curl 보안 취약점 터짐

핵심 요약
  • curl 8.23.0에서 HTTP/2 업로드 시 메모리 해제 후 재사용(UAF)으로 인해 원격 코드 실행(RCE)이 가능한 고위험 취약점(CVE-2026-92392)이 수정되었습니다.
  • C 언어의 댕글링 포인터 문제와 복잡한 HTTP/2 멀티플렉싱 핸들 정리 로직의 허점을 노린 공격으로, 앤트로픽(Anthropic)의 신규 AI 오픈소스 스캐너를 통해 발견되었습니다.
  • 실제 공격 성공을 위해서는 까다로운 조건과 메모리 구조 일치가 필요해 대부분 충돌에 그칠 확률이 높지만, 개발팀은 내부 참조 방식을 식별자 조회로 개선하며 재발 방지에 나섰습니다.
요약 전 세계 수많은 소프트웨어와 서비스의 통신 기반이 되는 오픈소스 라이브러리 curl에서 오랜만에 매우 심각한 보안 취약점(CVE-2026-92392)이 발견되어 8.23.0 버전에서 긴급 패치되었습니다. 심각도 'HIGH' 등급이 매겨진 이 취약점은 HTTP/2 업로드 도중 발생하는 Use-After-Free(UAF, 메모리 해제 후 재사용) 버그로, 특정 조건이 맞아떨어질 경우 공격자가 피해자의 시스템에서 원격 코드를 실행(RCE)할 수 있는 치명적인 결함입니다. 이 버그는 C 언어의 메모리 관리 취약점과 HTTP/2의 멀티플렉싱 특성이 맞물려 발생했습니다. curl은 개별 전송을 'easy 핸들'로, 이를 총괄하는 상위 구조를 'multi 핸들'로 관리합니다. 문제는 악의적인 서버로 HTTP/2 업로드를 진행할 때 발생합니다. 공격자 서버가 윈도우 크기를 0으로 만들어 전송을 일시 중단시킨 뒤 스트림을 리셋하면, curl은 전송을 종료 처리하면서 사용이 끝난 easy 핸들을 메모리에서 해제합니다. 하지만 multi 핸들 내부에 해제된 핸들을 가리키는 댕글링 포인터(dangling pointer)가 그대로 남아있는 실수가 벌어졌습니다. 이후 multi 핸들을 정리하는 과정에서 해제된 메모리 영역에 서버로부터 받은 데이터를 덮어쓰게 되고, 공격자가 변조한 함수 포인터를 curl이 실행하면서 원격 코드 실행으로 이어질 수 있습니다. 다만 curl 개발팀에 따르면 실제 환경에서 원격 코드를 성공적으로 실행하는 것은 극도로 어렵습니다. 피해자가 유효한 인증서를 가진 악의적 서버로 약 135KB 크기의 데이터를 업로드해야 하며, Linux 배포판, libc 버전, TLS 라이브러리 차이에 따라 달라지는 정밀한 메모리 배치 조건을 뚫어야 합니다. 게다가 악성 페이로드를 담을 수 있는 공간도 약 23바이트에 불과해 공격 시도 시 대부분은 단순 프로그램 충돌(크래시)로 끝날 확률이 높습니다. 이 취약점은 AI 기업 앤트로픽(Anthropic)의 Luna Tong이 자사의 새로운 오픈소스 스캐너를 활용해 찾아내 제보한 것으로 알려졌습니다. curl 팀은 내부 포인터 대신 식별자 조회 방식을 확대 도입하는 등 메모리 안전성을 높이는 구조적 개선을 계속 진행 중이라고 밝혔습니다.
Sponsored · 광고