🇰🇷 한글 설명
Tornado 웹 프레임워크의 네이티브 확장 기능인 tornado.speedups에서 websocket_mask 함수가 마스크 인자의 길이를 4바이트로 검증하지 않는 취약점이 발견되었습니다. 이로 인해 XSRF 토큰 디코딩 과정에서 C 함수가 제공된 버퍼를 넘어 최대 3바이트를 추가로 읽을 수 있는 메모리 읽기 오류가 발생할 수 있습니다.
💡 쉬운 설명
웹 서버의 특정 기능을 처리할 때 데이터의 길이를 제대로 확인하지 않아, 허용된 범위 밖의 메모리 정보를 몰래 읽어갈 수 있는 문제입니다. 이는 보안 토큰 정보가 유출될 수 있는 위험을 초래합니다.
🇺🇸 원문 (English)
Tornado is a Python web framework and asynchronous networking library. Prior to 6.5.6, the optional native extension tornado.speedups implemented websocket_mask without validating that the mask argument is exactly four bytes, allowing the C function to read up to three bytes beyond the provided buffer when reached through Tornado XSRF token decoding with the native extension active. This issue is fixed in version 6.5.6.
📍 영향받는 시스템
Tornado 버전 6.5.6 미만 (tornado.speedups 네이티브 확장 활성화 시)
⚔️ 공격 벡터
네이티브 확장이 활성화된 상태에서 조작된 XSRF 토큰을 전송하여 메모리 경계 밖의 데이터를 읽도록 유도
🛡️ 대응 방법
Tornado를 최신 보안 패치가 적용된 버전인 6.5.6 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 6.5.6보다 낮으면 취약한 버전이므로 업데이트가 필요합니다.
pip show tornado | grep Version