🇰🇷 한글 설명
HTML 이스케이프가 활성화된 상태에서 데이터 바인딩 Errors 인스턴스를 가져와 getFieldErrors() 또는 getFieldError()를 통해 필드 오류를 렌더링할 때 임의의 HTML/JavaScript 코드가 주입될 수 있습니다. 이로 인해 반사형 교차 사이트 스크립팅(XSS) 취약점이 발생할 수 있습니다.
💡 쉬운 설명
웹사이트의 입력 오류 메시지를 처리하는 과정에서 악성 코드가 포함된 메시지가 그대로 화면에 출력될 수 있는 문제입니다. 공격자가 이를 이용해 사용자의 브라우저에서 원치 않는 스크립트를 실행할 수 있습니다.
🇺🇸 원문 (English)
Spring MVC and WebFlux applications that obtain a data-binding Errors instance with HTML escaping enabled and then render field errors using the no-argument Errors.getFieldErrors() or Errors.getFieldError() accessors are vulnerable to arbitrary HTML/JavaScript code injection, potentially resulting in a reflected cross-site scripting (XSS) vulnerability.
Spring Framework 7.0.0 - 7.0.8
Spring Framework 6.2.0 - 6.2.19
Spring Framework 6.1.0 - 6.1.28
Spring Framework 6.0.0 - 6.0.30
Spring Framework 5.3.0 - 5.3.49
Spring Framework 5.2.25.RELEASE and earlier
📍 영향받는 시스템
Spring Framework 7.0.0-7.0.8, 6.2.0-6.2.19, 6.1.0-6.1.28, 6.0.0-6.0.30, 5.3.0-5.3.49, 5.2.25.RELEASE 및 이전 버전
⚔️ 공격 벡터
입력값 검증 오류 시 생성되는 에러 메시지에 악성 스크립트를 포함시켜 서버가 이를 그대로 렌더링하도록 유도하는 방식
🛡️ 대응 방법
Spring Framework를 보안 패치가 적용된 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 spring-core의 버전을 확인하여 취약한 버전 범위에 포함되는지 체크합니다.
mvn dependency:list | grep spring-core