Fedora Account System
Red Hat Associate
Red Hat Customer
A flaw was found in Dogtag PKI (pki-core). The CMCAuthForEST authentication plugin fails open when an EST fullcmc enrollment request is submitted via BasicAuth without an end-user TLS client certificate. In this scenario, the SSL_CLIENT_CERT session attribute retains the EST subsystem's own agent certificate instead of being replaced by the end-user's certificate. The parent CMCAuth.verifySignerInfo() then compares the CMC signer's Subject DN against this agent certificate using DER byte comparison, which passes if the attacker crafts a self-signed certificate with a DER-matching Subject DN. The signer certificate's trust chain is not validated — verifySignerInfo() only verifies the CMC message signature against the bundled signer cert's own public key, which trivially passes since the attacker possesses the corresponding private key. Since CMCAuthForEST overrides authenticateCAUser() to skip CA user database verification, and RAHeaderClientCertSubjectNameConstraint sees the agent certificate in SSL_CLIENT_CERT and allows any subject name for agents, the CA issues a valid certificate with the attacker's requested arbitrary subject. An authenticated EST user with BasicAuth credentials can exploit this to obtain CA-signed certificates impersonating any entity.