🇰🇷 한글 설명
Spring Framework 5.2.x 버전(5.2.3 미만)에서 CORS 프리플라이트 요청을 통한 CSRF 공격 취약점이 발견되었습니다. Chrome 기반 브라우저에서 클라이언트 인증서를 사용할 경우, 사양을 위반하여 프리플라이트 요청에 인증 정보가 포함될 수 있어 비인증 엔드포인트가 공격 대상이 될 수 있습니다.
💡 쉬운 설명
웹 브라우저가 서버에 미리 보내는 확인 요청을 악용하여 사용자의 권한을 도용할 수 있는 보안 약점입니다. 특히 크롬 브라우저에서 인증서를 사용하는 환경에서 보안 규칙이 어긋나 발생할 수 있습니다.
🇺🇸 원문 (English)
Spring Framework, versions 5.2.x prior to 5.2.3 are vulnerable to CSRF attacks through CORS preflight requests that target Spring MVC (spring-webmvc module) or Spring WebFlux (spring-webflux module) endpoints. Only non-authenticated endpoints are vulnerable because preflight requests should not include credentials and therefore requests should fail authentication. However a notable exception to this are Chrome based browsers when using client certificates for authentication since Chrome sends TLS client certificates in CORS preflight requests in violation of spec requirements. No HTTP body can be sent or received as a result of this attack.
📍 영향받는 시스템
Spring Framework 5.2.x (5.2.3 미만 버전)
⚔️ 공격 벡터
CORS 프리플라이트 요청을 이용한 CSRF 공격
🛡️ 대응 방법
Spring Framework를 5.2.3 이상 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 5.2.3 미만의 spring-webmvc 버전이 출력되면 취약한 상태입니다.
mvn dependency:list | grep 'org.springframework:spring-webmvc' | grep -v '5.2.3'