🇰🇷 한글 설명
Sanic 오픈소스 Python 웹 서버/프레임워크의 HTTP/1.1 chunked-body 처리 과정에서 종료 제로 청크 이후의 트레일러 부분을 완전히 소비하지 않는 취약점이 발견되었습니다. 이로 인해 원격 인증되지 않은 공격자가 트레일러 영역에 제어된 바이트를 삽입하여 숨겨진 두 번째 요청을 전달할 수 있으며, 이는 HTTP 요청 경계 무결성을 깨뜨려 요청 스머글링(Request Smuggling) 공격으로 이어질 수 있습니다.
💡 쉬운 설명
웹 서버가 데이터의 끝을 제대로 확인하지 못해, 공격자가 몰래 숨겨놓은 명령어를 서버가 정상적인 요청으로 착각하여 실행하게 만드는 보안 결함입니다. 중간에 있는 보안 장비를 통과하여 서버에 잘못된 요청을 전달할 수 있어 위험합니다.
🇺🇸 원문 (English)
Sanic is an opensource python web server/framework. In version 25.12.0, Sanic's core HTTP/1.1 chunked-body handling does not fully consume the trailer-part after the terminating zero chunk before reusing the keep-alive connection buffer. A remote unauthenticated client can place attacker-controlled bytes in that trailer region, causing Sanic to parse and route them as a hidden second request after the outer request. This breaks HTTP request-boundary integrity and can provide a request-smuggling primitive when Sanic is deployed behind intermediaries. This issue is fixed in version 25.12.1.
📍 영향받는 시스템
Sanic version 25.12.0
⚔️ 공격 벡터
원격에서 조작된 HTTP/1.1 chunked-body 트레일러를 포함한 요청을 전송하여 요청 스머글링 유도
🛡️ 대응 방법
Sanic를 버전 25.12.1 이상으로 업데이트
🔧 검증 코드
출력된 버전이 25.12.0인 경우 해당 취약점에 노출된 상태입니다.
pip show sanic | grep Version