HIGH🇬🇧 English

CVE-2026-54653

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

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

Biblioteka datamodel-code-generator w wersjach od 0.17.0 do 0.60.1 pozwala na wstrzyknięcie i wykonanie dowolnego kodu Python poprzez niezaufane wartości default_factory osadzone w generowanych modelach. Podatność jest szczególnie niebezpieczna w środowiskach automatycznie przetwarzających schematy JSON/OpenAPI pochodzące z zewnętrznych źródeł.

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.17.0 until 0.60.2, datamodel-code-generator preserves attacker-controlled default_factory values in src/datamodel_code_generator/parser/jsonschema.py through JsonSchemaObject.init and get_field_extras and emits them into Field(default_factory=...) or field(default_factory=...), allowing Python expression execution when the generated model is imported. This issue is fixed in version 0.60.2.

🤖 Analiza AI
Jak działa

Biblioteka przetwarza wejściowe schematy (np. OpenAPI, JSON Schema) i generuje na ich podstawie kod Python. Funkcje JsonSchemaObject.init oraz get_field_extras w pliku src/datamodel_code_generator/parser/jsonschema.py przepuszczają kontrolowane przez atakującego wartości pola default_factory bezpośrednio do wygenerowanego kodu, wstawiając je jako argumenty Field(default_factory=...) lub field(default_factory=...). Złośliwe wyrażenia Python osadzone w ten sposób w wygenerowanym modelu są wykonywane automatycznie w momencie importowania wygenerowanego pliku.

Skutki

Atakujący dostarczający spreparowany schemat może doprowadzić do wykonania dowolnego kodu Python (RCE) w środowisku, które importuje wygenerowany model — co może skutkować pełnym przejęciem kontroli nad procesem, wyciekiem danych lub naruszeniem integralności systemu.

Mitygacja

Należy zaktualizować datamodel-code-generator do wersji 0.60.2, w której błąd został naprawiony (commit 17fc235e234cbcfaaadef8c74cb72c9687db0d1d). Do czasu aktualizacji należy przetwarzać wyłącznie schematy pochodzące z zaufanych źródeł.

Kogo dotyczy

datamodel-code-generator w wersjach od 0.17.0 do 0.60.1 włącznie

Uwagi

Poprawka dostępna w wersji 0.60.2 wydanej jako release na GitHub. Publiczny proof-of-concept dostępny pod adresem wskazanym w referencjach (gist.github.com/thegr1ffyn).

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

    APP
    Koxudaxi
    0.17.0 – 0.60.2 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

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

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

CVE-2026-54690HIGH8.2PL ✓ten sam produkt

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

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