Strona główna / Blog / Keycloak: metryki jako attack surface

Blog · analiza

Keycloak: metryki Prometheusa jako attack surface. CVE-2026-16100 pokazuje, że observability też może wyczerpać pamięć

CVE-2026-16100 dotyczy user-event metrics w Keycloak. Gdy metryki są włączone, surowe error messages trafiają do labeli Prometheusa. Ponieważ komunikaty mogą zawierać attacker-controlled wartości, uwierzytelniony użytkownik może generować ogromną liczbę unikalnych time series i doprowadzić do wyczerpania pamięci. To klasyczny cardinality explosion — ale tym razem jako podatność bezpieczeństwa.

CVE-2026-16100: attacker-controlled wartości w labelach Prometheusa → cardinality explosion → memory exhaustion.
Warunek: włączone metrics + user-event recording.

Observability nie jest neutralne

Wiele zespołów traktuje metrics jako pasywny monitoring. Tymczasem label values są częścią struktur przechowywanych w pamięci. Jeśli attacker kontroluje label (client_id=random_1, random_2, …), liczba serii rośnie praktycznie bez ograniczeń.

Affectedness zależy od konfiguracji

Podatność wymaga włączonych metrics i odpowiedniego user-event recording, więc scanner wersji nie odpowie, czy system jest exploitable. Finding powinien sprawdzić: metrics enabled? user-event metrics enabled? kto może wywołać account errors? memory limit? restart behavior? Prometheus scrape configuration? A czy limit pamięci to mitigation? Limit kontenera ograniczy blast radius procesu, ale może zamienić memory exhaustion w powtarzalny crash-loop — to compensating control dla hosta, nie remediation aplikacji.

Jak wykryć atak i szersza lekcja

Tu observability może bronić samej siebie: monitoruj nagły wzrost liczby time series, resident memory, cardinality konkretnej metryki, masowe błędy z losowymi client IDs i restarty podów. Szersza lekcja: każda metryka z user-controlled label to potencjalny unbounded allocation primitive — dotyczy nie tylko Keycloak, ale wszystkich systemów eksportujących Prometheus/OpenMetrics.

Wniosek

CVE-2026-16100 pokazuje, że attack surface obejmuje również observability pipeline. Dla VE to ważna kategoria: metrics enabled może zmieniać affectedness tak samo jak feature flag czy aktywny moduł.

Powiązane na blogu

Źródła

Nota redakcyjna: stan informacji 2 września 2026. CVE-2026-16100 dotyczy user-event metrics w Keycloak; attacker-controlled wartości w labelach Prometheusa umożliwiają cardinality explosion i wyczerpanie pamięci. Affectedness zależy od włączonych metrics. Artykuł koncentruje się na observability jako attack surface.

Zapamiętaj jedno

Każda metryka z user-controlled label powinna być traktowana jako potencjalny unbounded allocation primitive. metrics enabled może zmieniać affectedness tak samo jak feature flag — a limit pamięci zamienia memory exhaustion w crash-loop, nie usuwa attack path.