🔍 CVE-2026-40935

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

🇰🇷 한글 설명

WWBN AVideo 29.0 이하 버전의 objects/getCaptcha.php는 쿼리 문자열의 CAPTCHA 길이(ql) 값을 검증 없이 받아들여, 비인증 사용자가 1자리 CAPTCHA를 강제로 생성하게 할 수 있습니다. 대소문자를 구분하지 않는 비교(strcasecmp)와 실패 시 세션 토큰이 소모되지 않는 점이 결합되어 회원가입, 비밀번호 찾기 등 Captcha::validation()을 사용하는 엔드포인트의 CAPTCHA가 약 33회 요청 내에 무차별 대입으로 우회될 수 있습니다.

💡 쉬운 설명

보안 확인 문자(CAPTCHA)를 아주 짧게 만들어서 누구나 쉽게 맞출 수 있게 되는 취약점입니다. 이로 인해 자동화된 프로그램이 회원가입이나 비밀번호 찾기 같은 기능을 대량으로 악용할 수 있습니다.

🇺🇸 원문 (English)

WWBN AVideo is an open source video platform. In versions 29.0 and prior, `objects/getCaptcha.php` accepts the CAPTCHA length (`ql`) directly from the query string with no clamping or sanitization, letting any unauthenticated client force the server to generate a 1-character CAPTCHA word. Combined with a case-insensitive `strcasecmp` comparison over a ~33-character alphabet and the fact that failed validations do NOT consume the stored session token, an attacker can trivially brute-force the CAPTCHA on any endpoint that relies on `Captcha::validation()` (user registration, password recovery, contact form, etc.) in at most ~33 requests per session. Commit bf1c76989e6a9054be4f0eb009d68f0f2464b453 contains a fix.

📍 영향받는 시스템

WWBN AVideo 29.0 이하 버전 (수정 커밋 bf1c76989e6a9054be4f0eb009d68f0f2464b453 적용 필요)

⚔️ 공격 벡터

비인증 공격자가 ql 파라미터로 1자리 CAPTCHA를 생성시킨 뒤 약 33개 후보를 대소문자 무관하게 반복 입력해 검증을 우회

🛡️ 대응 방법

AVideo를 29.0 이후의 수정된 버전으로 업그레이드하거나 커밋 bf1c76989e6a9054be4f0eb009d68f0f2464b453을 적용하고, ql 값의 범위 제한 및 실패 시 토큰 무효화를 확인

🔧 검증 코드

ql 값에 최소/최대 범위 제한(clamp, min/max 등)이 있으면 수정된 것이고, 제한 없이 그대로 사용되면 취약한 상태입니다.

Shell / Script
grep -rn "ql" objects/getCaptcha.php 2>/dev/null | head -5

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Magento Open Source