🇰🇷 한글 설명
Microsoft Knack 0.12.0 버전의 knack.introspection 모듈에서 정규 표현식 서비스 거부(ReDoS) 취약점이 발견되었습니다. extract_full_summary_from_signature 함수가 비효율적인 정규식 패턴을 사용하여, 종료 콜론이 없는 대량의 공백이 포함된 docstring을 처리할 때 치명적인 백트래킹을 유발할 수 있습니다. 공격자가 docstring 내용을 제어할 수 있다면 과도한 CPU 사용을 유발하여 시스템을 마비시킬 수 있습니다.
💡 쉬운 설명
특정한 규칙을 가진 긴 문장을 처리할 때 컴퓨터가 계산을 끝내지 못하고 무한 루프에 빠지는 현상입니다. 공격자가 조작된 문장을 입력하면 컴퓨터의 두뇌(CPU)를 100% 사용하여 시스템이 멈출 수 있습니다.
🇺🇸 원문 (English)
Microsoft Knack 0.12.0 allows Regular expression Denial of Service (ReDoS) in the knack.introspection module. extract_full_summary_from_signature employs an inefficient regular expression pattern: "\s(:param)\s+(.+?)\s:(.*)" that is susceptible to catastrophic backtracking when processing crafted docstrings containing a large volume of whitespace without a terminating colon. An attacker who can control or inject docstring content into affected applications can trigger excessive CPU consumption. This software is used by Azure CLI.
📍 영향받는 시스템
Microsoft Knack 0.12.0 (Azure CLI에서 사용됨)
⚔️ 공격 벡터
공격자가 제어 가능한 docstring 내에 종료 콜론이 없는 대량의 공백을 삽입하여 CPU 자원을 고갈시킴
🛡️ 대응 방법
Knack 라이브러리를 최신 보안 패치가 적용된 버전으로 업데이트하거나 정규식 패턴을 수정해야 함
🔧 검증 코드
출력된 버전이 0.12.0과 일치하는지 확인하여 취약 여부를 판단합니다.
pip show knack 2>/dev/null | grep -E 'Version:'