🇰🇷 한글 설명
Python 2.2, 2.3(2.3.5 이전), 2.4의 SimpleXMLRPCServer 라이브러리에서 _dispatch 메서드 없이 register_instance로 객체를 등록했을 때, 원격 공격자가 점으로 구분된 속성을 통해 모듈의 전역 변수를 읽거나 수정할 수 있는 취약점입니다. 이를 악용하면 임의의 코드 실행이 가능합니다.
💡 쉬운 설명
Python 구형 버전의 XML-RPC 서버에 보안 구멍이 있어서 인터넷을 통해 연결한 공격자가 프로그램의 중요한 데이터에 접근할 수 있습니다. 심한 경우 공격자가 서버에서 자기 명령을 실행할 수도 있습니다.
🇺🇸 원문 (English)
The SimpleXMLRPCServer library module in Python 2.2, 2.3 before 2.3.5, and 2.4, when used by XML-RPC servers that use the register_instance method to register an object without a _dispatch method, allows remote attackers to read or modify globals of the associated module, and possibly execute arbitrary code, via dotted attributes.
📍 영향받는 시스템
Python 2.2, Python 2.3 (2.3.5 이전), Python 2.4 및 이들 버전을 사용하는 XML-RPC 서버
⚔️ 공격 벡터
XML-RPC 요청의 점으로 구분된 속성(dotted attributes)을 이용하여 원격에서 모듈 전역 변수에 접근
🛡️ 대응 방법
Python을 2.3.5 이상으로 업그레이드하거나 _dispatch 메서드를 구현하여 접근 제어 추가
🔧 검증 코드
Python 버전이 2.2, 2.3, 2.4 중 하나면 VULNERABLE 출력, 그 외는 NOT VULNERABLE 출력됨
python -c "import sys; print('VULNERABLE' if sys.version_info[:2] in [(2,2), (2,3), (2,4)] else 'NOT VULNERABLE')" 2>/dev/null