🔍 CVE-2026-76836

8.8
CVSS Score
HIGH
2026-08-24
2026-10-13 09:10
✅ 완료

🇰🇷 한글 설명

AzuraCast에서 권한 검증이 미흡한 엔드포인트를 통해 Liquidsoap 사용자 정의 설정 필드에 접근할 수 있는 취약점이 발견되었습니다. 공격자는 프로필 수정 권한만으로도 시스템 명령어를 실행할 수 있는 설정값을 주입하여 원격 코드 실행(RCE)을 수행할 수 있습니다.

💡 쉬운 설명

일반 사용자 권한만 가진 사람이 시스템의 중요한 설정 파일을 몰래 바꿀 수 있는 보안 구멍이 있습니다. 이 설정을 악용하면 해커가 서버에 직접 명령을 내려 컴퓨터를 마음대로 조종할 수 있습니다.

🇺🇸 원문 (English)

AzuraCast exposes the Liquidsoap custom configuration fields through an endpoint that does not require the permission guarding them. The backend_config property in backend/src/Entity/Station.php is annotated with GROUP_GENERAL, and PUT /api/station/{station_id}/profile/edit in backend/src/Controller/Api/Stations/ProfileEditController.php deserializes with that group while requiring only StationPermissions::Profile. AbstractArrayEntity::fromArray() then assigns every public property with no field-level permission check, so custom_config_top, custom_config, custom_config_pre_playlists, custom_config_pre_live, custom_config_pre_fade and custom_config_bottom are writable through it. ConfigWriter::writeCustomConfigurationSection() emits those values verbatim into the generated Liquidsoap .liq script, where the process.run() and process.exec() built-ins execute operating system commands when the backend restarts, which the built-in sync task triggers automatically once needs_restart is set. The dedicated endpoint for the same data, PUT /api/station/{id}/liquidsoap-config, requires StationPermissions::Broadcasting, so a station manager holding only the profile permission reaches configuration that the intended boundary reserves for broadcasting operators.

📍 영향받는 시스템

AzuraCast (Liquidsoap custom configuration fields 관련 취약 버전)

⚔️ 공격 벡터

권한이 낮은 프로필 수정 API를 통해 Liquidsoap 설정 필드에 악성 OS 명령어를 주입하여 실행

🛡️ 대응 방법

해당 엔드포인트에 적절한 권한 검증(StationPermissions::Broadcasting)을 적용하고 입력값 검증 로직을 강화해야 합니다.

🔧 검증 코드

명령어 실행 후 Liquidsoap 로그나 시스템 프로세스에서 주입한 명령어가 실행되었는지 확인합니다.

Shell / Script
curl -X PUT -H 'Content-Type: application/json' -d '{"custom_config":"$(whoami)"}' http://<target_ip>/api/station/{station_id}/profile/edit

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Spring Data REST