CVE-2026-119286
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
W GraphQL-core od wersji 3.3.0a3 do 3.3.1 funkcja validate() ponownie używa modułowego wyjątku ValidationAbortedError, gdy dokument przekracza max_errors. Python dołącza ramki do tracebacku tego samego wyjątku przy każdym podniesieniu, co powoduje zatrzymywanie dokumentów, kontekstów walidacji i zestawów błędów przez cały czas życia procesu.
Ocena ryzyka
Nieuwierzytelniony klient może wielokrotnie przesyłać mały dokument z ponad 100 błędami walidacji, powodując nieograniczony wzrost zużycia pamięci i ostatecznie wyczerpanie pamięci procesu roboczego.
Rekomendacja
Zaktualizuj GraphQL-core do wersji 3.3.1 lub nowszej. Do czasu aktualizacji rozważ ograniczenie liczby błędów walidacji lub monitorowanie zużycia pamięci.
Inne podatności w GraphQL-core
Zobacz wszystkie- CVE-2026-75508Wysokie
W GraphQL-core od wersji 3.2.3 do 3.2.12 i 3.3.0rc1 limit max_tokens parsera zlicza tylko tokeny niebędące komentarzami zwracane po pominięciu komentarzy przez Lexer.lookahead. Każdy pominięty komentarz jest nadal alokowany jako Token i zachowywany przez token.next i token.prev, więc dokument GraphQL wypełniony komentarzami może przejść niski limit tokenów, zużywając pamięć.
- CVE-2026-75507Wysokie
Biblioteka GraphQL-core w wersjach od 3.0.0 do 3.2.12 (oraz 3.3.0rc1) zawiera podatność na wyczerpanie zasobów (CPU) podczas walidacji zapytań. Reguła OverlappingFieldsCanBeMerged wielokrotnie porównuje pola o tych samych nazwach odpowiedzi i rekurencyjnie przetwarza spłaszczone fragmenty inline, co pozwala zagnieżdżonym powtórzonym fragmentom wywołać kwadratowe, a w najgorszym przypadku O(n²·m²) obciążenie CPU przed uruchomieniem jakiejkolwiek kontroli głębokości lub złożoności. Nieuwierzytelniony zdalny atakujący może wysłać płytkie, silnie kompresowalne zapytanie GraphQL, które zablokuje proces roboczy i przeciąży usługę wieloprocesową.
Oryginalny opis (angielski, źródło NVD)
GraphQL-core is a Python port of the GraphQL.js reference implementation. From 3.3.0a3 until 3.3.1, validate() reuses a module-level ValidationAbortedError when a document exceeds max_errors. Python appends frames to the reused exception's traceback on every raise, retaining each document, validation context, and error set for the process lifetime. An unauthenticated client can repeatedly submit a small document with more than 100 validation errors to cause unbounded memory growth before query execution, eventually exhausting worker memory without disclosing or modifying data. This issue is fixed in version 3.3.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

