CVE-2026-49869
KrytyczneCVSS 10.0Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 48 — wyżej niż 48% wszystkich znanych CVE
Streszczenie
W Kestra OSS przed wersjami 1.0.45 i 1.3.21, filtr AuthenticationFilter używa metody endsWith("/configs") do sprawdzenia, czy żądanie dotyczy publicznego endpointu konfiguracji. Ponieważ jest to dopasowanie sufiksu, a nie dokładnej ścieżki, każdy interfejs API, którego ostatni segment to "configs", omija uwierzytelnianie. Niezautoryzowany atakujący może wykorzystać tę lukę do tworzenia i wykonywania dowolnych przepływów pracy bez poświadczeń.
Ocena ryzyka
Luka umożliwia zdalnemu atakującemu bez uwierzytelnienia wykonanie dowolnego kodu (RCE) jako root w kontenerze workera Kestra, co prowadzi do pełnego przejęcia systemu i potencjalnego naruszenia poufności, integralności i dostępności danych.
Rekomendacja
Należy niezwłocznie zaktualizować Kestra do wersji 1.0.45 lub 1.3.21, które zawierają poprawkę usuwającą podatność. Do czasu aktualizacji zaleca się ograniczenie dostępu do interfejsu API Kestra za pomocą zapory sieciowej lub list kontroli dostępu.
Oryginalny opis (angielski, źródło NVD)
Kestra is an open-source, event-driven orchestration platform. Prior to 1.0.45 and 1.3.21, AuthenticationFilter in Kestra OSS uses request.getPath().endsWith("/configs") to whitelist the public configuration endpoint from Basic Auth. Because the check is a suffix match rather than an exact path match, any API path whose last segment is configs bypasses authentication entirely. An unauthenticated remote attacker can exploit this to create and execute arbitrary workflows without credentials. Because Kestra ships with script execution plugins (plugin-script-shell, plugin-script-python, etc.) enabled by default, this directly results in unauthenticated Remote Code Execution as root inside the Kestra worker container. This vulnerability is fixed in 1.0.45 and 1.3.21.

