Instancje cors-anywhere skonfigurowane jako otwarty proxy umożliwiają nieuwierzytelnionym użytkownikom zewnętrznym wymuszenie na serwerze wykonania żądań HTTP do dowolnych celów (SSRF). Może to prowadzić do kradzieży poświadczeń chmurowych, nieuprawnionego dostępu do wewnętrznych usług, a nawet RCE lub privilege escalation.
▸ Pokaż oryginał (EN)
Rob--W cors-anywhere instances configured as an open proxy allow unauthenticated external users to induce the server to make HTTP requests to arbitrary targets (SSRF). Because the proxy forwards requests and headers, an attacker can reach internal-only endpoints and link-local metadata services, retrieve instance role credentials or other sensitive metadata, and interact with internal APIs and services that are not intended to be internet-facing. The vulnerability is exploitable by sending crafted requests to the proxy with the target resource encoded in the URL; many cors-anywhere deployments forward arbitrary methods and headers (including PUT), which can permit exploitation of IMDSv2 workflows as well as access to internal management APIs. Successful exploitation can result in theft of cloud credentials, unauthorized access to internal services, remote code execution or privilege escalation (depending on reachable backends), data exfiltration, and full compromise of cloud resources. Mitigation includes: restricting the proxy to trusted origins or authentication, whitelisting allowed target hosts, preventing access to link-local and internal IP ranges, removing support for unsafe HTTP methods/headers, enabling cloud provider mitigations, and deploying network-level protections.
Atakujący wysyła spreparowane żądanie do proxy cors-anywhere, kodując docelowy zasób w adresie URL. Proxy przekazuje żądanie wraz z nagłówkami do wskazanego celu, umożliwiając dotarcie do wewnętrznych punktów końcowych oraz usług metadanych instancji (link-local metadata services). Wiele wdrożeń cors-anywhere przekazuje dowolne metody HTTP (w tym PUT) i nagłówki, co pozwala na eksploatację przepływów IMDSv2 oraz dostęp do wewnętrznych API zarządzania. Skuteczna eksploatacja pozwala pobrać poświadczenia roli instancji chmurowej lub inne wrażliwe metadane.
Atakujący może uzyskać poświadczenia chmurowe, uzyskać nieautoryzowany dostęp do wewnętrznych usług i API, przeprowadzić eksfiltrację danych, a w zależności od osiągalnych backendów — doprowadzić do RCE, privilege escalation lub pełnego przejęcia zasobów chmurowych.
Należy ograniczyć proxy wyłącznie do zaufanych źródeł lub wymagać uwierzytelnienia, wdrożyć białą listę dozwolonych hostów docelowych, zablokować dostęp do zakresów link-local oraz wewnętrznych adresów IP, usunąć obsługę niebezpiecznych metod i nagłówków HTTP, włączyć zabezpieczenia dostawcy chmury (np. IMDSv2) oraz zastosować ochronę na poziomie sieci. Należy zastosować patche dostępne u producenta zgodnie z referencjami.
Instancje cors-anywhere (autorstwa Rob--W) skonfigurowane jako otwarty proxy bez ograniczeń dozwolonych źródeł lub hostów docelowych; wersje wskazane w referencjach producenta
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:H/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:X