CVE-2026-107377 datamodel-code-generator: Protobuf weak-import path traversal allows files to be written outside the temporary directory

High 7.5 Published Updated

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.

Weakness: CWE-73, CWE-22

Which versions are affected by CVE-2026-107377?

3 open source packages ship an affected version, including datamodel-code-generator.

PackageAffectedFixed in
datamodel-code-generator PyPIFrom 0.59.00.81.0
datamodel-code-generator PyPIFrom 0.59.00.81.0
datamodel-code-generator PyPIFrom 0.59.00.81.0
Linux distribution packages (1)
python-datamodel-code-generator openSUSE:TumbleweedAll versions0.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.

Is CVE-2026-107377 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free