IT SBIT Services
Schneeberger
DEEN
CVE tracker

dataclasses-avroschema: Code injection via fixed type aliases in code generator

CVE-2026-108384High 8.8

← All vulnerabilities

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

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.

NVD references (3)

Sources

The tracker combines official, freely usable data sources – updated continuously:

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.