---
id: "CVE-2026-12993"
kind: "vulnerability"
aliases: ["CVE-2026-12993", "GHSA-748j-wm96-4wh5"]
title: "Apicurio Registry is vulnerable to denial of service through XML entity expansion"
severity: "medium"
cvss: 6.5
epss: 0.00519
exploited: false
status: "open"
category: "package"
products: [{"name": "io.apicurio:apicurio-registry-schema-util-xml", "fixed": ["3.3.1"], "affected": ">= 3.3.0, < 3.3.1", "ecosystem": "maven"}, {"name": "io.apicurio:apicurio-registry-schema-util-xml", "fixed": ["3.2.6"], "affected": "< 3.2.6", "ecosystem": "maven"}, {"name": "redhat build of apicurio registry", "fixed": [], "affected": ">= 3.0, <= 3.2", "ecosystem": "vendor"}]
ecosystems: ["maven", "vendor"]
tags: ["apicurio-registry", "cwe-776", "java", "maven", "package", "schema-registry"]
not_affected_if: ["no-xml-artifacts", "read-only-access"]
published_at: "2026-06-26T00:16:50+00:00"
first_seen_at: "2026-11-04T18:17:04+00:00"
updated_at: "2026-11-04T18:28:34+00:00"
sources: [{"source": "ghsa", "url": "https://github.com/advisories/GHSA-748j-wm96-4wh5", "first_seen_at": "2026-11-04T18:17:04+00:00"}, {"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-12993", "first_seen_at": "2026-11-04T18:28:34+00:00"}]
---

# Apicurio Registry is vulnerable to denial of service through XML entity expansion

Apicurio Registry's XML schema parser does not disable DOCTYPE declarations or secure processing, so crafted nested-entity XML can consume large amounts of CPU and heap. An attacker with artifact-write permission can make the registry slow or crash, though the JAXP default entity-expansion limit partly mitigates it.

_Summary, check and fix written by a model from the sources; labelled as such._

## Affected

- maven:io.apicurio:apicurio-registry-schema-util-xml affected >= 3.3.0, < 3.3.1 fixed 3.3.1
- maven:io.apicurio:apicurio-registry-schema-util-xml affected < 3.2.6 fixed 3.2.6
- vendor:redhat build of apicurio registry affected >= 3.0, <= 3.2 fixed ?

## How to check

- Check the version of `io.apicurio:apicurio-registry-schema-util-xml` in your build files (for example `mvn dependency:list` or your lockfile) and compare it to the fixed versions below.
- Confirm whether untrusted users can upload artifacts to the registry (artifact-write permission).

## Fix

- `io.apicurio:apicurio-registry-schema-util-xml` 3.3.x: move to `3.3.1`
- `io.apicurio:apicurio-registry-schema-util-xml` 3.2.x: move to `3.2.6`

## Timeline

- 2026-11-04T18:17:04+00:00 ghsa https://github.com/advisories/GHSA-748j-wm96-4wh5
- 2026-11-04T18:28:34+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-12993

## Documents

- [advisory] Vendor advisory: access.redhat.com https://access.redhat.com/security/cve/CVE-2026-12993
- [advisory] Vendor advisory: bugzilla.redhat.com https://bugzilla.redhat.com/show_bug.cgi?id=2491692
- [fix] Patch: github.com https://github.com/Apicurio/apicurio-registry/pull/8200
- [fix] Patch: github.com https://github.com/Apicurio/apicurio-registry/commit/03cd1cc081d9b1b4c8b9a59330ff4c980dc68b73
- [fix] Patch: github.com https://github.com/Apicurio/apicurio-registry/commit/48369d0e9008f7aab16dce5970c1ecbdd55e9aa5
- [fix] Release: github.com https://github.com/Apicurio/apicurio-registry/releases/tag/3.3.1
- [fix] Release: github.com https://github.com/Apicurio/apicurio-registry/releases/tag/v3.2.6

## From the sources

A flaw was found in Apicurio Registry. The DocumentBuilderAccessor correctly blocks external DTD and schema access but does not disable DOCTYPE declarations or enable FEATURE_SECURE_PROCESSING. An attacker with artifact-write permission can upload XML documents with internal entity-expansion payloads (billion-laughs variant) that cause CPU and heap exhaustion, partially mitigated by the JAXP default 64,000 entity-expansion limit.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
