🇰🇷 한글 설명
WWBN AVideo 26.0 이하 버전의 objects/playlistsVideos.json.php 엔드포인트는 인증이나 권한 검사 없이 playlists_id 파라미터만으로 임의 재생목록의 영상 목록을 반환합니다. 목록 조회 API에서는 숨겨지는 비공개 재생목록(watch_later, favorite 등)의 내용도 순차 정수 ID로 직접 열람 가능합니다.
💡 쉬운 설명
비공개로 설정한 재생목록도 번호만 알면 누구나 내용을 볼 수 있는 문제입니다. 나중에 볼 영상이나 즐겨찾기 목록이 외부에 노출될 수 있습니다.
🇺🇸 원문 (English)
WWBN AVideo is an open source video platform. In versions up to and including 26.0, the `objects/playlistsVideos.json.php` endpoint returns the full video contents of any playlist by ID without any authentication or authorization check. Private playlists (including `watch_later` and `favorite` types) are correctly hidden from listing endpoints via `playlistsFromUser.json.php`, but their contents are directly accessible through this endpoint by providing the sequential integer `playlists_id` parameter. Commit bb716fbece656c9fe39784f11e4e822b5867f1ca has a patch for the issue.
📍 영향받는 시스템
WWBN AVideo 26.0 이하 버전 (커밋 bb716fbece656c9fe39784f11e4e822b5867f1ca 이전)
⚔️ 공격 벡터
인증 없이 objects/playlistsVideos.json.php?playlists_id=숫자 형태로 순차 ID를 대입해 비공개 재생목록 내용을 열람
🛡️ 대응 방법
커밋 bb716fbece656c9fe39784f11e4e822b5867f1ca 패치를 적용하거나 AVideo를 패치된 최신 버전으로 업그레이드
🔧 검증 코드
명령어 결과가 없으면 해당 파일이 없는 것이므로 대상이 아니며, 결과가 나오면 파일 내 권한 검사 로직(예: User 세션 또는 isPlaylistPrivate 확인)이 있는지 확인하고, 없으면 취약한 상태로 판단하고 패치를 적용하세요
grep -rn 'playlists_id' $(find / -path '*/objects/playlistsVideos.json.php' 2>/dev/null | head -1) 2>/dev/null | head -5