CVE-2026-108376 dataclasses-avroschema allows code injection through record names in generated default factories
Attackers can execute arbitrary Python code by crafting malicious Avro schema record names that are injected into generated default factories.
- 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
- None listed
What is CVE-2026-108376?
CVE-2026-108376 is a high-severity code injection vulnerability in marcosschroh dataclasses-avroschema, published on 13 Oct 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
dataclasses-avroschema generates Avro schemas from Python dataclasses, Pydantic models, and Faust Records and generates Python code from Avro schemas. From version 0.47.3 through 0.70.5, FieldRepresentation.get_field_default inserts a schema-controlled referenced record name into the callable position of a generated default_factory lambda without validating it as an Avro name. A crafted record name can become an arbitrary Python expression that executes when an instance of the generated model consumes the field default. Version 0.70.6 fixes the vulnerability by rejecting record names that do not match the Avro name grammar.
Weakness: CWE-94
Which versions are affected by CVE-2026-108376?
How do I fix CVE-2026-108376?
No fix has been published for CVE-2026-108376 yet. Limit exposure of the affected software until one is available.
Upgrade, and never evaluate templates, expressions or code built from user input. More about Code injection.
Is CVE-2026-108376 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-108376 exists.
Sources
Also known as GHSA-jcjg-gjg5-xp7v.