dataclasses-avroschema: Code injection via fixed type aliases in code generator
Summary
dataclasses-avroschema generates Python code from Avro schemas. In versions 0.38.0 through 0.70.5, a bare string passed as the aliases value of an Avro fixed type is written unquoted into the generated types.confixed annotation. Python evaluates this expression when the generated module is imported, so a crafted schema can run arbitrary code. The CVSS vector rates the attack as network-reachable with user interaction, but the flaw is not in a network-facing service; the risk lies in the schema supply chain.
Affected
- dataclasses-avroschema from 0.38.0 through 0.70.5 (CVE record and GitHub advisory; a third-party aggregator lists a different range, which is unverified)
Fixed in
- Version 0.70.6, which rejects aliases values that are not lists
Workaround
- Supply aliases as a list, as the Avro specification requires; this only helps if you control the schemas
- Do not run the code generator on schemas from untrusted sources and review generated modules before importing them
Exploitation
- No evidence of exploitation in the wild found; CISA SSVC lists exploitation as none and automatable as no
- The GitHub advisory contains a proof of concept section; no independent public exploit was found
Our recommendation
- Check whether dataclasses-avroschema is installed, including as a transitive dependency
- Upgrade to 0.70.6 or later where the code generator is used
- Restrict who can publish or change Avro schemas and review generated code before import
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-8j5c-xq6f-2c43 github.com
- Vendor release 0.70.6 github.com
- Fix commit referenced in CVE record github.com
- OSV entry CVE-2026-108384 osv.dev
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 31 Oct 2026, 19:44.
Original description (NVD)
dataclasses-avroschema generates Avro schemas from Python dataclasses, Pydantic models, and Faust Records and generates Python code from Avro schemas. From version 0.38.0 through 0.70.5, BaseGenerator.parse_fixed interpolates a fixed type's aliases value directly into a generated types.confixed annotation. A list is represented with quoted entries, but a bare string is emitted as an unquoted Python expression and evaluated when the generated module is imported, allowing arbitrary code execution from a crafted schema. Version 0.70.6 fixes the vulnerability by rejecting aliases values that are not lists.
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
