Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-50338 — Spring Cloud Azure B2C 리소스 서버의 교차 발급자 인증 우회(cross-issuer authentication bypass)를 위한 CVE-2026-50338 개념 증명 익스플로잇. AAD 앱 등록을 통한 토큰 위조로 보호된 B2C 엔드포인트에 접근하는 방법을 시연합니다. | Kitploit
도구/GitHubGitHub/johanneslks/cve-2026-50338
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubjohanneslks/cve-2026-50338

CVE-2026-50338

Spring Cloud Azure B2C 리소스 서버의 교차 발급자 인증 우회(cross-issuer authentication bypass)를 위한 CVE-2026-50338 개념 증명 익스플로잇. AAD 앱 등록을 통한 토큰 위조로 보호된 B2C 엔드포인트에 접근하는 방법을 시연합니다.

저장소 보기
1개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-50338

Spring Cloud Azure B2C 리소스 서버 교차 발급자 인증 우회

설명

spring-cloud-azure-autoconfigure의 AadB2cResourceServerAutoConfiguration은 AadB2cTrustedIssuerRepository.java:30을 통해 AadTrustedIssuerRepository에서 상속된 6개의 AAD 계열 발급자(login.microsoftonline.com, sts.windows.net, sts.chinacloudapi.cn, 각각 v1 및 v2)를 신뢰하는 JwtDecoder를 구성합니다. tid 클레임 검증기를 설치하지 않으며, aud 조건자는 containsAll을 사용합니다(빈 audiences에서는 공허 참).

동일한 테넌트에 AAD 앱 등록을 보유한 공격자는 iss가 https://sts.windows.net/<tenant>/이고 aud가 B2C 앱의 client-id와 일치하는 client_credentials 토큰을 발행합니다. B2C 리소스 서버는 AAD 발급자가 신뢰 집합에 포함되어 있고 추가 클레임 검증이 교차 ID 시스템 토큰을 거부하지 않기 때문에 이를 수락합니다.

이는 CVE-2026-33117(AAD 리소스 서버)의 B2C 대응 취약점입니다. PR #49033은 AAD 경로를 수정했습니다. B2C 경로는 PR #49252(2026-06-02 병합, 2026년 7월 보안 업데이트에 릴리스)까지 수정되지 않았습니다.

tenant-id=common을 사용하면 모든 Entra 테넌트의 토큰이 수락됩니다.

영향: spring-cloud-azure-starter-active-directory-b2c <= 5.19.0. 2026년 7월 보안 업데이트에서 수정됨 (PR #49252).

사용법

root@kitploit:~
pip install msal requests

# Against a vulnerable Spring Boot B2C resource server:
python3 poc.py \
  --target http://localhost:8080/profile \
  --tenant-id <TENANT_ID> \
  --client-id <ATTACKER_APP_CLIENT_ID> \
  --client-secret <ATTACKER_APP_SECRET> \
  --victim-api <B2C_APP_CLIENT_ID>

# Without MSAL (raw HTTP token request):
python3 poc.py \
  --target http://localhost:8080/profile \
  --tenant-id <TENANT_ID> \
  --client-id <ATTACKER_APP_CLIENT_ID> \
  --client-secret <ATTACKER_APP_SECRET> \
  --victim-api <B2C_APP_CLIENT_ID> \
  --no-msal

# Verbose output (full token claims and response):
python3 poc.py ... -v

공격자 앱 등록에는 다음이 필요합니다:

  • 클라이언트 시크릿
  • 피해자 B2C 앱의 client-id에 대한 API 권한(또는 그 하위 범위)

요구 사항

  • Python 3.8+, msal, requests
  • 앱 등록이 있는 Entra ID 테넌트(공격자 역할)
  • 대상으로 spring-cloud-azure-starter-active-directory-b2c <= 5.19.0을 사용하는 Spring Boot 앱

파일

파일설명
poc.pyPython PoC: AAD 토큰을 발행하고 B2C 엔드포인트로 전송하여 우회를 보고합니다
README.md취약점 세부 정보 및 사용법
LICENSEGPLv3 라이선스

참고 자료

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-50338
  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-33117
  • https://johannes-moeller.dev/blog/cve-2026-50338-spring-cloud-azure-b2c-cross-issuer
  • https://github.com/Azure/azure-sdk-for-java/pull/49252
  • https://github.com/Azure/azure-sdk-for-java/pull/49033

법적 고지

이 프로젝트는 GNU GPLv3에 따라 배포됩니다.

방어적 보안 연구, 교육 및 승인된 테스트를 위해 제공됩니다. 소유자의 명시적 허가 없이 이 코드를 시스템이나 서비스에 사용하지 마십시오.

무단 사용은 관련 법률을 위반할 수 있습니다. 저자는 제3자 시스템을 테스트할 권한을 부여하지 않으며 오용에 대한 책임을 지지 않습니다.

보증 및 책임 조건은 LICENSE 파일을 참조하십시오.

도구 다운로드