🇰🇷 한글 설명
Koel 음악 스트리밍 솔루션 9.7.1 미만 버전에서 발생하는 취약점으로, 외부 URL 검증 시 리다이렉트 경로를 재검증하지 않아 발생합니다. 공격자는 이를 통해 내부 네트워크 주소나 클라우드 메타데이터 서비스로 접근하여 민감한 정보를 탈취할 수 있습니다.
💡 쉬운 설명
음악 앱이 외부 주소를 확인하는 과정에서 보안 허점이 있어, 공격자가 가짜 주소로 연결을 유도할 수 있습니다. 이를 통해 공격자는 사용자의 내부 네트워크나 중요한 서버 정보에 몰래 접근할 수 있습니다.
🇺🇸 원문 (English)
Koel is a free, open-source music streaming solution. Prior to 9.7.1, outbound podcast and radio fetch paths perform a point-in-time App\Helpers\Network::isPublicHost() or isSafeUrl() check without pinning the validated address, and most paths lack redirect-hop validation and do not revalidate every redirect target. PhanAn\Poddle\Poddle::fromUrl(), PodcastService::getStreamableUrl(), PodcastService::isPodcastObsolete(), App\Rules\HasAudioContentType, and App\Rules\SafeUrl can therefore follow an attacker-controlled redirect to an internal address or connect after DNS rebinding changes a public resolution to a private one. These paths are reachable through podcast and radio APIs, including createPodcastChannel, createInternetRadioStation, refreshPodcasts, apiResource podcasts, and radio/stations, allowing an authenticated user to request internal services or cloud metadata and potentially receive parsed or streamed response content. This issue is fixed in version 9.7.1.
📍 영향받는 시스템
Koel version < 9.7.1
⚔️ 공격 벡터
인증된 사용자가 조작된 리다이렉트 URL 또는 DNS Rebinding을 사용하여 내부 서비스로 요청을 유도함
🛡️ 대응 방법
Koel을 최신 버전인 9.7.1 이상으로 업데이트하십시오.
🔧 검증 코드
출력 결과가 'Vulnerable'이거나 9.7.1 미만 버전이면 취약한 상태입니다.
php artisan --version | grep -E '9.7.1' || echo 'Vulnerable'