fix: Scope ADCS host validation to exact Enterprise CAs BED-9336 - #3200
Merged
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Essentials Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
JonasBK
force-pushed
the
BED-9336-adcs-host-validation
branch
2 times, most recently
from
August 25, 2026 12:01
b2d7846 to
cbaa482
Compare
JonasBK
force-pushed
the
BED-9336-adcs-host-validation
branch
from
August 31, 2026 09:54
cbaa482 to
cbf81e6
Compare
cweidenkeller
approved these changes
Sep 2, 2026
JonasBK
force-pushed
the
BED-9336-adcs-host-validation
branch
from
September 3, 2026 06:44
cbf81e6 to
9659de0
Compare
JonasBK
force-pushed
the
BED-9336-adcs-host-validation
branch
from
September 3, 2026 07:46
9659de0 to
0ff8676
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR makes Enterprise CA host validation equivalent in ADCS edge creation and composition, and correlates every host with the exact Enterprise CA selected by a candidate path.
A qualifying host must:
Computerconnected to the selectedEnterpriseCAbyHostsCAService.enabled = true.domainsid.Composition candidates are staged by Enterprise CA. A candidate is added only when that exact CA has a qualifying host, and only qualifying
HostsCAServicepaths for that CA are returned.This prevents a valid host for CA A from preserving composition paths belonging to an unhosted, disabled-hosted, or cross-forest-hosted CA B.
The behavior applies to ESC1, ESC3, ESC4, ESC6, existing ESC9 composition, ESC10, ESC13, ADCS NTLM relay, and GoldenCert creation and composition. ESC3 requires qualifying hosts for both its CT1 publisher CA and target CA.
Stack
BED-9336-adcs-trust-pathsBED-9336-adcs-host-validationmain.Commit review order
fix: include HostsCAService paths in ADCS compositions BED-9336fix: require qualifying hosts for ESC3 CAs BED-9336fix: scope ADCS host validation to exact CAs BED-9336refactor: share ADCS CA enrollment traversal BED-9336fix: validate GoldenCert hosts consistently BED-9336Motivation and Context
Resolves BED-9336
Creation required an enabled and, when resolvable, in-forest CA host. Composition previously accepted any
Computer-[:HostsCAService]->EnterpriseCArelationship and validated all materialized CA alternatives collectively.One valid hosted CA could therefore keep the composition nonempty while it still contained alternatives through invalid CAs. Composition also omitted a relationship required by creation.
This PR establishes the invariant that every returned CA candidate is justified by a qualifying host path for that same CA.
How Has This Been Tested?
The final stack passed:
just prepare-for-codereviewFocused coverage includes enabled, disabled, cross-forest, unresolved-domain, and mixed-host scenarios; the unresolved-CA-forest fallback; error propagation; multi-CA composition isolation; GoldenCert host filtering; and affected ADCS compositions requiring
HostsCAService.Screenshots (optional):
N/A — backend graph analysis only.
Types of changes
Checklist: