CVE-2026-40179
ŚrednieCVSS 6.1Streszczenie
Prometheus w wersjach 3.0–3.5.1 oraz 3.6.0–3.11.1 zawiera podatności typu stored XSS w interfejsie webowym, gdzie nazwy metryk i wartości etykiet są wstrzykiwane do innerHTML bez escapowania. Ponieważ Prometheus v3.x domyślnie dopuszcza znaki <, > i " w nazwach metryk i etykiet (walidacja UTF-8), atakujący może wstrzyknąć złośliwe metryki przez przejęty cel scrapowania, remote write lub odbiornik OTLP i wykonać dowolny JavaScript w przeglądarce użytkownika przeglądającego metrykę w Graph UI. Podatność naprawiono w wersjach 3.5.2 i 3.11.2.
Ocena ryzyka
Atakujący może wykonać dowolny JavaScript w przeglądarce użytkownika Prometheusa, co potencjalnie umożliwia eksfiltrację konfiguracji, usunięcie danych lub zatrzymanie Prometheusa w zależności od włączonych flag. Ryzyko dotyczy organizacji, które przyjmują dane metryk z niezaufanych źródeł.
Rekomendacja
Zaktualizuj Prometheusa do wersji 3.5.2 lub 3.11.2. Jeśli aktualizacja nie jest możliwa, nie udostępniaj odbiorników remote write (--web.enable-remote-write-receiver) i OTLP (--web.enable-otlp-receiver) niezaufanym źródłom, weryfikuj zaufanie celów scrapowania, unikaj włączania API administracyjnych i nie klikaj niezaufanych linków zawierających funkcje takie jak label_replace.
Inne podatności w Prometheus
Zobacz wszystkie- CVE-2026-119566Średnie
Prometheus w wersjach do 3.15.1 zawiera podatność na wyciek poświadczeń, która pozwala atakującym przechwycić tokeny bearer Azure AD lub Google IAM poprzez przekierowanie żądań remote_write do innego hosta. Atakujący kontrolujący punkt końcowy remote-write lub serwer przekierowujący może zwrócić 3xx do swojego hosta i odtworzyć token, na przykład aby zapisywać metryki w backendzie ofiary.
- CVE-2026-44903Średnie
Prometheus od wersji 2.49.0 do 3.5.3 i 3.11.3 zawiera podatność XSS w legacy web UI (włączanym flagą --enable-feature=old-ui). W widoku histogramu heatmap wartości etykiet 'le' nie są odpowiednio escapowane, co pozwala atakującemu wstrzyknąć JavaScript przez spreparowane metryki.
- CVE-2026-42154Wysokie
Prometheus przed wersjami 3.5.3 i 3.11.3 nie sprawdza zadeklarowanej długości danych w skompresowanym żądaniu do endpointu /api/v1/read przed alokacją pamięci. Nieuwierzytelniony atakujący może wysłać mały pakiet powodujący ogromną alokację pamięci, co przy równoczesnych żądaniach może wyczerpać dostępną pamięć i doprowadzić do awarii procesu Prometheus.
- CVE-2026-42151Wysokie
Prometheus przed wersjami 3.5.3 i 3.11.3 przechowuje pole client_secret w konfiguracji OAuth Azure AD jako zwykły string zamiast jako Secret. Powoduje to, że sekret klienta Azure OAuth jest ujawniany w postaci jawnego tekstu każdemu użytkownikowi lub procesowi mającemu dostęp do punktu końcowego /-/config.
Oryginalny opis (angielski, źródło NVD)
Prometheus is an open-source monitoring system and time series database. Versions 3.0 through 3.5.1 and 3.6.0 through 3.11.1 have stored cross-site scripting vulnerabilities in multiple components of the Prometheus web UI where metric names and label values are injected into innerHTML without escaping. In both the Mantine UI and old React UI, chart tooltips on the Graph page render metric names containing HTML/JavaScript without sanitization. In the old React UI, the Metric Explorer fuzzy search results use dangerouslySetInnerHTML without escaping, and heatmap cell tooltips interpolate le label values without sanitization. With Prometheus v3.x defaulting to UTF-8 metric and label name validation, characters like <, >, and " are now valid in metric names and labels. An attacker who can inject metrics via a compromised scrape target, remote write, or OTLP receiver endpoint can execute arbitrary JavaScript in the browser of any Prometheus user who views the metric in the Graph UI, potentially enabling configuration exfiltration, data deletion, or Prometheus shutdown depending on enabled flags. This issue has been fixed in versions 3.5.2 and 3.11.2. If developers are unable to immediately update, the following workarounds are recommended: ensure that the remote write receiver (--web.enable-remote-write-receiver) and the OTLP receiver (--web.enable-otlp-receiver) are not exposed to untrusted sources; verify that all scrape targets are trusted and not under attacker control; avoid enabling admin or mutating API endpoints (e.g., --web.enable-admin-api or --web.enable-lifecycle) in environments where untrusted data may be ingested; and refrain from clicking untrusted links, particularly those containing functions such as label_replace, as they may generate poisoned label names and values.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

