🇰🇷 한글 설명
pycares 4.9.0 이전 버전에서 DNS 쿼리 진행 중 Channel 객체가 가비지 컬렉션될 때 use-after-free 취약점이 발생합니다. 이는 Python 인터프리터의 치명적인 오류와 크래시를 초래합니다.
💡 쉬운 설명
pycares 라이브러리가 DNS 요청을 처리하는 도중에 메모리 정리 시 이미 제거된 메모리에 접근하려고 해서 프로그램이 강제 종료됩니다. 이를 방지하려면 라이브러리를 최신 버전으로 업그레이드해야 합니다.
🇺🇸 원문 (English)
pycares is a Python module which provides an interface to c-ares. c-ares is a C library that performs DNS requests and name resolutions asynchronously. Prior to version 4.9.0, pycares is vulnerable to a use-after-free condition that occurs when a Channel object is garbage collected while DNS queries are still pending. This results in a fatal Python error and interpreter crash. The vulnerability has been fixed in pycares 4.9.0 by implementing a safe channel destruction mechanism.
📍 영향받는 시스템
pycares 4.9.0 미만의 모든 버전
⚔️ 공격 벡터
활성 DNS 쿼리가 있는 상태에서 Channel 객체의 가비지 컬렉션 트리거
🛡️ 대응 방법
pycares를 4.9.0 이상으로 업그레이드 (pip install --upgrade pycares)
🔧 검증 코드
Version이 4.9.0 이상이면 안전하고, 4.9.0 미만이면 취약한 상태입니다.
pip show pycares | grep Version