CVE-2026-63720
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 35 - wyżej niż 35% wszystkich znanych CVE
Streszczenie
Narzędzie datamodel-code-generator przed wersją 0.70.0 zawiera podatność na wstrzykiwanie kodu. Atakujący kontrolujący schematy wejściowe może zdalnie wykonać kod, podając złośliwą wartość customBasePath z osadzonymi znakami nowej linii i wyrażeniem Pythona bez kropek. Wartość ta jest dosłownie wstawiana do wygenerowanej instrukcji 'from ... import ...' bez walidacji identyfikatorów, co powoduje wykonanie dowolnego kodu Pythona podczas importowania wygenerowanego modułu.
Ocena ryzyka
Ryzyko zdalnego wykonania kodu (RCE) na serwerach używających tego narzędzia do generowania kodu na podstawie schematów. Atakujący może przejąć kontrolę nad systemem.
Rekomendacja
Zaktualizuj datamodel-code-generator do wersji 0.70.0 lub nowszej. Nie używaj niezaufanych schematów wejściowych bez wcześniejszej walidacji.
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-54654Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
datamodel-code-generator prior to version 0.70.0 contains a code injection vulnerability that allows attackers who control input schemas to achieve remote code execution by supplying a malicious customBasePath value containing embedded newlines and a dot-free Python expression. The crafted value is emitted verbatim into a generated 'from ... import ...' statement without identifier validation, causing arbitrary Python code to execute when the generated module is imported.

