🇰🇷 한글 설명
WWBN AVideo 26.0 이하 버전의 plugin/Live/uploadPoster.php 엔드포인트에서, 인증된 사용자가 임의의 live_schedule_id를 지정해 다른 사용자의 라이브 스케줄 포스터 이미지를 덮어쓸 수 있습니다. 소유권 검증이 없으며, 덮어쓰기 후 피해자의 방송 키와 사용자 ID가 WebSocket으로 전체 클라이언트에 노출됩니다. 커밋 5fcb3bdf59f26d65e203cfbc8a685356ba300b60에서 수정되었습니다.
💡 쉬운 설명
로그인한 사용자라면 다른 사람의 라이브 방송 썸네일을 바꿀 수 있는 취약점입니다. 이 과정에서 피해자의 방송 키까지 다른 사용자들에게 노출될 수 있습니다.
🇺🇸 원문 (English)
WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `plugin/Live/uploadPoster.php` endpoint allows any authenticated user to overwrite the poster image for any scheduled live stream by supplying an arbitrary `live_schedule_id`. The endpoint only checks `User::isLogged()` but never verifies that the authenticated user owns the targeted schedule. After overwriting the poster, the endpoint broadcasts a `socketLiveOFFCallback` notification containing the victim's broadcast key and user ID to all connected WebSocket clients. Commit 5fcb3bdf59f26d65e203cfbc8a685356ba300b60 fixes the issue.
📍 영향받는 시스템
WWBN AVideo 26.0 이하 버전
⚔️ 공격 벡터
인증된 사용자가 uploadPoster.php에 임의의 live_schedule_id를 보내 타인의 라이브 포스터를 덮어쓰고 WebSocket 알림으로 방송 키를 탈취
🛡️ 대응 방법
AVideo를 커밋 5fcb3bdf59f26d65e203cfbc8a685356ba300b60 이후 버전으로 업데이트하거나 해당 패치를 적용
🔧 검증 코드
출력된 코드에 스케줄 소유자(user_id) 검증 로직이 있으면 패치된 것이고, isLogged()만 있고 소유권 확인이 없으면 취약한 상태입니다.
grep -n 'isLogged\|live_schedule' $(find / -path '*/plugin/Live/uploadPoster.php' 2>/dev/null | head -1) 2>/dev/null