🇰🇷 한글 설명
Apache CXF의 STSTokenValidator에서 SAML 어설션의 신뢰 여부를 저장할 때 모든 요청이 공유하는 객체를 사용하여 데이터가 혼선되는 취약점이 발견되었습니다. 이로 인해 공격자가 위조된 어설션을 보내면 시스템이 이를 신뢰할 수 있는 것으로 잘못 판단할 수 있습니다. alwaysValidateToSts 설정이 되어 있지 않은 상태에서 STSTokenValidator를 사용하는 서비스가 영향을 받습니다.
💡 쉬운 설명
인증 확인 결과가 모든 사용자에게 공유되는 공용 게시판에 적히는 것과 같은 오류가 발생했습니다. 이 때문에 공격자가 가짜 신분증을 내밀어도 시스템이 다른 사람의 통과 기록을 보고 진짜라고 착각할 수 있습니다.
🇺🇸 원문 (English)
In Apache CXF, STSTokenValidator checks whether a SAML assertion is signed by a trusted certificate before deciding to send it to the STS. That result was stored in one object shared by all requests, so one request could read another's result. A remote, unauthenticated attacker could send a forged assertion signed with an untrusted certificate while legitimate requests were being processed, and it could be accepted as trusted without ever reaching the STS. Only services that use STSTokenValidator to validate SAML tokens without alwaysValidateToSts set are affected.
Users are recommended to upgrade to versions 4.2.4 or 4.1.9 or 3.6.13, which fix this issue.
📍 영향받는 시스템
Apache CXF (alwaysValidateToSts 설정이 false인 STSTokenValidator 사용 환경)
⚔️ 공격 벡터
원격의 인증되지 않은 공격자가 위조된 SAML 어설션을 전송하여 인증 우회 시도
🛡️ 대응 방법
Apache CXF를 4.2.4, 4.1.9 또는 3.6.13 이상의 버전으로 업그레이드
🔧 검증 코드
출력된 라이브러리 버전이 취약한 버전(4.2.4 미만, 4.1.9 미만, 3.6.13 미만)인지 확인
mvn dependency:list | grep -E 'cxf-rt-security|cxf-core'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
💻 영향받는 소프트웨어
Active Directory Certificate Services