Tenable Terrascan w wersji v1.18.3 i wcześniejszych jest podatny na atak Server-Side Request Forgery (SSRF) poprzez parametr remote_url w endpoincie zdalnego skanowania katalogów. Atakujący bez uwierzytelnienia może odczytać lokalne pliki systemowe oraz wykraść dane uwierzytelniające przechowywane w pliku ~/.netrc.
▸ Pokaż oryginał (EN)
Terrascan v1.18.3 and prior are vulnerable to Server-Side Request Forgery (SSRF) via the remote_url parameter in the remote directory scan endpoint (POST /v1/{iac}/{iacVersion}/{cloud}/remote/dir/scan) when running in server mode. An unauthenticated remote attacker can supply an attacker-controlled HTTP URL as remote_url with remote_type set to "http". The URL is passed directly to hashicorp/go-getter (v1.7.5) without validation. Go-getter's HttpGetter supports the X-Terraform-Get response header, allowing the attacker's server to redirect the download to a file:// URL, enabling local file read. Additionally, HttpGetter has Netrc set to true, causing it to read ~/.netrc and send stored credentials to attacker-controlled hostnames. This affects deployments running terrascan in server mode (terrascan server), which binds to 0.0.0.0 with no authentication. Note: Terrascan was archived in August 2023 and no patch will be released.
Podatność istnieje w trybie serwerowym Terrascan (terrascan server), który domyślnie nasłuchuje na 0.0.0.0 bez żadnego mechanizmu uwierzytelniania. Atakujący wysyła żądanie POST do endpointu /v1/{iac}/{iacVersion}/{cloud}/remote/dir/scan, podając kontrolowany przez siebie adres HTTP jako wartość parametru remote_url przy ustawieniu remote_type na 'http'. Adres URL jest przekazywany bezpośrednio do biblioteki hashicorp/go-getter (v1.7.5) bez żadnej walidacji. Biblioteka go-getter obsługuje nagłówek odpowiedzi X-Terraform-Get, co umożliwia serwerowi atakującego przekierowanie pobierania na adres file://, pozwalając na odczyt plików lokalnych. Ponadto składnik HttpGetter ma włączoną opcję Netrc (true), przez co odczytuje plik ~/.netrc i przesyła przechowywane w nim dane uwierzytelniające na serwer kontrolowany przez atakującego.
Nieunauthentykowany zdalny atakujący może odczytywać dowolne pliki lokalne dostępne dla procesu Terrascan oraz wykraść dane uwierzytelniające (loginy, hasła, tokeny) przechowywane w pliku ~/.netrc na serwerze, co może prowadzić do dalszego naruszenia bezpieczeństwa infrastruktury.
Nie zostanie wydany żaden patch — projekt Terrascan został zarchiwizowany przez Tenable w sierpniu 2023 roku. Zaleca się natychmiastowe zaprzestanie używania Terrascan w trybie serwerowym (szczególnie w środowiskach dostępnych sieciowo), migrację do alternatywnego narzędzia oraz — jeśli dalsze użytkowanie jest nieuniknione — ograniczenie dostępu do endpointów Terrascan za pomocą firewall lub mechanizmów kontroli dostępu na poziomie sieci (np. wyłącznie localhost lub VPN).
Tenable Terrascan v1.18.3 i wszystkie wcześniejsze wersje uruchamiane w trybie serwerowym (terrascan server)
Projekt Terrascan został zarchiwizowany przez Tenable w sierpniu 2023 roku — producent potwierdził, że żaden patch nie zostanie wydany. Podatność dotyczy wyłącznie instancji uruchomionych w trybie serwerowym (terrascan server). Podatna biblioteka to hashicorp/go-getter w wersji v1.7.5.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:H/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XTenable Terrascan
APPTenable≤ 1.18.3
Powiązane podatności
SSRF z możliwością odczytu plików lokalnych w Tenable Terrascan
Terrascan v1.18.3 and prior are vulnerable to Server-Side Request Forgery (SSRF) via the webhook_url parameter...
A crafted request uri-path can cause mod_proxy to forward the request to an origin server choosen by the remot...
Expat (aka libexpat) before 2.4.4 has a signed integer overflow in XML_GetBuffer, for configurations with a no...
addBinding in xmlparse.c in Expat (aka libexpat) before 2.4.3 has an integer overflow.