CVE-2026-31866
WysokieStreszczenie
flagd to demon zarządzający flagami funkcji, który przed wersją 0.14.2 udostępniał publicznie dostępne punkty końcowe OFREP i gRPC do oceny flag funkcji. Atakujący może wysłać żądanie HTTP z dowolnie dużym ciałem, co prowadzi do wyczerpania pamięci i zakończenia procesu.
Ocena ryzyka
Brak kontroli dostępu na punktach końcowych oceny może umożliwić atakującym wykorzystanie tej podatności do wywołania awarii systemu, co może prowadzić do przerw w działaniu aplikacji i usług.
Rekomendacja
Zaleca się aktualizację flagd do wersji 0.14.2 lub nowszej oraz wdrożenie autoryzacji na punktach końcowych za pomocą odwrotnego proxy lub innej infrastruktury zabezpieczającej.
Powiązane podatności
- CVE-2026-57148Krytyczne
W PraisonAI przed wersją 0.1.6, gdy PLATFORM_JWT_SECRET nie jest ustawione, używany jest publiczny klucz deweloperski dev-secret-change-me do podpisywania HS256, a zabezpieczenia startowe i wydawania tokenów są wyłączone, ponieważ PLATFORM_ENV domyślnie przyjmuje wartość dev. Nieuwierzytelniony atakujący może podpisać JWT z dowolną wartością sub, który zostanie zaakceptowany jako tożsamość, umożliwiając podszycie się pod użytkownika lub właściciela obszaru roboczego.
- CVE-2026-57147Krytyczne
W PraisonAI przed wersją 0.1.6, gdy PLATFORM_JWT_SECRET nie jest ustawione, JWT_SECRET przyjmuje publiczną wartość dev-secret-change-me, a zabezpieczenie produkcyjne nie działa, gdy PLATFORM_ENV również nie jest ustawione (domyślnie dev). Zdalny nieuwierzytelniony atakujący może wygenerować token HS256 z dowolnym sub i email, który zostanie zaakceptowany przez AuthService._verify_token() i get_current_user dla chronionych tras API.
- CVE-2026-57141Krytyczne
W PraisonAI przed wersją 1.7.2 narzędzie codeMode w src/praisonai-ts/src/tools/builtins/code-mode.ts wykonuje model-generated JavaScript za pomocą new Function() i with(sandbox), a bloklistę opartą na wyrażeniach regularnych można obejść używając Function('return this')() do odzyskania obiektu globalnego i dynamicznego konstruowania nazwy modułu child_process. Atakujący mogący wpływać na argument code może uzyskać dostęp do możliwości procesu hosta, czytać lub zapisywać pliki, pozyskiwać poświadczenia środowiskowe i wykonywać polecenia systemowe z uprawnieniami procesu PraisonAI.
- CVE-2026-57140Krytyczne
W PraisonAI od wersji 1.6.0 do 1.7.2, AgentOS w src/praisonai-ts/src/os/agentos.ts używa domyślnego adresu 0.0.0.0 z src/praisonai-ts/src/os/config.ts i rejestruje GET /api/agents oraz POST /api/chat bez oprogramowania pośredniczącego uwierzytelniania. Zdalny wywołujący mogący połączyć się z usługą może uzyskać nazwy agentów, role i prefiksy instrukcji oraz wywołać wybranego agenta, potencjalnie uzyskując dostęp do jego narzędzi, pamięci, zewnętrznych API, poświadczeń i stanu przepływu pracy.
- CVE-2026-57139Krytyczne
W PraisonAI od wersji 1.5.0 do 1.7.2, MCPServer.startHttp() w src/praisonai-ts/src/mcp/server.ts wiąże się bez ograniczenia hosta i przekazuje każde żądanie HTTP POST do handleRequest() bez uwierzytelniania i autoryzacji. Każdy klient sieciowy mogący połączyć się z portem może wywołać tools/list, tools/call, resources/read lub prompts/get, powodując uruchomienie zarejestrowanych procedur obsługi z poświadczeniami serwera i uprawnieniami procesu lub ujawnienie zarejestrowanych danych.
- CVE-2026-57138Krytyczne
W PraisonAI od wersji 1.4.0 do 1.7.2, codeMode w src/praisonai-ts/src/tools/builtins/code-mode.ts wykonuje niezaufany JavaScript za pomocą new Function() wewnątrz with(sandbox) i opiera się na małej blokliście kodu źródłowego oraz przesłoniętych właściwościach process i require. Kod może użyć ({}).constructor.constructor do odzyskania prawdziwego konstruktora Function, uzyskać process i process.mainModule.require oraz dotrzeć do API systemu plików i podprocesów hosta mimo reklamowanego sandboxa. Atakujący kontrolujący dane wejściowe codeMode mogą czytać sekrety, modyfikować pliki, wykonywać polecenia lub wyczerpać proces hosta.
- CVE-2026-52824Krytyczne
W Kimai przed wersją 2.58.0 oficjalny obraz Docker ustawia APP_SECRET na publiczną wartość change_this_to_something_unique w Dockerfile, a .docker/entrypoint.sh nie zastępuje ani nie odrzuca tej wartości, zanim Symfony użyje jej jako kernel.secret. Nieuwierzytelniony atakujący, który dotrze do wdrożenia bez nadpisania APP_SECRET, zna nazwę użytkownika, poprawnie odgadnie identyfikator konta powiązany z tą nazwą i wybierze konto bez aktywnego uwierzytelniania dwuskładnikowego, może sfałszować artefakty uwierzytelniania chronione HMAC, w tym ciasteczka KIMAI_REMEMBER i linki logowania, aby uzyskać dostęp do konta bez hasła. Zaktualizowany entrypoint generuje i utrwala losowy sekret, gdy nie istnieje bezpieczna wartość dostarczona przez operatora.
- CVE-2026-62379Krytyczne
W OpenAM w wersjach przed 16.1.2 endpoint pre-autoryzacji /authservice PLL przyjmuje element XML CustomCallback, którego wartość className pozwala na załadowanie i utworzenie dowolnej klasy Java bez weryfikacji, czy implementuje DSAMECallbackInterface. Domyślna konfiguracja udostępnia ten endpoint bez uwierzytelnienia, co umożliwia atakującemu wykonanie kodu w procesie serwera poprzez niebezpieczną deserializację. Włączenie opcji sunRemoteAuthSecurityEnabled nie zapobiega temu, ponieważ sprawdzenie następuje zbyt późno.
- CVE-2026-62263Krytyczne
W OpenAM w wersjach przed 16.1.2 metoda WebAuthnAuthentication.deserialize stosuje ObjectInputFilter, który zezwala na każdy serializowany obiekt na głębokości większej niż 1, ograniczając jedynie obiekt główny AuthenticatorImpl. Atakujący przed uwierzytelnieniem może dostarczyć userHandle, którego graf serializacji zawiera prawidłowy obiekt główny AuthenticatorImpl oraz zagnieżdżoną klasę gadget, powodując wykonanie readObject lub readResolve przed weryfikacją. Omija to niekompletną naprawę wcześniejszej podatności deserializacji WebAuthn.
- CVE-2026-48717Krytyczne
W OpenAM w wersjach przed 16.1.1 AuthorizationCodeGrantTypeHandler wymaga code_verifier tylko wtedy, gdy włączone jest ustawienie codeVerifierEnforced dla całego realm. Ponieważ ustawienie jest domyślnie wyłączone, atakujący, który przechwyci kod autoryzacyjny chroniony przez PKCE, może pominąć code_verifier i wymienić kod na token. Klienci publiczni są bezpośrednio narażeni, a wykorzystanie dla klientów poufnych wymaga dodatkowo materiału uwierzytelniającego klienta.
Oryginalny opis (angielski, źródło NVD)
flagd is a feature flag daemon with a Unix philosophy. Prior to 0.14.2, flagd exposes OFREP (/ofrep/v1/evaluate/...) and gRPC (evaluation.v1, evaluation.v2) endpoints for feature flag evaluation. These endpoints are designed to be publicly accessible by client applications. The evaluation context included in request payloads is read into memory without any size restriction. An attacker can send a single HTTP request with an arbitrarily large body, causing flagd to allocate a corresponding amount of memory. This leads to immediate memory exhaustion and process termination (e.g., OOMKill in Kubernetes environments). flagd does not natively enforce authentication on its evaluation endpoints. While operators may deploy flagd behind an authenticating reverse proxy or similar infrastructure, the endpoints themselves impose no access control by default. This vulnerability is fixed in 0.14.2.

