🇰🇷 한글 설명
Guardian language-system의 text_to_subtitles.php 파일에서 id GET 파라미터가 적절한 검증 없이 PHP exec() 함수에 직접 전달됩니다. 인증이 필요 없는 상태에서 공격자가 쉘 메타문자를 삽입하여 서버에서 임의의 OS 명령어를 실행할 수 있는 치명적인 취약점입니다.
💡 쉬운 설명
웹사이트의 특정 주소에 특수 문자를 섞어 입력하면, 해커가 서버를 마음대로 조종할 수 있는 보안 구멍이 발견되었습니다. 로그인 없이도 누구나 서버에 명령을 내려 시스템을 장악할 수 있어 매우 위험합니다.
🇺🇸 원문 (English)
Guardian language-system passes the id GET parameter directly into a PHP exec() call in text_to_subtitles.php (line 19) without sanitization: exec(\"php jobs/text_to_subtitles.php \".$login_session.\" \".$_GET['id'].\" ...\"). No authentication is required. An unauthenticated remote attacker can append shell metacharacters to execute arbitrary OS commands on the server.
📍 영향받는 시스템
Guardian language-system (text_to_subtitles.php 사용 버전)
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 URL의 id 파라미터에 쉘 메타문자를 삽입하여 공격
🛡️ 대응 방법
id 파라미터에 대한 입력값 검증(Sanitization)을 실시하고, exec() 대신 안전한 API를 사용하거나 파라미터를 이스케이프 처리해야 함
🔧 검증 코드
명령어 실행 결과로 시스템 사용자 이름(root 또는 www-data 등)이 출력되면 취약점이 존재하는 것으로 판단함
curl -s -G 'http://target-system/text_to_subtitles.php' --data-urlencode 'id=;whoami' | grep -q 'root\|www-data'