{"id":"CVE-2026-12975","kind":"vulnerability","aliases":["CVE-2026-12975","GHSA-7g64-f2hm-vjxp"],"related":[],"title":"Apicurio Registry utilities allow SSRF and denial of service through XML parsing","description":"A flaw was found in Apicurio Registry. The ContentTypeUtil.isParsableXml() method creates a SAXParserFactory without enabling secure processing features or disabling external entity resolution. An attacker with artifact-write permission (or unauthenticated when the registry runs with default configuration) can upload a crafted XML document to trigger blind server-side request forgery (SSRF) via external DTD/entity fetch, or cause denial of service via entity expansion.","summary":"Apicurio Registry's XML content-type check parses uploaded documents without disabling external entity resolution. An attacker can upload a crafted XML file to make the server fetch an external address (blind SSRF) or exhaust resources through entity expansion.","severity":"high","cvss":8.5,"epss":0.00437,"exploited":false,"exploited_at":null,"products":[{"name":"io.apicurio:apicurio-registry-schema-util-common","fixed":["3.3.1"],"affected":">= 3.3.0, < 3.3.1","ecosystem":"maven"},{"name":"io.apicurio:apicurio-registry-schema-util-common","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","cwe-611","java","maven","package","schema-registry"],"not_affected_if":["auth-required","xml-uploads-disabled"],"how_to_check":"- Check the version of `io.apicurio:apicurio-registry-schema-util-common` in your build file or dependency tree against the affected ranges.\n- Look for Apicurio Registry deployments and note whether artifact upload is open to unauthenticated users (the advisory says default configuration allows it).","fix":"- `io.apicurio:apicurio-registry-schema-util-common` 3.3.x: move to `3.3.1`\n- `io.apicurio:apicurio-registry-schema-util-common` 3.2.x and earlier: move to `3.2.6`","status":"open","published_at":"2026-06-25T22:17:00+00:00","first_seen_at":"2026-11-04T17:51:22+00:00","triaged_at":"2026-11-04T17:51:54+00:00","updated_at":"2026-11-04T17:58:19+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-04T17:51:54Z","model":"claude-haiku-5-5","output":{"fix":"- `io.apicurio:apicurio-registry-schema-util-common` 3.3.x: move to `3.3.1`\n- `io.apicurio:apicurio-registry-schema-util-common` 3.2.x and earlier: move to `3.2.6`","reach":"internet","title":"Apicurio Registry: XML parsing lets uploads trigger server-side requests and denial of service","impact":"medium","summary":"Apicurio Registry's XML content-type check parses uploaded documents without disabling external entity resolution. An attacker can upload a crafted XML file to make the server fetch an external address (blind SSRF) or exhaust resources through entity expansion.","audience":"developers","category":"package","nicknames":[],"who_cares":["apicurio","java","maven","schema-registry"],"confidence":0.7,"fix_status":"available","needs_auth":"unknown","worst_case":"Server makes outbound requests or resources are exhausted by crafted XML","analyst_note":"","how_to_check":"- Check the version of `io.apicurio:apicurio-registry-schema-util-common` in your build file or dependency tree against the affected ranges.\n- Look for Apicurio Registry deployments and note whether artifact upload is open to unauthenticated users (the advisory says default configuration allows it).","plain_action":"","needs_analyst":false,"not_affected_if":["xml-uploads-disabled","auth-required"],"who_is_affected":"Teams that embed or run Apicurio Registry's schema utilities, especially where XML artifacts can be uploaded to a registry running with default configuration. An attacker with artifact-write permission, or unauthenticated access when the registry uses default settings, can trigger the flaw. Deployments that do not accept XML uploads or that restrict artifact writes to trusted users are at lower risk.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000764,"input_tokens":4355,"output_tokens":656,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-12975':15A,23A '-2026':14A,22A '-611':45B '7g64':18A 'address':83B 'allow':4A 'apicurio':1A,26A,33A,41A,43B,52B,97C 'apicurio-registry-schema-util-common':25A,32A 'artifact':119C 'artifact-writ':118C 'attack':69B,116C 'blind':84B,139C 'build':39A 'caus':151C 'check':59B 'common':30A,37A 'configur':130C 'content':57B 'content-typ':56B 'contenttypeutil.isparsablexml':100C 'craft':73B,134C 'creat':102C 'cve':13A,21A 'cwe':44B 'default':129C 'denial':7A,152C 'disabl':64B,111C 'document':62B,136C 'dtd/entity':148C 'enabl':106C 'entiti':66B,90B,113C,156C 'exhaust':87B 'expans':91B,157C 'extern':65B,82B,112C,147C 'f2hm':19A 'featur':109C 'fetch':80B,149C 'file':75B 'flaw':93C 'forgeri':144C 'found':95C 'ghsa':17A 'ghsa-7g64-f2hm-vjxp':16A 'io.apicurio':24A,31A 'java':46B 'make':77B 'maven':47B 'method':101C 'of':40A 'packag':48B 'pars':12A,60B 'permiss':121C 'process':108C 'redhat':38A 'registri':2A,51B,53B,98C,126C 'registry':27A,34A,42A 'request':143C 'resolut':67B,114C 'resourc':88B 'run':127C 'saxparserfactori':104C 'schema':28A,35A,50B 'schema-registri':49B 'secur':107C 'server':79B,141C 'server-sid':140C 'servic':9A,154C 'side':142C 'ssrf':5A,85B,145C 'trigger':138C 'type':58B 'unauthent':123C 'upload':61B,71B,132C 'util':3A,29A,36A 'via':146C,155C 'vjxp':20A 'without':63B,105C 'write':120C 'xml':11A,55B,74B,135C","nicknames":[],"mitigations":[],"who_affected":"Teams that embed or run Apicurio Registry's schema utilities, especially where XML artifacts can be uploaded to a registry running with default configuration. An attacker with artifact-write permission, or unauthenticated access when the registry uses default settings, can trigger the flaw. Deployments that do not accept XML uploads or that restrict artifact writes to trusted users are at lower risk.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":["buildofapicurioregistry","ioapicurioapicurioregistryschemautilcommon","redhatbuildofapicurioregistry"],"ptokens":["apicurio","build","common","io","of","redhat","registry","schema","util"],"labels":["apicurio","cwe611","high","java","maven","package","schemaregistry","vendor"],"campaign_type":null,"first_public_at":"2026-06-25T22:17:00+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:H","cvss_by":"GitHub","poc_count":0,"sources":[{"source":"ghsa","external_id":"GHSA-7g64-f2hm-vjxp","url":"https://github.com/advisories/GHSA-7g64-f2hm-vjxp","severity":"high","published_at":"2026-06-26T00:32:05+00:00","modified_at":"2026-11-04T17:49:19+00:00","first_seen_at":"2026-11-04T17:51:22+00:00","fetched_at":"2026-11-04T18:11:56+00:00","note":null},{"source":"nvd","external_id":"CVE-2026-12975","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-12975","severity":null,"published_at":"2026-06-25T22:17:00+00:00","modified_at":"2026-10-25T22:10:00+00:00","first_seen_at":"2026-11-04T17:58:19+00:00","fetched_at":"2026-11-04T17:58:19+00:00","note":null}],"documents":[{"id":69015,"url":"https://github.com/Apicurio/apicurio-registry/pull/8197","title":"Patch: github.com","kind":"other","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":69016,"url":"https://github.com/Apicurio/apicurio-registry/commit/48369d0e9008f7aab16dce5970c1ecbdd55e9aa5","title":"Patch: github.com","kind":"other","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":69017,"url":"https://github.com/Apicurio/apicurio-registry/commit/a744fcb65991bbf04d4882f888655112afc5b06a","title":"Patch: github.com","kind":"other","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":69018,"url":"https://github.com/Apicurio/apicurio-registry/releases/tag/3.2.6","title":"Release: github.com","kind":"release","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release: github.com"},{"id":69019,"url":"https://github.com/Apicurio/apicurio-registry/releases/tag/3.3.1","title":"Release: github.com","kind":"release","source":"ghsa","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release: github.com"},{"id":69098,"url":"https://access.redhat.com/security/cve/CVE-2026-12975","title":"Vendor advisory: access.redhat.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Vendor advisory: access.redhat.com"},{"id":69099,"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2491688","title":"Vendor advisory: bugzilla.redhat.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Vendor advisory: bugzilla.redhat.com"},{"id":69100,"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-12975.json","title":"Vendor advisory: security.access.redhat.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Vendor advisory: security.access.redhat.com"}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}