Vulnerability · Published Oct 13, 2026 · Assigned by GitHub_M
CVE-2026-108376dataclasses-avroschema allows code injection through record names in generated default factories
High 8.8
In plain English
A high-severity code injection in dataclasses-avroschema from marcosschroh. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 42% of all known vulnerabilities).
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.
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| marcosschroh | dataclasses-avroschema | >= 0.47.3, < 0.70.6 |
Weakness: CWE-94 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
References
- https://github.com/marcosschroh/dataclasses-avroschema/security/advisories/GHSA-jcjg-gjg5-xp7v x_refsource_CONFIRM
- https://github.com/marcosschroh/dataclasses-avroschema/commit/429f3d705d2d04c0c65e2ef832daed5ff91318fc x_refsource_MISC
- https://github.com/marcosschroh/dataclasses-avroschema/releases/tag/0.70.6 x_refsource_MISC
- https://hackmd.io/@1ExmmukzRMWN7B4gQ4W-4Q/cve-2026-110113-publiccms-trade-address-save-cross-user-overwrite exploit