CVE-2026-54690 datamodel-code-generator vulnerable to SSRF via JSON-Schema `$ref` to HTTP URL (silent by default)
Attackers can trigger server-side request forgery by providing malicious JSON Schema references, potentially accessing internal resources during code generation.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- A user has to click or open something
- Fix
- Available
What is CVE-2026-54690?
CVE-2026-54690 is a high-severity server-side request forgery vulnerability in koxudaxi datamodel-code-generator, published on 28 Jul 2026. An attacker can exploit it over the internet without logging in, and only if a user opens a file or follows a link.
Official description
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.
Weakness: CWE-918
Which versions are affected by CVE-2026-54690?
3 open source packages ship an affected version, including datamodel-code-generator. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
datamodel-code-generator PyPI | From 0.9.1 | 0.61.0 |
datamodel-code-generator PyPI | From 0.9.1 | 0.61.0 |
datamodel-code-generator PyPI | From 0.9.1 | 0.61.0 |
Products include Koxudaxi Datamodel-Code-Generator.
How do I fix CVE-2026-54690?
Upgrade datamodel-code-generator to 0.61.0 or later.
Upgrade, and send outbound requests through an allow-list that blocks internal addresses. More about Server-side request forgery.
Is CVE-2026-54690 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-54690 exists.
Other vulnerabilities in koxudaxi datamodel-code-generator
- CVE-2026-54653 `datamodel-code-generator` vulnerable to code injection in via attacker-controlled `default_factory` schema field
- CVE-2026-54656 `datamodel-code-generator` vulnerable to code execution on import via unescaped `validators` entries in --extra-template-data
- CVE-2026-55389 datamodel-code-generator vulnerable to arbitrary local file read via JSON-Schema `$ref` (`file://` and `../` traversal), bypassing `--no-allow-remote-refs`
- CVE-2026-55391 datamodel-code-generator vulnerable to SSRF protection bypass via DNS rebinding
- CVE-2026-55415 datamodel-code-generator vulnerable to code injection via `x-python-import` / `customTypePath` in generated import statements
Sources
Also known as GHSA-954p-556p-r752, MINI-qxhx-gfp6-hjpr, PYSEC-2026-3560.