🇰🇷 한글 설명
Roxy-WI 웹 인터페이스의 포트 스캐닝 기능에서 발생하는 OS 명령 주입 취약점입니다. 인증된 사용자가 검증되지 않은 JSON 데이터를 통해 웹 애플리케이션 서버에서 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
웹 관리 도구의 특정 기능을 사용할 때, 공격자가 입력창에 몰래 명령어를 섞어 넣으면 서버가 이를 그대로 실행해 버리는 문제입니다. 이를 통해 해커가 서버의 제어권을 탈취할 수 있습니다.
🇺🇸 원문 (English)
Roxy-WI is a web interface for managing Haproxy, Nginx, Apache and Keepalived servers. An OS Command Injection vulnerability allows any authenticated user on the application to execute arbitrary code on the web application server via port scanning functionality. User-supplied input is used without validation when constructing and executing an OS command. User supplied JSON POST data is parsed and if "id" JSON key does not exist, JSON value supplied via "ip" JSON key is assigned to the "ip" variable. Later on, "ip" variable which can be controlled by the attacker is used when constructing the cmd and cmd1 strings without any extra validation. Then, server_mod.subprocess_execute function is called on both cmd1 and cmd2. When the definition of the server_mod.subprocess_execute() function is analyzed, it can be seen that subprocess.Popen() is called on the input parameter with shell=True which results in OS Command Injection. This issue has not yet been patched. Users are advised to contact the Roxy-WI to coordinate a fix.
📍 영향받는 시스템
Roxy-WI (패치 미출시 상태)
⚔️ 공격 벡터
인증된 사용자가 포트 스캐닝 기능에 조작된 JSON POST 데이터를 전송하여 OS 명령 실행
🛡️ 대응 방법
Roxy-WI 개발사에 연락하여 보안 패치를 요청하고, 패치 전까지 해당 기능의 접근을 제한하십시오.
🔧 검증 코드
응답 결과에 'uid='와 같은 시스템 사용자 정보가 포함되어 출력되면 취약한 상태입니다.
curl -X POST -H 'Content-Type: application/json' -d '{"ip": "; id;"}' http://<target_ip>/api/endpoint