🇰🇷 한글 설명
Zeroconf 라이브러리의 DNSIncoming._decode_labels_at_offset 함수에서 DNS 이름 압축 포인터를 처리할 때 재귀 호출이 발생합니다. 악의적으로 구성된 mDNS 패킷이 전달되면 RecursionError가 발생하여 CPU 점유율이 급증하고 로그가 폭증하며 서비스 기능이 저하될 수 있습니다.
💡 쉬운 설명
네트워크에서 장치를 찾는 기능에 결함이 있어, 특수한 신호를 보내면 컴퓨터의 자원을 과도하게 사용하게 만들어 시스템을 느리게 만들 수 있습니다. 공격자는 특별한 권한 없이도 로컬 네트워크를 통해 이 공격을 수행할 수 있습니다.
🇺🇸 원문 (English)
Zeroconf is a pure Python implementation of multicast DNS service discovery. Prior to 0.149.5, DNSIncoming._decode_labels_at_offset recurses once per DNS-name compression pointer, and a single mDNS packet carrying chained pointers can trigger a RecursionError that escapes DNSIncoming.__init__, causing sustained CPU burn, log flooding, and degraded mDNS-dependent features for unauthenticated hosts on the local link over UDP/5353 (224.0.0.251 / ff02::fb). This issue is fixed in version 0.149.5.
📍 영향받는 시스템
Zeroconf library versions prior to 0.149.5
⚔️ 공격 벡터
UDP/5353 포트를 통해 체인된 포인터가 포함된 악의적인 mDNS 패킷 전송
🛡️ 대응 방법
Zeroconf 라이브러리를 0.149.5 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 번호가 0.149.5보다 낮으면 취약한 상태입니다.
pip show zeroconf | grep Version