🇰🇷 한글 설명
Spring Security 환경에서 EndpointRequest.to()를 사용할 때, 참조하는 액추에이터 엔드포인트가 비활성화되어 있거나 노출되지 않은 경우 matcher가 null 또는 /**로 생성되는 취약점입니다. 이로 인해 /null 경로에 대한 보안 설정이 의도치 않게 무효화될 수 있습니다.
💡 쉬운 설명
보안 설정 도중 특정 기능이 꺼져 있으면, 시스템이 보안 규칙을 제대로 만들지 못해 보안 구멍이 생기는 문제입니다. 공격자가 이 구멍을 통해 보호받아야 할 경로에 접근할 위험이 있습니다.
🇺🇸 원문 (English)
EndpointRequest.to() creates a matcher for null/** if the actuator endpoint, for which the EndpointRequest has been created, is disabled or not exposed.
Your application may be affected by this if all the following conditions are met:
* You use Spring Security
* EndpointRequest.to() has been used in a Spring Security chain configuration
* The endpoint which EndpointRequest references is disabled or not exposed via web
* Your application handles requests to /null and this path needs protection
You are not affected if any of the following is true:
* You don't use Spring Security
* You don't use EndpointRequest.to()
* The endpoint which EndpointRequest.to() refers to is enabled and is exposed
* Your application does not handle requests to /null or this path does not need protection
📍 영향받는 시스템
Spring Security를 사용하며 EndpointRequest.to()를 통해 비활성화된 엔드포인트를 설정한 애플리케이션
⚔️ 공격 벡터
비활성화된 엔드포인트를 참조하여 생성된 취약한 보안 규칙을 이용해 /null 경로로 접근 시도
🛡️ 대응 방법
사용 중인 Spring Security 버전을 최신 보안 패치가 적용된 버전으로 업데이트하거나, 엔드포인트 노출 상태를 확인하여 설정을 수정하십시오.
🔧 검증 코드
코드 내에 EndpointRequest.to() 호출이 있고, 해당 엔드포인트가 설정 파일에서 비활성화되어 있는지 확인하십시오.
grep -r "EndpointRequest.to(" .