🇰🇷 한글 설명
AzuraCast 0.23.8 미만 버전의 AutoDJ 원격 플레이리스트 가져오기 기능에서 SSRF 및 로컬 파일 읽기 취약점이 발견되었습니다. 권한이 있는 사용자가 file:// 프로토콜이나 내부 네트워크 주소를 사용하여 서버의 민감한 파일(/etc/passwd 등)을 읽거나 내부 서비스를 공격할 수 있습니다.
💡 쉬운 설명
공격자가 조작된 주소를 입력하여 서버 내부의 비밀 파일을 몰래 읽거나, 서버를 이용해 내부 네트워크의 다른 컴퓨터를 공격할 수 있는 결함입니다. 이로 인해 서버의 중요한 설정 정보나 사용자 정보가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
AzuraCast before 0.23.8 contains a server-side request forgery and local file read vulnerability in the AutoDJ remote playlist fetch (backend/src/Radio/AutoDJ/QueueBuilder.php, getMediaFromRemoteUrl()). A user with the station Media permission can create or update a playlist with source=remote_url and remote_type=playlist whose remote_url points at a file:// path or an internal/loopback/link-local HTTP endpoint. When AutoDJ builds the queue, the backend passes the user-supplied URL directly to file_get_contents() with no scheme allowlist and no private/loopback/metadata IP policy (PHP allow_url_fopen is enabled by default, including in the Docker image). Lines from the fetched resource are parsed as M3U/PLS entries, stored in StationQueue.autodj_custom_uri, and returned by GET /api/station/{station_id}/queue to any user with the Broadcasting permission, disclosing host files readable by the web container (for example /etc/passwd or the application .env) and the bodies of non-blind internal HTTP requests. No patched version was available at the time of publication.
📍 영향받는 시스템
AzuraCast versions before 0.23.8
⚔️ 공격 벡터
Media 권한을 가진 사용자가 AutoDJ 설정에서 remote_url을 file:// 또는 내부 IP 주소로 설정하여 공격
🛡️ 대응 방법
AzuraCast를 최신 보안 패치가 적용된 버전(0.23.8 이상)으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 0.23.8 미만인 경우 해당 취약점에 노출된 상태입니다.
curl -s http://<target-ip>/api/version | grep -E '0\.[0-2][0-2]\.'