🇰🇷 한글 설명
Malcolm의 Nginx 리버스 프록시 설정에서 대소문자 구분 방식의 불일치로 인해 인증을 우회할 수 있는 취약점이 발견되었습니다. 공격자가 특정 경로를 조작하여 인증 절차를 건너뛰고, X-Forwarded-User 헤더를 위조하여 Arkime 백엔드에 권한이 있는 사용자로 위장하여 접근할 수 있습니다.
💡 쉬운 설명
웹사이트의 주소를 대소문자를 섞어서 입력하면 보안 검사를 통과하지 못하는 허점이 있습니다. 이를 이용해 공격자는 가짜 신분증(헤더)을 내밀며 관리자 권한으로 시스템에 몰래 들어올 수 있습니다.
🇺🇸 원문 (English)
Malcolm's front nginx reverse proxy defines a "Dashboards → Arkime shortcut" location using a case-insensitive regex matcher but a case-sensitive rewrite. A request whose path segment is not exact-lowercase (for example /IDDASH2ARK/...) enters the location (the matcher fires) but evades the rewrite (no redirect is issued), so nginx falls through to the location's proxy_pass to the Arkime backend. That location is the one proxied location in the shipped config that does not include the per-location authentication file, so the request reaches Arkime unauthenticated. The same location also forwards a client-supplied X-Forwarded-User header un-overwritten, and Arkime is configured to trust X-Forwarded-User as the authenticated username — so an unauthenticated network caller can reach the Arkime backend while supplying a forged, auto-provisioned identity.
📍 영향받는 시스템
Malcolm (Nginx reverse proxy configuration using Arkime)
⚔️ 공격 벡터
대소문자가 혼용된 경로 요청과 위조된 X-Forwarded-User 헤더를 이용한 인증 우회 공격
🛡️ 대응 방법
Nginx 설정의 regex matcher와 rewrite 규칙의 대소문자 일치 여부를 확인하고, X-Forwarded-User 헤더를 신뢰하지 않거나 강제로 초기화하도록 수정하십시오.
🔧 검증 코드
응답 코드가 200 OK이며 인증 없이 Arkime 페이지에 접근 가능하다면 취약한 상태입니다.
curl -I -H 'X-Forwarded-User: admin' http://<malcolm-ip>/IDDASH2ARK/