🇰🇷 한글 설명
Horilla HR 및 CRM 소프트웨어 2.0.0 미만 버전에서 발생하는 취약점입니다. 인증된 사용자가 조작된 POST 파라미터를 통해 Python 코드를 주입할 수 있으며, 이를 통해 애플리케이션 권한 또는 Docker 이미지 내의 루트 권한으로 임의의 운영체제 명령을 실행할 수 있습니다.
💡 쉬운 설명
로그인한 사용자가 특수하게 조작된 데이터를 보내 소프트웨어의 내부 명령어를 마음대로 실행할 수 있는 보안 결함입니다. 이를 통해 해커가 서버의 제어권을 완전히 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
Horilla is an HR and CRM software. Prior to 2.0.0, HorillaListView.export_data in horilla_views/generic/cbv/views.py accepts an authenticated user's columns POST parameter, takes field_tuple[1], interpolates it into dynamic_fn_str as Python source, and passes the generated function definition to exec(). A crafted string that remains valid under ast.literal_eval can inject Python syntax into a default argument evaluated during function definition, allowing arbitrary operating-system commands to execute with the application process privileges, including root privileges in the shipped Docker image. This issue is fixed in version 2.0.0.
📍 영향받는 시스템
Horilla HR and CRM software versions prior to 2.0.0
⚔️ 공격 벡터
인증된 사용자가 `columns` POST 파라미터에 Python 구문을 주입하여 `exec()` 함수를 통해 명령을 실행
🛡️ 대응 방법
Horilla 소프트웨어를 2.0.0 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 2.0.0 미만이면 취약한 상태이며, 2.0.0 이상이면 안전합니다.
python3 -c 'import horilla; print(horilla.__version__)' 2>/dev/null || echo 'Version check failed'