피드로 돌아가기
Mythos discovers 'Squidbleed,' a memory leak that's gone undetected since Clinton era
The RegisterThe Register
Security

29년 된 Heap Overread 취약점 Squidbleed 발견 및 해결

Mythos discovers 'Squidbleed,' a memory leak that's gone undetected since Clinton era

2026년 6월 23일3advanced

Context

Squid 캐싱 프록시 서버 내 NetWare 서버 호환성을 위해 1997년 도입된 FTP 디렉토리 리스팅 파서의 로직 결함. 특정 조건에서 버퍼 범위를 벗어나 내부 메모리를 읽어내는 Heap Overread 발생으로 인한 사용자 평문 HTTP 요청 및 세션 토큰 유출 위험 존재.

Technical Solution

  • FTP 디렉토리 리스팅 파싱 시 공백 제거를 위해 사용된 while (strchr(w_space, *copyFrom)) ++copyFrom; 루프의 경계 검사 부재 확인
  • 공격자 제어 FTP 서버가 타임스탬프 이후 파일명을 제공하지 않을 때 copyFrom 포인터가 NULL 종료 문자에 도달하는 상황 분석
  • strchr 함수가 NULL 문자를 검색 대상으로 처리하여 루프가 멈추지 않고 버퍼 끝단 너머의 메모리 영역을 계속 참조하는 메커니즘 파악
  • xstrdup 함수가 버퍼 경계를 넘어선 메모리 데이터를 파일명으로 인식하여 공격자에게 전송하는 데이터 유출 경로 식별
  • strchr 호출 전 NULL 종료 문자를 명시적으로 확인하는 조건문을 추가하여 비정상적인 메모리 참조를 원천 차단하는 패치 적용

- 레거시 호환성을 위해 추가된 특수 처리 로직의 경계 조건 검증 여부 재검토 - 사용하지 않는 프로토콜(예: FTP)의 기능을 비활성화하여 Attack Surface 최소화 - C/C++ 기반 파서 설계 시 포인터 연산과 NULL 종료 문자 처리의 안정성 확보

원문 읽기