CVE-2026-54654
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 4 - wyżej niż 4% wszystkich znanych CVE
Streszczenie
Narzędzie datamodel-code-generator w wersjach od 0.14.1 do 0.60.2 renderuje pole komentarza z --extra-template-data w komentarzach Python bez neutralizowania znaków powrotu karetki, co pozwala na wstrzyknięcie kodu Python do wygenerowanych modeli.
Ocena ryzyka
Atakujący może wstrzyknąć złośliwy kod Python, który zostanie wykonany podczas importu modelu, co prowadzi do zdalnego wykonania kodu.
Rekomendacja
Zaktualizuj datamodel-code-generator do wersji 0.60.2 lub nowszej.
Inne podatności w datamodel-code-generator
Zobacz wszystkie- CVE-2026-55415Wysokie
W datamodel-code-generator od wersji 0.11.6 do 0.64.0, rozszerzenia schematu x-python-import lub customTypePath kontrolowane przez atakującego mogą dotrzeć do parsera JSON Schema i wygenerować importy, które pozwalają na wstrzyknięcie nowej linii do instrukcji importu i wykonanie kodu Python podczas importowania wygenerowanego modelu.
- CVE-2026-55403Niskie
W narzędziu datamodel-code-generator przed wersją 0.63.0 funkcja get_body ponownie używa nagłówków Authorization, Cookie i Proxy-Authorization podczas podążania za przekierowaniami między domenami przy pobieraniu zdalnych schematów, co może prowadzić do wycieku poświadczeń do zewnętrznych serwerów. Problem został naprawiony w wersji 0.63.0.
- CVE-2026-55391Wysokie
W datamodel-code-generator przed wersją 0.63.0, walidacja hosta URL w http.py sprawdza go raz, ale potem pozwala httpx na ponowne rozpoznanie hosta dla połączenia, co umożliwia ponowne wiązanie DNS w celu ominięcia ustawienia allow_private_network=False i dotarcia do wewnętrznych usług.
- CVE-2026-55390Wysokie
W datamodel-code-generator od wersji 0.59.0 do 0.62.0, parsowanie schematu XML dla --input-file-type xmlschema rozwiązuje wartości schemaLocation w xs:include, xs:import, xs:redefine i xs:override poza ścieżką bazową wejścia, co pozwala na odczyt dowolnych lokalnych plików i odzwierciedlenie ich w wygenerowanych modelach.
- CVE-2026-55389Wysokie
Narzędzie datamodel-code-generator przed wersją 0.62.0 nieprawidłowo obsługuje referencje JSON Schema $ref, umożliwiając odczyt dowolnych plików lokalnych. Podatność występuje w parserze jsonschema.py, który nie blokuje ścieżek typu file:// ani ../ wykraczających poza katalog wejściowy.
- CVE-2026-54691Wysokie
Narzędzie datamodel-code-generator w wersjach od 0.9.1 do 0.61.0 nie waliduje hostów/IP w celach URL i przekierowań, co umożliwia atak SSRF (Server-Side Request Forgery) na zasoby wewnętrzne. Podatność znajduje się w funkcji http.get_body.
- CVE-2026-54690Wysokie
Narzędzie datamodel-code-generator w wersjach od 0.9.1 do 0.61.0 automatycznie dereferencjonuje referencje JSON Schema $ref z HTTP/HTTPS bez odpowiedniego blokowania, co umożliwia atak SSRF. Opcja --allow-remote-refs tylko ostrzega zamiast blokować.
- CVE-2026-54656Wysokie
Narzędzie datamodel-code-generator w wersjach od 0.52.1 do 0.60.2 interpoluje walidatory z parametru --extra-template-data bez bezpiecznej walidacji, co pozwala na wykonanie kodu Python po zaimportowaniu wygenerowanego modelu Pydantic v2.
- CVE-2026-54655Wysokie
Narzędzie datamodel-code-generator w wersjach od 0.51.0 do 0.60.2 wstawia wartości x-python-type do adnotacji pól bez wystarczającej walidacji, co umożliwia wykonanie kodu Python po zaimportowaniu wygenerowanego modułu.
- CVE-2026-54653Wysokie
Narzędzie datamodel-code-generator w wersjach od 0.17.0 do 0.60.2 zachowuje kontrolowane przez atakującego wartości default_factory i emituje je do Field(default_factory=...), co pozwala na wykonanie wyrażeń Python po zaimportowaniu modelu.
Oryginalny opis (angielski, źródło NVD)
datamodel-code-generator generates Python data models from schema definitions. From 0.14.1 until 0.60.2, the --extra-template-data comment field is rendered into Python comments in src/datamodel_code_generator/model/template/TypeAliasAnnotation.jinja2, src/datamodel_code_generator/model/template/TypedDict.jinja2, src/datamodel_code_generator/model/template/dataclass.jinja2, src/datamodel_code_generator/model/template/msgspec.Struct.jinja2, src/datamodel_code_generator/model/template/pydantic/BaseModel.jinja2, and src/datamodel_code_generator/model/template/pydantic_v2/BaseModel.jinja2 without neutralizing carriage returns in Python # comments, allowing an attacker-controlled comment value to inject Python code into generated models that runs when imported. This issue is fixed in version 0.60.2.

