Home/ Blog/ Security news/ Article
Blog · Security news

Any domain user can now DCSync your forest. Certighost is why.

CVE-2026-54121 lets a standard Active Directory user impersonate a domain controller through AD CS and run DCSync. Patch, harden machine account quota, and

A signet ring stamping a certificate seal that opens a fortress gate

Active Directory Certificate Services was supposed to be the part of the domain you did not have to think about. Certificates get issued, machines authenticate, and the certification authority sits quietly in a corner. Certighost, disclosed publicly on July 24 by researchers H0j3n and Aniq Fakhrul as CVE-2026-54121, takes that quiet corner and turns it into the fastest path from a standard user account to total forest compromise. No admin rights. No phishing. No malware. Just a certificate request the CA trusts more than it should.

The mechanics are worth understanding, because the defensive lessons do not stop at "install the patch." AD CS carries an enrollment fallback the researchers call a "chase." When the CA cannot resolve the requester's identity locally, the enrollment protocol lets the request name which domain controller to ask (the cdc attribute) and which principal to resolve (rmd). The flaw is that the CA would reach out to that attacker-named host over SMB and LDAP and take its answers at face value, never confirming the host was actually a domain controller. Point cdc at a machine you control, answer the CA's lookups with a domain controller's SID and DNS name, and the CA signs that identity into a certificate it hands back to you.

From there the chain is textbook. The attacker uses the certificate for PKINIT authentication, receives a Kerberos ticket as the target domain controller, and, because DC accounts hold directory replication rights, runs DCSync to pull the krbtgt secret. Once you hold krbtgt, you can forge golden tickets for any principal in the domain, indefinitely. Microsoft rated it CVSS 8.8 and shipped the fix in the same July 14 update; the public proof of concept followed ten days later.

Certighost: report to public exploitMay 14: Reported. May 22: MS confirms. Jul 14: Patch ships. Jul 24: PoC public.Certighost: report to public exploitMay 14ReportedMay 22MS confirmsJul 14Patch shipsJul 24PoC public
CVE-2026-54121 disclosure timeline. The patch shipped July 14; a working proof of concept went public 10 days later.

The bug is patched. The blind spot is not.

Here is the part no advisory says out loud: Certighost did not create a new weakness so much as weaponize one most organizations were already living with. Certificate enrollment is telemetry almost nobody watches. Domain controller logons get scrutiny, privileged group changes get scrutiny, but a certificate request is treated as plumbing. That is why this class of AD CS abuse, from the ESC families onward, keeps landing: the CA is a trusted issuer of identity that operates outside the visibility most teams build around their DCs. The patch closes one door. The room it opens into stays dark unless you put a light in it.

That reframes the response. Patching CVE-2026-54121 on every enterprise CA is step one and it is not optional. But treat it as the start of a project, not the whole of it, because two things the July update does not solve will still be true next week.

Machine account quota is the precondition you control

The exploit needs a domain principal it controls to host the rogue LDAP and LSA services that feed the CA. It gets one by creating a machine account, which any authenticated user can do up to the ms-DS-MachineAccountQuota default of 10. That default is the enabling condition for a long list of AD attacks, and it is a lever you own independent of any vendor. Setting ms-DS-MachineAccountQuota to 0 and delegating machine-join to a specific service account removes the attacker's ability to stand up that rogue principal in the first place. It is not a substitute for the patch, and a sufficiently privileged foothold can work around it, but on a fleet where you cannot patch every CA in an afternoon it raises the floor everywhere at once.

Watch the CA, not just the DC

The instinct after a domain-controller-impersonation bug is to add detection on the domain controllers. For Certighost, the sharpest signal is one hop upstream, on the CA itself. The whole trick depends on the certification authority reaching out over SMB and LDAP to a host the attacker named. A CA legitimately talks to a small, known set of domain controllers and almost nothing else. So a CA initiating an outbound SMB or LDAP connection to an arbitrary, non-DC host is close to always anomalous, and it is a signal you can build without deep Windows internals. Pair it with three more:

  • Machine account creation by ordinary user accounts, especially clustered in time or preceding a certificate request.
  • Certificate issuance from the default Machine template where the subject identity does not match the requesting account.
  • Replication requests (directory DS-Replication-Get-Changes) originating from a host that is not a known domain controller, the on-DC tail of a successful DCSync.

None of these requires the exploit itself to be understood. They describe the shape of the attack, which is what survives when the next variant lands.

One patched CA is not "done"

The last trap is treating this as a single-host fix. Forests routinely run more than one enterprise CA, and the attack works against any that follows the vulnerable chase path, so partial coverage is no coverage. The pre-patch workaround, disabling the chase with certutil -setreg policy\EditFlags -EDITF_ENABLECHASECLIENTDC and restarting CertSvc, carries its own tail risk: on an unpatched CA that setting can be flipped back on by group policy or a well-meaning administrator, silently restoring exploitability. That makes CA certificate configuration a thing worth watching for drift, not a checkbox you tick once. If you run Windows domains under managed detection, the useful questions this week are whether every enterprise CA carries the July update, whether machine account quota is still sitting at 10, and whether anything is watching the CA's own outbound connections. Certighost is patched. The habits that made it easy are not.

Topics

Frequently asked questions

What is Certighost (CVE-2026-54121)?

Certighost is an Active Directory Certificate Services vulnerability, tracked as CVE-2026-54121 with a CVSS score of 8.8, that lets a low-privileged domain user impersonate a domain controller. The certification authority follows a requester-supplied host during an enrollment 'chase' without verifying it is a real domain controller, then issues a certificate carrying the DC's identity. Microsoft released a fix in its July 14, 2026 security updates.

Is CVE-2026-54121 being exploited in the wild?

As of the July 24, 2026 disclosure, no primary source had reported in-the-wild exploitation, but researchers H0j3n and Aniq Fakhrul published a full working proof of concept that automates the attack. Because functional exploit code is public and the patch shipped ten days earlier, unpatched enterprise certification authorities should be treated as exposed.

How do we fix and detect Certighost?

Install Microsoft's July 14 update on every enterprise CA, since a single unpatched CA that follows the vulnerable chase path is enough. As independent hardening, set ms-DS-MachineAccountQuota to 0 so ordinary users cannot create the machine account the exploit relies on. For detection, watch the CA for outbound SMB or LDAP connections to non-domain-controller hosts, machine account creation by standard users, certificate issuance where the subject does not match the requester, and directory replication requests from hosts that are not known domain controllers.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.