인터넷에서 가장 널리 배포된 프록시 서버 가운데 하나인 Squid에서 29년 동안 릴리스, 감사, 재작성에도 살아남은 한 줄짜리 버그가, AI 모델이 코드를 읽는 데 도움을 준 한 사례를 포함해 석 달 동안 서로 독립적으로 세 차례 재발견된 뒤 패치됐습니다.
버그
Squidbleed (CVE-2026-47729)는 NetWare FTP 서버와의 호환성 코드에 있는 Squid의 FTP 디렉터리 목록 파서에서 발생한 힙 버퍼 오버리드입니다. 이 코드는 1997년 1월 18일 커밋까지 거슬러 올라갑니다. 근본 원인은 전형적인 C의 함정입니다. strchr()가 널 종료 문자를 찾으면 NULL이 아니라 종료 문자 자체를 가리키는 포인터를 반환하므로, 공백을 건너뛰는 루프가 문자열 끝을 넘어 인접한 힙 메모리까지 읽어들입니다. CVSS 7.5로 평가된 이 취약점은 기본 설정의 모든 Squid 버전에 영향을 미칩니다. FTP 지원은 기본적으로 켜져 있고, 포트 21은 기본 Safe_ports ACL에 포함돼 있습니다.
누가 영향을 받는가
공유 Squid 프록시를 통해 접근 가능한 FTP 서버를 통제하는 공격자는 다른 사용자의 트래픽 일부를 유출할 수 있습니다. 그 대상은 평문 HTTP 요청과 그 안에 포함된 비밀번호, 쿠키, API 키입니다. 암호화되지 않은 CONNECT 터널로 전달되는 HTTPS 트래픽은 읽을 수 없으므로, 노출 범위는 평문 HTTP와 TLS 종료 구성을 사용하는 환경으로 제한됩니다. 다만 이는 기업 네트워크와 공유 프록시를 운영하는 ISP 전반에서 여전히 의미 있는 규모입니다.
어떻게 발견됐나
Aisle Research의 Pavel Kohout가 2026년 3월 4일 처음 이 버그를 신고했습니다. 4월 17일에는 Calif.io의 Lam Jun Rong이 별도로 신고했으며, Anthropic의 검증된 핵심 인프라 방어자를 위한 프로그램인 Project Glasswing 아래에서 Squid의 FTP 상태 머신에 Anthropic의 Claude Mythos를 적용한 뒤였습니다. Calif는 이 모델이 거의 즉시 이 특이점을 포착했으며, "strchr(w_space, '\0') returns non-NULL per C11 §7.24.5.2."라고 지적했다고 밝혔습니다. Youssef Awad의 세 번째 신고는 5월 7일에 이어졌습니다. 두 줄짜리 NULL 검사로 구성된 수정 사항은 4월에 병합됐고, 6월 8일 Squid 7.6에 포함돼 배포됐으며, 6월 23일 공식 권고문으로도 공지됐습니다.
수정과 교훈
패치에 더해 Calif의 권고는 단호합니다. FTP를 끄라는 것입니다. Chromium 기반 브라우저들은 수년 전 FTP를 제거했고, 대부분의 네트워크에서는 관련 트래픽이 거의 없습니다. 이번 사례는 FFmpeg 등에서 최근 확인된 AI 지원 발견 사례를 떠올리게 합니다. 수십 년 동안 인간의 눈에 띄지 않던 레거시 프로토콜 코드의 숨은 파서 버그가, AI가 감사 과정에 들어오자 몇 달 만에 드러나고 있습니다.
