CVE-2026-107377 · GHSA-77xj-x4rm-935c
datamodel-code-generator: Protobuf weak-import path traversal allows files to be written outside the temporary directory
- Risk score
- 68/100
- CVSS
- 7.5 v3.1
- Exploit chance (30 days)
- 0.5%
- Published
- 8 Oct 2026
Open in the live forecast Today's forecast
What to know
- What it is
- 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. E…
- Affected
- datamodel-code-generator (pip) >= 0.59.0, <= 0.80.0
- Fix
- Upgrade datamodel-code-generator to 0.81.0 or later.
- Exploitation
- Public proof of concept
Why it is Amber
- CVSS 7.5 high
- Public exploit or proof of concept referenced
- Remotely exploitable without logging in
- On your watchlist: PyPI
Affected packages
| Package | Ecosystem | Vulnerable | Fixed in |
|---|---|---|---|
| datamodel-code-generator | pip | >= 0.59.0, <= 0.80.0 | 0.81.0 |
References
- https://github.com/advisories/GHSA-77xj-x4rm-935c
- https://github.com/datamodel-code-generator/datamodel-code-generator/security/advisories/GHSA-77xj-x4rm-935c
- https://github.com/datamodel-code-generator/datamodel-code-generator/commit/5e94b8f4203198798ec66b8e48217f70af69a0dc
- https://github.com/datamodel-code-generator/datamodel-code-generator/releases/tag/0.81.0
- https://github.com/advisories/GHSA-77xj-x4rm-935c
Original 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.
Last activity 8 Oct 2026. Patch Forecast updates every hour.