
Co znajdziesz w tym artykule?
Wprowadzenie do problemu / definicja
LangGraph, otwartoźródłowy framework wykorzystywany do budowy stanowych i wieloagentowych aplikacji AI, został dotknięty serią podatności, które w określonych warunkach mogą doprowadzić do przejęcia kontroli nad serwerem. Problem dotyczy przede wszystkim wdrożeń self-hostowanych, w których wykorzystywane są lokalne mechanizmy checkpointingu oparte na SQLite lub Redis.
Najpoważniejszy scenariusz obejmuje połączenie błędu SQL Injection z niebezpieczną deserializacją danych. Taki łańcuch może finalnie skutkować zdalnym wykonaniem kodu, co w przypadku agentów AI oznacza ryzyko przejęcia nie tylko samej aplikacji, ale również jej uprawnień, sekretów i dostępu do systemów zaplecza.
W skrócie
- Ujawniono trzy podatności wpływające na ekosystem LangGraph.
- Najgroźniejszy scenariusz dotyczy środowisk self-hostowanych i może prowadzić do RCE.
- Atak wymaga spełnienia określonych warunków, w tym użycia podatnych mechanizmów checkpointów oraz możliwości dostarczenia kontrolowanych danych wejściowych.
- Problem nie obejmuje zarządzanych wdrożeń hostowanych przez dostawcę.
- Dostępne są już poprawki bezpieczeństwa i ich szybkie wdrożenie powinno być priorytetem.
Kontekst / historia
Opisane luki obejmują trzy różne klasy błędów. CVE-2025-67644 dotyczy implementacji checkpointów SQLite i umożliwia manipulowanie zapytaniami SQL za pomocą odpowiednio przygotowanych kluczy filtrów metadanych. CVE-2026-28277 wiąże się z niebezpieczną deserializacją danych msgpack podczas ładowania checkpointów. Z kolei CVE-2026-27022 dotyczy wstrzyknięcia zapytań RediSearch w komponencie checkpointów Redis i może prowadzić do obejścia kontroli dostępu.
Znaczenie tych podatności rośnie w kontekście współczesnych agentów AI. Takie systemy często operują z szerokim zakresem uprawnień, mają dostęp do interfejsów API, baz danych, pamięci kontekstowej, narzędzi wykonawczych i sekretów środowiskowych. W efekcie nawet klasyczne błędy aplikacyjne stają się wyjątkowo niebezpieczne, ponieważ kompromitacja pojedynczego komponentu może przełożyć się na przejęcie całego procesu wykonawczego agenta.
Analiza techniczna
Najbardziej niebezpieczny scenariusz bazuje na połączeniu CVE-2025-67644 oraz CVE-2026-28277. Do ataku może dojść wtedy, gdy aplikacja udostępnia funkcję pobierania historii stanu, a napastnik jest w stanie wpłynąć na parametry filtrujące używane przy odczycie checkpointów.
Mechanizm ataku przebiega wieloetapowo. Najpierw atakujący przygotowuje złośliwy ładunek w formacie msgpack, który zawiera dane mogące doprowadzić do odtworzenia obiektu lub uruchomienia niepożądanej logiki podczas deserializacji. Następnie wykorzystuje SQL Injection do spreparowania wyniku zapytania w taki sposób, aby aplikacja otrzymała fałszywy rekord checkpointu. W tym rekordzie pole przechowujące dane serializowane zawiera kontrolowany przez napastnika blob. W momencie przetworzenia odpowiedzi i uruchomienia procedury deserializacji aktywowany zostaje drugi błąd, umożliwiający wykonanie dostarczonego kodu.
Kluczowe znaczenie mają tutaj trzy elementy. Po pierwsze, warstwa trwałości stanu bywa traktowana jako zaufane źródło danych, co sprzyja podatnościom deserializacyjnym. Po drugie, filtrowanie po metadanych checkpointów może stać się wektorem wejścia dla SQL Injection lub query injection. Po trzecie, agenty AI często działają w środowiskach o podwyższonym poziomie zaufania, więc skutki udanego ataku mogą wykraczać daleko poza samo wykonanie kodu.
W przypadku Redis zagrożenie ma nieco inny charakter. CVE-2026-27022 pozwala manipulować zapytaniami RediSearch, co może prowadzić do obejścia ograniczeń dostępu do checkpointów. Choć taki błąd nie musi samodzielnie prowadzić do RCE, może stać się ważnym elementem bardziej rozbudowanego łańcucha ataku.
Konsekwencje / ryzyko
Dla organizacji korzystających z LangGraph w modelu self-hosted ryzyko należy uznać za istotne. Podatności dotykają bowiem komponentów odpowiedzialnych za stan aplikacji i obsługę danych, które często są uznawane za wewnętrzne lub zaufane.
- zdalne wykonanie kodu na serwerze aplikacyjnym,
- kradzież sekretów środowiskowych i poświadczeń,
- dostęp do systemów osiągalnych z poziomu runtime agenta,
- modyfikację logiki działania agentów i workflow,
- utratę integralności pamięci konwersacyjnej oraz danych operacyjnych,
- dalszy ruch boczny w sieci wewnętrznej.
W praktyce oznacza to, że nawet częściowo ograniczona podatność w warstwie checkpointów może prowadzić do pełnej kompromitacji środowiska. Szczególnie niebezpieczne są wdrożenia, w których agenty mają bezpośredni dostęp do baz danych, systemów CI/CD, repozytoriów kodu, narzędzi administracyjnych lub usług chmurowych.
Rekomendacje
Najważniejszym krokiem powinno być niezwłoczne wdrożenie poprawek bezpieczeństwa dla wszystkich podatnych komponentów LangGraph i powiązanych modułów checkpointingu. Równolegle organizacje powinny przeanalizować ekspozycję endpointów odpowiedzialnych za odczyt historii stanu oraz wszystkich funkcji operujących na metadanych checkpointów.
- zaktualizować
langgraph-checkpoint-sqlitedo wersji 3.0.1 lub nowszej, - zaktualizować
langgraphdo wersji 1.0.10 lub nowszej, - zaktualizować
@langchain/langgraph-checkpoint-redisdo wersji 1.0.1 lub nowszej, - ograniczyć lub wyłączyć publiczną ekspozycję endpointów typu
get_state_history()i podobnych funkcji diagnostycznych, - wymusić silne uwierzytelnianie i autoryzację dla interfejsów zarządzających stanem aplikacji,
- traktować warstwę checkpointów jako źródło danych nie w pełni zaufane,
- unikać deserializacji złożonych obiektów bez jawnej walidacji i bezpiecznych schematów danych,
- stosować segmentację sieci oraz separację środowisk wykonawczych agentów,
- minimalizować uprawnienia procesów agentowych zgodnie z zasadą najmniejszych uprawnień,
- ograniczać dostęp agentów do sekretów długoterminowych i stosować krótkotrwałe poświadczenia,
- monitorować anomalie w zapytaniach do SQLite, Redis i RediSearch,
- prowadzić rejestr oraz audyt wszystkich operacji na checkpointach.
Z perspektywy bezpieczeństwa aplikacje agentowe powinny być traktowane jak systemy uprzywilejowane. Oznacza to konieczność stosowania twardszego hardeningu, izolacji kontenerów, kontroli ruchu wychodzącego oraz monitorowania zachowań procesów AI na poziomie wykonawczym.
Podsumowanie
Incydent wokół LangGraph pokazuje, że klasyczne podatności aplikacyjne nie tracą na znaczeniu w erze AI, lecz zyskują nowy wymiar ryzyka. Połączenie SQL Injection, błędów w warstwie trwałości oraz niebezpiecznej deserializacji może w środowiskach self-hostowanych doprowadzić do pełnego przejęcia agenta i serwera.
Dla organizacji wdrażających agentowe systemy AI kluczowe pozostają szybkie aktualizacje, ograniczenie ekspozycji interfejsów, bezpieczna obsługa danych stanu oraz ścisła kontrola uprawnień i sekretów. To kolejny sygnał, że bezpieczeństwo agentów AI powinno być projektowane i egzekwowane z taką samą rygorystycznością jak bezpieczeństwo systemów uprzywilejowanych.
Źródła
- https://thehackernews.com/2026/06/langgraph-flaw-chain-exposes-self.html
- https://research.checkpoint.com/
- https://blog.checkpoint.com/
- https://reference.langchain.com/
- https://www.langchain.com/