🟢GHSA-r7wm-3cxj-wff9

Přehled

Toto oznámení se týká známé bezpečnostní chyby zjištěné v závislosti třetí strany používané v rámci DPGW.

Podrobnosti o zranitelnosti

  • CVE ID: Žádné přiřazené (upozornění GitHubu GHSA-r7wm-3cxj-wff9; CWE-770, Přidělování zdrojů bez omezení nebo regulace)
  • Název závislosti: com.fasterxml.jackson.core:jackson-core
  • Ovlivněná verze závislosti: < 2.18.8, 2.19.0 – 2.21.3 a 2.22.0 (opraveno ve verzích 2.18.8 / 2.21.4 / 2.22.1). Větev DPGW 1.12 obsahovala verzi 2.21.3, která spadá do dotčeného rozsahu.
  • Skóre závažnosti: 8.7 High (CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N)

Verze DPGW ovlivňující verze závislostí

  • <= 1.12.51-REL (větev 1.12 deklaruje jackson-core jako přímou, explicitně zafixovanou závislost a obsahuje zranitelnou verzi 2.21.3)

jackson-core je přímo spravován v souboru POM pouze ve větvi 1.12; v ostatních udržovaných větvích je načítán transitivně. Toto oznámení se týká větve 1.12, kde byla tato závislost explicitně zahrnuta do balíčku a nyní byla aktualizována.

Posouzení rizik a použitelnosti

Použití
DPGW používá jako primární knihovnu pro práci s JSON Google Gson; pro vlastní zpracování JSON nepoužívá Jackson a neobsahuje žádné přímé odkazy na streamovací API Jacksonu. jackson-core je přítomen pouze jako transitivní závislost — především prostřednictvím com.auth0:java-jwt (analýza JWT, která využívá blokující ObjectMapper na kompletním řetězci tokenu v paměti) a Azure Storage SDK (které serializuje pomocí azure-json, nikoli Jackson streaming). Ve větvi 1.12 je jackson-core navíc pevně přiřazen jako přímá spravovaná závislost, aby bylo možné kontrolovat vyřešenou verzi.

Analýza
GHSA-r7wm-3cxj-wff9 představuje neúplnou opravu předchozího bezpečnostního upozornění (GHSA-72hv-8253-57qq). Asynchronní streamovací parser Jacksonu, který neblokuje, nedokáže vynutit nastavený limit maxNumberLength (výchozí hodnota 1000), pokud se celočíselné číslice hodnoty JSON přenášejí v několika vstupních blocích bez ukončovacího bajtu. Útočník, který streamuje dlouhou řadu číslic v malých blocích, může donutit parser, aby akumuloval znaky až do limitu maxStringLength (výchozí hodnota 20 MiB) — což představuje přibližně 20 000násobné překročení nastaveného limitu délky čísla — a tím způsobit vyčerpání paměti (denial of service).

K zranitelné části kódu se lze dostat pouze prostřednictvím neblokujícího parseru — JsonFactory.createNonBlockingByteArrayParser() / createNonBlockingByteBufferParser() (NonBlockingJsonParser) — kterému musí být explicitně předán vstup v blocích, obvykle z reaktivního / neblokujícího streamovacího řetězce.

DPGW nikdy nevytváří instanci neblokujícího parseru: v celém kódu se nikde přímo nepoužívá Jackson a neexistuje žádný reaktivní řetězec, který by do asynchronního parseru Jacksonu přiváděl bajty po částech. Jediná komponenta, která skutečně parsuje JSON pomocí Jacksonu (java-jwt), používá standardní blokující parser na plně vyrovnávaném řetězci v paměti, na který se tento problém nevztahuje. Zranitelná část kódu je proto v DPGW nedosažitelná.

Stav
Neovlivněno

Dopad na DPGW

Žádný dopad. Tato zranitelnost se týká pouze neblokujícího asynchronního parseru knihovny Jackson, který DPGW nepoužívá. Artefakt jackson-core je vždy využíván pouze prostřednictvím blokujícího, plně vyrovnávaného parsování transitivními spotřebiteli, takže k vyčerpání paměti nemůže dojít.

Náprava a zmírnění dopadů

Plánovaná oprava
Ačkoli DPGW není touto chybou dotčeno, byla zranitelná verze závislosti z verze 1.12 odstraněna z preventivních důvodů: jackson-core byl aktualizován z verze 2.21.3 na 2.21.5 (commit d4c148f506, 23. 7. 2026). Tato změna bude zahrnuta v příštím vydání verze 1.12:
– 1.12.52-REL — obsahuje balíček jackson-core 2.21.5

Akce uživatele
Není nutná žádná akce ze strany uživatele.