CVE-2026-17039: Pki-core: dogtag-pki: redhat-pki: pki-core: ca renewal request processing omits realm authorization check performed by enrollment path
A flaw was found in pki-core. In the Dogtag/pki-core Certificate Authority (CA) profile framework, the certificate enrollment path (EnrollmentProcessor) calls AuthzSubsystem.checkRealm() to verify that the calling principal is authorized to act within the request's configured realm before the request is submitted. The certificate renewal path (RenewalProcessor), which is reachable from the same public REST endpoint (caProfileSubmit, and the legacy v1/CertRequestDAO and ProfileSubmitServlet entry points) and is selected purely by a client-controlled 'isRenewal' flag in the posted request body, runs the same populate-then-submit sequence and stamps the same realm onto the request via the shared AuthzRealmDefault policy default, but never calls checkRealm. As a result, a caller who is only entitled in realm A can submit a renewal naming the serial number of a certificate originally issued under realm B; the renewal request is repopulated with realm B and submitted to realm B's request queue without realm B's authorization manager ever being consulted. This was dynamically reproduced end-to-end in an isolated sandbox: an identity with zero entitlement to a configured realm, freshly confirmed denied on the equivalent enrollment call, successfully renewed another user's certificate in that realm via a single authenticated request, with checkRealm never invoked. Direct testing established the practical impact is narrower than a realm-authorization bypass might suggest: the resulting certificate's content is already retrievable by any unauthenticated caller via the product's own intended read API, confirmed both same-host and across a genuine cross-container network boundary (no net-new confidentiality exposure); no private key material is ever exposed (no impersonation path); and the victim's own certificate and their own ability to renew it are both completely unaffected (no denial-of-service capability via revocation, side-effects, or resource exhaustion -- all tested directly). Attack Complexity is assessed High because exploitability additionally requires a non-default, supported deployment configuration (a realm-mapped authorization manager, the multi-realm/delegated-CA deployment mode), per Red Hat's documented CVSS scoring practice for configuration-dependent flaws. This affects the Dogtag PKI CA codebase across all current Red Hat package names for it: pki-core (RHEL 6-9, Certificate System 9), dogtag-pki (RHEL 10, RHIVOS 2, Fedora), and redhat-pki (Certificate System 10/11) -- the same missing checkRealm call was independently confirmed present in EnrollmentProcessor and absent from RenewalProcessor at the exact upstream versions shipped as dogtag-pki 11.9.0 and redhat-pki 11.10.0, not merely inferred from shared upstream provenance. Git history analysis shows the gap was introduced by omission in commit e2de26769761af04b9c56071bd1a1926903c49b6 (2016-05-09), which added the realm check only to EnrollmentProcessor roughly 63 hours after a separate commit had modified both EnrollmentProcessor and RenewalProcessor symmetrically at the same code location -- indicating an oversight rather than an intentional design decision.
Other sources
A flaw was found in pki-core. The certificate authority (CA) renewal request path does not perform the realm-based authorization check that the enrollment path performs, allowing an authenticated user entitled to one realm to cause a certificate belonging to a different realm to be renewed without that realm's authorization.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pki-core (Dogtag/pki-core Certificate Authority CA profile framework)to a version that resolves this vulnerability.Fixed in 11.10.0 - Upgrade
Upgrade
dogtag-pkito a version that resolves this vulnerability.Fixed in 11.9.0 - Configuration
Add the missing realm-based authorization check to the renewal request processing path (RenewalProcessor) so it performs AuthzSubsystem.checkRealm() like EnrollmentProcessor before populate-then-submit and before realm is used for request submission.
pki-core RenewalProcessor AuthzSubsystem.checkRealm() realm authorization check = enabled
Event History
Frequently Asked Questions
What is the severity of CVE-2026-17039?
CVE-2026-17039 has a severity rating of low, specifically rated at 3.1.
What does CVE-2026-17039 affect?
CVE-2026-17039 affects the pki-core and redhat-pki software components within the Dogtag Certificate Authority framework.
How do I fix CVE-2026-17039?
To resolve CVE-2026-17039, it's recommended to apply the latest updates provided by Red Hat for the affected pki-core and redhat-pki software packages.
What is the impact of CVE-2026-17039?
The impact of CVE-2026-17039 revolves around the lack of realm authorization checks in certificate renewal request processing, potentially allowing unauthorized access.
Is there a known workaround for CVE-2026-17039?
Currently, there are no official workarounds for CVE-2026-17039; updating to a fixed version is the best approach.