🔍 CVE-2026-107334

5.4
CVSS Score
MEDIUM
2026-10-08
2026-10-08 21:03
✅ 완료

🇰🇷 한글 설명

Malcolm의 nginx Lua 기반 역할 기반 액세스 제어(RBAC) 계층이 요청 URI를 퍼센트 인코딩된 원시 상태로 검사하여 발생하는 취약점입니다. Nginx는 디코딩된 URI를 기준으로 경로를 결정하지만 RBAC는 인코딩된 문자열을 그대로 비교하므로, 인코딩된 경로를 통해 권한 제한을 우회할 수 있습니다.

💡 쉬운 설명

보안 검사기가 주소를 확인할 때 암호화된 형태 그대로를 확인하여 발생하는 문제입니다. 공격자가 주소를 살짝 변형해 보내면 보안 검사기를 통과한 뒤 실제 관리자 페이지에 접속할 수 있습니다.

🇺🇸 원문 (English)

Malcolm's nginx Lua role-based access control (RBAC) layer decides whether an authenticated user may reach a role-restricted path (e.g. /htadmin, /auth, /admin_login, /arkime/api/esadmin, NetBox, upload endpoints) by pattern-matching the raw, percent-encoded request URI. Nginx itself, however, selects which location block actually serves the request using the percent-decoded, normalized URI. Because the RBAC check never percent-decodes its input, an authenticated low-privilege user can request an admin-only path using percent-encoding (e.g. /%68tadmin.php) and have nginx route it to the restricted location while the Lua RBAC gate evaluating the un-decoded raw string finds no matching restriction and grants access.

📍 영향받는 시스템

Malcolm (nginx Lua RBAC layer 적용 시스템)

⚔️ 공격 벡터

퍼센트 인코딩된 URI(예: /%68tadmin.php)를 사용하여 RBAC 패턴 매칭을 우회하고 관리자 경로에 접근

🛡️ 대응 방법

RBAC 검사 시 URI를 퍼센트 디코딩 및 정규화한 후 패턴 매칭을 수행하도록 Lua 스크립트 수정

🔧 검증 코드

응답 코드가 200 OK이며 관리자 페이지 내용이 출력된다면 RBAC 우회 취약점이 존재하는 것입니다.

Shell / Script
curl -I -v 'http://<target_ip>/%68tadmin'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Nginx