🔍 CVE-2026-41061

5.4
CVSS Score
MEDIUM
2026-04-21
2026-10-26 21:10
✅ 완료

🇰🇷 한글 설명

WWBN AVideo 29.0 이하 버전에서 objects/video.php의 isValidDuration() 정규식이 끝 앵커($)가 없어, 유효한 재생시간 앞부분 뒤에 임의의 HTML/JavaScript를 덧붙일 수 있습니다. 이렇게 조작된 재생시간은 DB에 저장된 뒤 트렌딩, 재생목록, 갤러리 페이지에서 이스케이프 없이 출력되어 저장형 XSS가 발생합니다. 수정 커밋은 bcba324644df8b4ed1f891462455f1cd26822a45입니다.

💡 쉬운 설명

영상의 재생시간 값에 악성 스크립트를 숨겨 저장할 수 있는 취약점입니다. 이 영상을 보는 다른 사용자의 브라우저에서 그 스크립트가 실행될 수 있습니다.

🇺🇸 원문 (English)

WWBN AVideo is an open source video platform. In versions 29.0 and below, the `isValidDuration()` regex at `objects/video.php:918` uses `/^[0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}/` without a `$` end anchor, allowing arbitrary HTML/JavaScript to be appended after a valid duration prefix. The crafted duration is stored in the database and rendered without HTML escaping via `echo Video::getCleanDuration()` on trending pages, playlist pages, and video gallery thumbnails, resulting in stored cross-site scripting. Commit bcba324644df8b4ed1f891462455f1cd26822a45 contains a fix.

📍 영향받는 시스템

WWBN AVideo 29.0 이하 버전

⚔️ 공격 벡터

영상 등록 시 재생시간 값에 유효한 형식 뒤로 악성 HTML/JavaScript를 덧붙여 저장하고, 해당 영상이 트렌딩/재생목록/갤러리에 표시될 때 스크립트가 실행됨

🛡️ 대응 방법

수정 커밋 bcba324644df8b4ed1f891462455f1cd26822a45이 포함된 최신 버전으로 업데이트하고 기존 재생시간 데이터를 점검

🔧 검증 코드

정규식 라인에 끝 앵커($)가 포함되어 있으면 패치된 것이고, 앵커가 없는 기존 형태 그대로면 취약한 상태입니다.

Shell / Script
grep -n 'isValidDuration' objects/video.php 2>/dev/null | head -5

📊 CVSS Vector String

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