2023-01-08 15:26:05 +00:00
id : CVE-2022-29153
info :
2023-04-07 16:29:37 +00:00
name : HashiCorp Consul/Consul Enterprise - Server-Side Request Forgery
2023-01-08 15:26:05 +00:00
author : c-sh0
severity : high
2023-01-08 15:43:00 +00:00
description : |
2023-04-07 16:29:37 +00:00
HashiCorp Consul and Consul Enterprise up to 1.9.16, 1.10.9, and 1.11 are susceptible to server-side request forgery. When redirects are returned by HTTP health check endpoints, Consul follows these HTTP redirects by default. An attacker can possibly obtain sensitive information, modify data, and/or execute unauthorized administrative operations in the context of the affected site.
2023-01-08 15:26:05 +00:00
reference :
- https://discuss.hashicorp.com/t/hcsec-2022-10-consul-s-http-health-check-may-allow-server-side-request-forgery/38393
- https://github.com/hashicorp/consul/pull/12685
- https://developer.hashicorp.com/consul/docs/discovery/checks
2023-01-08 15:43:00 +00:00
- https://nvd.nist.gov/vuln/detail/CVE-2022-29153
2023-04-19 16:20:17 +00:00
remediation : 1 ) HTTP + interval health check configuration provides a disable_redirects option to prohibit this behavior. 2) Fixed in 1.9.17, 1.10.10, and 1.11.5.
2023-01-08 15:26:05 +00:00
classification :
2023-01-10 12:47:52 +00:00
cvss-metrics : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
cvss-score : 7.5
2023-01-08 15:26:05 +00:00
cve-id : CVE-2022-29153
2023-01-10 12:47:52 +00:00
cwe-id : CWE-918
2023-04-12 10:55:48 +00:00
epss-score : 0.00931
2023-01-08 15:43:00 +00:00
metadata :
2023-04-28 08:11:21 +00:00
max-request : 1
2023-01-08 15:43:00 +00:00
shodan-query : title:"Consul by HashiCorp"
2023-06-04 08:13:42 +00:00
verified : true
2023-07-02 10:21:33 +00:00
tags : cve,cve2022,consul,hashicorp,ssrf,intrusive
2023-01-08 15:26:05 +00:00
2023-04-27 04:28:59 +00:00
http :
2023-01-08 15:26:05 +00:00
- raw :
2023-07-02 10:21:33 +00:00
- | # register safe test node
2023-01-08 15:43:00 +00:00
PUT /v1/agent/check/register HTTP/1.1
2023-01-08 15:26:05 +00:00
Host : {{Hostname}}
Content-Type : application/json
{
"id": "{{randstr}}" ,
2023-07-02 10:21:33 +00:00
"name": "TEST NODE" ,
2023-01-08 15:26:05 +00:00
"method": "GET" ,
2023-07-02 10:21:33 +00:00
"http": "http://example.com" ,
2023-01-08 15:26:05 +00:00
"interval": "10s" ,
"timeout": "1s" ,
"disable_redirects": true
}
2023-07-02 10:22:39 +00:00
- | # deregister test node
PUT /v1/agent/check/deregister/{{randstr}} HTTP/1.1
Host : {{Hostname}}
Content-Type : application/json
2023-01-08 15:26:05 +00:00
matchers-condition : and
matchers :
- type : word
part : body
words :
2023-01-08 15:43:00 +00:00
- unknown field "disable_redirects"
- type : status
status :
2023-07-02 10:21:33 +00:00
- 400