🇰🇷 한글 설명
Horilla HRMS 1.3.0 버전에서 project_bulk_archive 뷰의 쿼리 파라미터에 Python의 eval() 함수를 안전하지 않게 사용하여 발생하는 인증된 원격 코드 실행(RCE) 취약점입니다. 권한이 있는 사용자가 서버에서 임의의 시스템 명령을 실행할 수 있으며, Django의 DEBUG 모드 여부와 상관없이 리버스 쉘 등을 통해 공격이 가능합니다.
💡 쉬운 설명
관리자 권한을 가진 사용자가 시스템에 몰래 명령어를 입력하여 서버를 마음대로 조종할 수 있는 보안 약점입니다. 이로 인해 서버의 모든 데이터가 유출되거나 시스템이 완전히 장악될 위험이 있습니다.
🇺🇸 원문 (English)
Horilla is a free and open source Human Resource Management System (HRMS). An authenticated Remote Code Execution (RCE) vulnerability exists in Horilla 1.3.0 due to the unsafe use of Python’s eval() function on a user-controlled query parameter in the project_bulk_archive view. This allows privileged users (e.g., administrators) to execute arbitrary system commands on the server. While having Django’s DEBUG=True makes exploitation visibly easier by returning command output in the HTTP response, this is not required. The vulnerability can still be exploited in DEBUG=False mode by using blind payloads such as a reverse shell, leading to full remote code execution. This issue has been patched in version 1.3.1.
📍 영향받는 시스템
Horilla HRMS 1.3.0 버전
⚔️ 공격 벡터
인증된 사용자가 특정 뷰의 쿼리 파라미터에 악성 Python 코드를 삽입하여 실행
🛡️ 대응 방법
Horilla를 최신 보안 패치가 적용된 버전 1.3.1 이상으로 업데이트하십시오.
🔧 검증 코드
대상 서버의 응답 내용에 Horilla 관련 정보가 포함되어 있는지 확인하여 설치 여부를 파악합니다.
python3 -c "import requests; print('Vulnerable' if 'Horilla' in requests.get('http://<TARGET_IP>/').text else 'Not Found')"