🇰🇷 한글 설명
YOURLS 1.10.5 미만 버전에서 발생하며, 요청 경로를 처리할 때 적절한 검증이 이루어지지 않아 발생하는 취약점입니다. 공격자는 경로 탐색(Path Traversal)을 통해 서버 내의 임의의 PHP 파일을 포함(include)시켜 실행할 수 있습니다. 이로 인해 인증되지 않은 원격 공격자가 서버에서 코드를 실행할 위험이 있습니다.
💡 쉬운 설명
웹사이트 주소를 줄여주는 프로그램의 허점을 이용해, 공격자가 서버에 몰래 숨겨둔 악성 파일을 실행시키는 공격입니다. 특별한 로그인 없이도 서버의 제어권을 뺏길 수 있어 위험합니다.
🇺🇸 원문 (English)
YOURLS is a self-hosted, customizable URL shortener written in PHP. Prior to 1.10.5, yourls_get_request() extracted the request path without sanitization, after which yourls_sanitize_url() and yourls_esc_url() preserved dot and slash traversal sequences before an attacker-controlled keyword reached file_exists() and include() under YOURLS_PAGEDIR. An unauthenticated remote attacker could traverse outside the intended pages directory and include a local PHP file that was already present on the server, such as an uploaded or injected file, causing the file to execute in the YOURLS web process. This issue is fixed in version 1.10.5.
📍 영향받는 시스템
YOURLS 1.10.5 미만 모든 버전
⚔️ 공격 벡터
인증되지 않은 원격 공격자가 조작된 경로 탐색 시퀀스(dot and slash traversal)를 포함한 요청을 전송하여 로컬 PHP 파일을 실행함
🛡️ 대응 방법
YOURLS를 최신 버전인 1.10.5 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 1.10.5 미만이면 취약한 상태이며, 1.10.5 이상이면 안전합니다.
php -r 'include "YOURLS_VERSION";' 2>/dev/null || grep -r "VERSION" /path/to/yourls/ | head -n 1