CVE-2026-107377 datamodel-code-generator: Protobuf weak-import path traversal allows files to be written outside the temporary directory
Attacker-controlled Protobuf schemas can write files outside the temporary directory, potentially overwriting existing files with syntax declarations.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-107377?
CVE-2026-107377 is a high-severity path traversal vulnerability in datamodel-code-generator, published on 8 Oct 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
datamodel-code-generator generates Python data models from schema definitions. From 0.59.0 until 0.81.0, an attacker-controlled Protobuf schema can supply absolute or parent-directory paths captured by WEAK_IMPORT_PATTERN and consumed by _write_missing_weak_imports in src/datamodel_code_generator/parser/protobuf.py. Exploitation requires a victim or automated job to process the attacker-controlled schema with Protobuf input support, which requires the grpcio-tools package. The paths escape the weak_imports temporary directory before protoc runs, allowing creation of directory trees and new files or overwrite of existing writable files with a generated Protobuf syntax declaration. The effect persists when later Protobuf compilation fails. The written content is limited to a proto2 or proto3 syntax declaration, and direct arbitrary code execution has not been demonstrated. This issue is fixed in version 0.81.0.
Which versions are affected by CVE-2026-107377?
3 open source packages ship an affected version, including datamodel-code-generator.
| Package | Affected | Fixed in |
|---|---|---|
datamodel-code-generator PyPI | From 0.59.0 | 0.81.0 |
datamodel-code-generator PyPI | From 0.59.0 | 0.81.0 |
datamodel-code-generator PyPI | From 0.59.0 | 0.81.0 |
Linux distribution packages (1)
python-datamodel-code-generator openSUSE:Tumbleweed | All versions | 0.83.0-1.1 |
How do I fix CVE-2026-107377?
Upgrade datamodel-code-generator to 0.81.0 or later.
Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.
Is CVE-2026-107377 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-107377 exists.
Sources
Also known as ECHO-b8c0-0024-5488, GHSA-77xj-x4rm-935c, PYSEC-2026-4205, UBUNTU-CVE-2026-107377, openSUSE-SU-2026:12096-1.