🇰🇷 한글 설명
python-markdown2 2.5.5 이하 버전은 링크 목적지가 닫히지 않은 Markdown 입력을 처리할 때 서비스 거부(DoS) 취약점이 존재합니다. 원격 사용자가 '[a](' 또는 '으로 소모됩니다.
💡 쉬운 설명
이 취약점은 공격자가 특정 형태의 텍스트를 반복해서 보내면 서버의 CPU가 과도하게 사용되어 다른 요청을 처리하지 못하게 만드는 문제입니다. 결과적으로 서비스가 느려지거나 멈출 수 있습니다.
🇺🇸 원문 (English)
python-markdown2 through 2.5.5 contains a denial of service vulnerability that allows remote users to exhaust CPU by submitting Markdown with unclosed inline link destinations. Attackers can submit repeated '[a](' or '![a](' sequences, causing _find_balanced to rescan the remaining document for each link and consume quadratic CPU time.
📍 영향받는 시스템
python-markdown2 2.5.5 이하 버전을 사용하는 Python 애플리케이션 및 서비스
⚔️ 공격 벡터
원격 공격자가 '[a](' 또는 '![a](' 패턴을 대량으로 포함한 Markdown 문서를 웹 입력 등을 통해 전송
🛡️ 대응 방법
python-markdown2를 2.5.5 초과 패치 버전으로 업그레이드하고, 입력 크기 제한 및 처리 시간 제한을 함께 적용
🔧 검증 코드
출력된 버전이 2.5.5 이하이면 취약하므로 패치 버전으로 업그레이드가 필요하며, 명령어가 결과를 출력하지 않으면 해당 패키지가 설치되지 않은 상태입니다.
pip show markdown2 2>/dev/null | grep -i '^version'