CVE-2026-92681
KrytyczneCVSS 9.3Streszczenie
W pakiecie @neo4j/graphql w wersjach do 7.6.3 włącznie dyrektywy @authentication stosowane na poziomie schematu lub na typach Query/Mutation są po cichu ignorowane dla pól najwyższego poziomu oznaczonych @cypher. Egzekwowane są tylko dyrektywy @authentication umieszczone bezpośrednio na poszczególnych polach. Aplikacja wystawiająca pole @cypher najwyższego poziomu i polegająca na ochronie na poziomie schematu lub typu pozwala nieuwierzytelnionym wywołującym uruchomić skonfigurowane zapytanie Cypher z uprawnieniami konta usługi GraphQL, co może umożliwić odczyt i modyfikację danych. Poprawiono w 7.6.4.
Ocena ryzyka
Nieuwierzytelnieni użytkownicy mogą wywoływać chronione pola i wykonywać operacje na danych z uprawnieniami konta usługi. Może to prowadzić do wycieku lub modyfikacji danych bez autoryzacji.
Rekomendacja
Należy zaktualizować @neo4j/graphql do wersji 7.6.4 lub nowszej. Dodatkowo zaleca się zweryfikowanie, czy dyrektywy @authentication są umieszczone bezpośrednio na polach @cypher, oraz audyt uprawnień konta usługi GraphQL.
Inne podatności w @neo4j/graphql
Zobacz wszystkie- CVE-2026-92682Wysokie
W @neo4j/graphql w wersjach od 7.0.0 do 7.6.4, kwantyfikator none w filtrach @authorization na relacjach i połączeniach nie jest negowany podczas tłumaczenia na Cypher, więc zachowuje się jak some. Reguła taka jak "żaden z powiązanych zabronionych użytkowników nie pasuje do podmiotu JWT" zwraca dokładnie rekordy, które miała wykluczyć, i wyklucza te, które miała zwrócić. Uwierzytelniony użytkownik, którego taka reguła ma odrzucić, może odczytać chronione rekordy. Dotyczy to również mutacji, więc wrażliwe dane mogą być tworzone i usuwane przez użytkowników, którzy nie powinni mieć do nich dostępu zgodnie z typedefs. Naprawiono w 7.6.4.
- CVE-2026-19869Wysokie
@neo4j/graphql od wersji 5.2.0 do wersji przed poprawką nie egzekwuje reguł autoryzacji na poziomie pól dla niestandardowych resolverów, gdy na tym samym typie operacji istnieje również reguła na poziomie typu. Reguła na poziomie pola jest ignorowana, co pozwala klientowi spełniającemu słabszą regułę na wywołanie bardziej restrykcyjnego pola.
- CVE-2026-5423Wysokie
Biblioteka @neo4j/graphql w wersjach przed 7.5.6 nie weryfikuje autentyczności dostarczonego przez klienta, wstępnie zdekodowanego obiektu JWT przekazywanego przez GraphQL subscription connectionParams. W rezultacie każdy nieuwierzytelniony zdalny klient, który może otworzyć połączenie GraphQL-over-WebSocket, może sfałszować dowolne roszczenia JWT (np. sub, roles) w connectionParams.jwt i mieć je zaakceptowane jako tożsamość uwierzytelnioną dla oceny dyrektyw @authentication i @subscriptionsAuthorization. Umożliwia to nieuwierzytelnionemu atakującemu otrzymywanie zdarzeń subskrypcji, które powinny być ograniczone do określonych uwierzytelnionych ról/użytkowników. Zalecane jest uaktualnienie do wersji 7.5.6+ lub 5.12.14+.
Oryginalny opis (angielski, źródło NVD)
In @neo4j/graphql versions up to and including 7.6.3, @authentication directives applied at the schema level or on the Query or Mutation types are silently ignored for top-level fields annotated with @cypher. Only @authentication directives placed directly on the individual fields are enforced. An application that exposes a top-level @cypher field and relies on schema-level or type-level @authentication to protect it allows unauthenticated callers to invoke the field and run the configured Cypher statement with the privileges of the GraphQL service account, which may permit reading and modifying data. Fixed in 7.6.4.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

