
재현 가능한 실습 환경으로, RegexRequestMatcher에서 인코딩된 개행 문자를 통한 CVE-2022-22978 Spring Security 인증 우회를 시연합니다.
RegexRequestMatcher를 사용할 때 요청 URL에 개행 문자가 포함되어 있으면 권한 우회가 발생할 수 있다.%0a, %0d 등 인코딩된 개행문자를 사용하여 관리자 페이지(/admin) 접근 권한을 우회할 수 있다.docker compose up -d 을 실행하여 테스트 환경을 준비하였다.http://localhost:8080/admin 을 실행하여 관리자페이지에 대한 엑세스가 차단되어 있는지 확인한다.http://localhost:8080/admin/%0atest 을 실행하여 관리자 페이지에 접근한다.
취약한 환경을 구성하였다.

관리자 페이지에 대한 접근이 차단되어 있다.

%0d는 '\r'을, %0a는 '\n'을 나타내는 개행문자이다. %0d, %0a를 사용하여 요청을 보내면 접근권한을 우회할 수 있다.
%0a, %0d 등의 개행문자가 URL에 포함되어 있으면, RegexRequestMatcher에서 요청 경로를 필터링할 때 개행문자에 대한 처리가 누락되어 권한을 우회할 수 있게 된다. 공격자는 권한 우회를 통해 관리자 페이지에 접근하고 그곳에서 중요 정보를 탈취할 수 있기 때문에 주의가 필요하다.