🔍 CVE-2025-67725

7.5
CVSS Score
HIGH
2025-12-12
2026-10-07 20:10
✅ 완료

🇰🇷 한글 설명

Tornado는 파이썬 웹 프레임워크 및 비동기 네트워킹 라이브러리입니다. 버전 6.5.2 및 그 아래에서, 단 하나의 악의적으로 설계된 HTTP 요청이 서버의 이벤트 루프를 확장된 기간 동안 차단할 수 있습니다. 이는 HTTPHeaders.add 메서드에서 발생하며, 같은 헤더 이름이 반복될 때 값들을 문자열 결합을 통해 누적합니다. 이는 서비스 거부(DoS) 공격을 유발합니다. 파이썬의 문자열 불변성으로 인해, 각 결합 시 전체 문자열을 복사하여 O(n²) 시간 복잡도를 유발합니다. 심각도는 max_header_size가 기본값인 64KB에서 증가한 경우에는 높게, 기본값인 경우에는 낮게 나타날 수 있습니다. 이 문제는 버전 6.5.3에서 해결되었습니다.

💡 쉬운 설명

Tornado 라이브러리의 버그로 인해, 악의적인 요청 하나로 서버가 멈출 수 있습니다. 이는 버전 6.5.2 이하에서 발생하며, 버전 6.5.3으로 업데이트하면 해결됩니다. 이 버그는 서비스 거부 공격을 허용할 수 있습니다.

🇺🇸 원문 (English)

Tornado is a Python web framework and asynchronous networking library. In versions 6.5.2 and below, a single maliciously crafted HTTP request can block the server's event loop for an extended period, caused by the HTTPHeaders.add method. The function accumulates values using string concatenation when the same header name is repeated, causing a Denial of Service (DoS). Due to Python string immutability, each concatenation copies the entire string, resulting in O(n²) time complexity. The severity can vary from high if max_header_size has been increased from its default, to low if it has its default value of 64KB. This issue is fixed in version 6.5.3.

📍 영향받는 시스템

Tornado 버전 6.5.2 및 그 아래

⚔️ 공격 벡터

악의적인 HTTP 요청

🛡️ 대응 방법

Tornado 라이브러리를 버전 6.5.3 이상으로 업데이트합니다.

🔧 검증 코드

로컬 시스템에서 Python을 실행하여 Tornado 라이브러리의 버전을 확인합니다. 필요한 권한은 없습니다. 의존성으로는 pkg_resources 및 tornado가 필요합니다.

Shell / Script
import tornado
import pkg_resources
version = pkg_resources.get_distribution('tornado').version
if version <= '6.5.2':
    print({"result": "취약", "reason": "Tornado 버전이 6.5.2 이하입니다."})
else:
    print({"result": "양호", "reason": "Tornado 버전이 6.5.3 이상입니다."})

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Python