Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-84181 — Apache Camel camel-shiro의 스레드 바인딩된 subject 인증 우회를 재현하는 실행 가능한 Spring Boot 및 Quarkus 개념 증명으로, 취약 및 패치된 대조군을 포함합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-84181
Defensive ToolsVulnerability AnalysisExploitationWeb Application ExploitationAuthenticationLearning & Education
GitHuboscerd/cve-2026-84181

CVE-2026-84181

Apache Camel camel-shiro의 스레드 바인딩된 subject 인증 우회를 재현하는 실행 가능한 Spring Boot 및 Quarkus 개념 증명으로, 취약 및 패치된 대조군을 포함합니다.

저장소 보기
31일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-84181 — camel-shiro: 스레드에 바인딩된 subject를 통한 인증 우회

Apache Camel 취약점에 대한 실행 가능한 개념 증명(PoC) 재현기입니다. 이 취약점은 Shiro Subject가 현재 스레드에 이미 바인딩되어 있고 그 principal이 들어오는 exchange의 principal과 동일할 때 Shiro 보안 프로세서가 자격 증명 검증을 건너뛰는 문제입니다. Camel exchange를 처리하는 스레드는 풀에서 가져와 여러 exchange에 걸쳐 재사용되므로, 이전의 인증된 exchange가 남긴 바인딩된 subject가 자체적으로 유효한 자격 증명을 제시하지 않은 이후 exchange의 검사도 통과시킬 수 있었습니다. 즉, 이후 exchange의 비밀번호는 검증되지 않았습니다. 공격자는 현재 활발히 사용 중인 principal을 지정한 요청을 보내기만 하면 됩니다.

런타임디렉터리스택
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-shiro 4.22.0 (영향받음; 수정 버전 4.22.1)
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-shiro (Camel 4.15.0, 영향받음; 수정 대조군 CQ 3.40.0 / Camel 4.22.1)

두 모듈 모두 영향받는 동작 및 수정된 동작을 보여줍니다.

무엇을 보여주는가

라우트는 alwaysReauthenticate=false로 구성된 ShiroSecurityPolicy로 보호됩니다. 이는 문서화된 모드로, 인증된 subject가 exchange 사이에 (풀링되어 재사용되는) 워커 스레드에 의도적으로 바인딩된 채 유지됩니다. 익스플로잇 드라이버는 하나의 HTTP 워커 스레드 안에서 두 개의 exchange를 순서대로 실행합니다:

  1. ringo가 올바른 비밀번호 starr로 보내는 정당한 요청 — 인증에 성공하고 Shiro subject를 이 스레드에 바인딩된 채로 남깁니다 (바쁜 서비스에서 이전 인증 요청이 그랬던 것처럼);
  2. 동일한 사용자 ringo를 지정하지만 잘못된 비밀번호 not-starr를 사용하는 공격자 요청을 같은 스레드에서 보냅니다.
  • 영향받음: 두 번째 exchange는 비밀번호를 검증하지 않고 수락됩니다 — 1단계에서 스레드에 남겨진 subject를 그대로 이용합니다 — 그리고 보호된 로직에 도달합니다. 인증 우회입니다.
  • 수정됨: 두 번째 exchange의 자격 증명은 독립적으로 검증되며, 동일한 사용자가 여전히 스레드에 바인딩되어 있음에도 불구하고 AuthenticationException과 함께 거부됩니다.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wrong password reaches protected logic; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-84181-shiro-auth-bypass-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected; >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected (Camel 4.15.0): wrong password reaches protected logic
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected

취약점 요약

속성값
구성 요소camel-shiro (ShiroSecurityProcessor.authenticateUser)
CWECWE-287 (부적절한 인증)
심각도MEDIUM
공격 벡터재사용된 워커 스레드에 현재 바인딩된 principal을 지정하지만, 자체적으로 유효한 자격 증명을 지니지 않은 요청
영향인증 우회: 인증되지 않은 요청이 이미 바인딩된 principal로 수락되며, 해당 비밀번호는 검증되지 않음
영향받는 버전4.0.0부터 4.18.5 이전, 4.19.0부터 4.22.1 이전
수정된 버전4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24439
크레딧Claude Security Scan Tool

권고문: https://camel.apache.org/security/CVE-2026-84181.html

수정 내용

ShiroSecurityProcessor.authenticateUser는 스레드에 바인딩된 subject가 이미 동일한 principal을 지니고 있을 때 로그인을 건너뛰지 않습니다. 이전 코드는 currentUser.isAuthenticated() && username.equals(currentUser.getPrincipal())에서 단락 평가되었는데, 사용자 이름이 일치한다고 해서 이번 exchange와 함께 제시된 비밀번호에 대해 아무것도 알려주지 않습니다. 이제 프로세서는 모든 exchange에서 currentUser.login(token)을 호출하므로, 제시된 자격 증명이 항상 검증됩니다. alwaysReauthenticate는 여전히 subject의 rememberMe 유효 기간을 제어하지만, 더 이상 비밀번호 검사 여부를 결정하지 않습니다.

업그레이드할 수 없는 경우의 완화 조치

업그레이드가 가능할 때까지, 모든 exchange가 끝날 때 Shiro subject가 스레드에서 정리되도록 하십시오(이후 exchange가 subject를 상속받을 수 없도록). 예를 들어 Shiro의 ThreadContext.unbindSubject()를 호출하는 onCompletion/프로세서를 사용하면 됩니다.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시됩니다. Apache Camel 사용자가 취약점을 이해하고, 영향을 받는지 확인하며, 업그레이드가 문제를 해결하는지 검증할 수 있도록 돕기 위함입니다. 여기에 포함된 사용자, 비밀번호, 키는 동작하지 않는 로컬 픽스처입니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드