HIGH🇬🇧 English

CVE-2026-54690

SSRF w datamodel-code-generator poprzez nieblokowane zewnętrzne $ref

CVSS 8.2v3.1pub. 2026-07-28upd. 2026-08-06

Narzędzie datamodel-code-generator w wersjach od 0.9.1 do 0.61.0 jest podatne na SSRF — atakujący może skłonić aplikację do wykonania żądań HTTP/HTTPS do dowolnych serwerów poprzez osadzenie złośliwych URL-i w polach $ref schematu JSON. Podatność jest szczególnie groźna, ponieważ mechanizm blokowania zdalnych referencji (--allow-remote-refs) mógł jedynie ostrzegać zamiast faktycznie blokować zapytania.

Pokaż oryginał (EN)

datamodel-code-generator generates Pydantic v2 models, dataclasses, TypedDict, and msgspec.Struct from OpenAPI, JSON Schema, GraphQL, Avro, Protobuf, and raw JSON, YAML, or CSV. From 0.9.1 until 0.61.0, datamodel-code-generator silently dereferences attacker-controlled JSON Schema $ref HTTP or HTTPS URLs in src/datamodel_code_generator/parser/jsonschema.py through _get_ref_body, and the --allow-remote-refs gate can warn instead of blocking, allowing server-side request forgery through src/datamodel_code_generator/http.py. This issue is fixed in version 0.61.0.

🤖 Analiza AI
Jak działa

Podczas przetwarzania schematu JSON lub OpenAPI narzędzie automatycznie rozwiązuje referencje $ref wskazujące na zewnętrzne zasoby HTTP/HTTPS za pomocą funkcji _get_ref_body w pliku src/datamodel_code_generator/parser/jsonschema.py. Żądania sieciowe są realizowane przez moduł src/datamodel_code_generator/http.py. Flaga --allow-remote-refs, która powinna uniemożliwiać pobieranie zdalnych zasobów, w praktyce mogła jedynie generować ostrzeżenie, nie blokując faktycznego wykonania żądania. W ten sposób atakujący kontrolujący treść przetwarzanego schematu może wymusić na serwerze wykonującym generator wysyłanie żądań do dowolnych, w tym wewnętrznych, punktów końcowych.

Skutki

Atakujący może wykorzystać podatność do uzyskania dostępu do wewnętrznych zasobów sieciowych (np. usług chmurowych, metadanych instancji, wewnętrznych API), a tym samym do ujawnienia poufnych informacji. Możliwe jest również ograniczone wpływanie na integralność przez interakcję z wewnętrznymi usługami nienarażonymi bezpośrednio na internet.

Mitygacja

Należy zaktualizować datamodel-code-generator do wersji 0.61.0 lub nowszej. Patch dostępny jest w repozytorium projektu na GitHub (commit 5fdba4a09f2d7a9996a504975b7ef7d63e3715bb). Do czasu aktualizacji należy unikać przetwarzania schematów JSON/OpenAPI pochodzących z niezaufanych źródeł.

Kogo dotyczy

datamodel-code-generator w wersjach od 0.9.1 do 0.60.x (włącznie). Wersja 0.61.0 zawiera poprawkę.

Uwagi

Podatność dotyczy środowisk CI/CD oraz narzędzi deweloperskich przetwarzających zewnętrzne schematy — szczególnie narażone są systemy z dostępem do wewnętrznej infrastruktury sieciowej lub metadanych chmurowych.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:L/A:N
  • Koxudaxi Datamodel Code Generator

    APP
    Koxudaxi
    0.9.1 – 0.61.0 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
SSRF
CWE
Referencje

Powiązane podatności

CVE-2026-54653HIGH8.8PL ✓ten sam produkt

datamodel-code-generator: wstrzyknięcie kodu Python przez default_factory

CVE-2026-54656HIGH7.8PL ✓ten sam produkt

RCE w datamodel-code-generator poprzez niezabezpieczoną interpolację walidatorów

CVE-2026-55389HIGH7.5PL ✓ten sam produkt

Path traversal w datamodel-code-generator umożliwia odczyt dowolnych plików lokalnych

CVE-2026-55391HIGH7.5PL ✓ten sam produkt

SSRF przez DNS rebinding w datamodel-code-generator (przed 0.63.0)

CVE-2026-55415HIGH7.5PL ✓ten sam produkt

Code injection w datamodel-code-generator poprzez rozszerzenia schematu