Repository navigation
test: add offline eMudhra Linux host trust check - #9879
Merged
Merged
Conversation
Contributor
Windows Unit Test Results 3 files 18 suites 1m 3s ⏱️ Results for commit 68a991a. ♻️ This comment has been updated with latest results. |
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Live Windows PowerShell 5.1 and remote VHD validation remain pending for mandatory checks that can block image release jobs.
No open issues 🎉
What changed in this PR
Adds offline eMudhra host trust checks to AgentBaker’s Linux and Windows VHD content tests, without changing trust stores or node provisioning.
Changes:
- Rejects emSign ECC Root CA - G3 and AAA Certificate Services roots, using DigiCert Global Root G2 as a read-control.
- Adds ShellSpec and Pester coverage for root detection, missing trust data, and read failures.
- Documents the conservative root-removal policy and its host-only scope.
| File | Description |
|---|---|
vhdbuilder/packer/test/windows-vhd-content-test.tests.ps1 |
Tests installed and cached root checks with mocked Windows stores. |
vhdbuilder/packer/test/windows-vhd-content-test.ps1 |
Gates content tests on installed roots and the cached AuthRoot list. |
vhdbuilder/packer/test/linux-vhd-content-test.sh |
Checks CA bundles before test setup can upgrade packages. |
vhdbuilder/packer/README.md |
Explains the policy, scope, and limitations. |
spec/vhdbuilder/packer/test/linux_vhd_content_test_helpers_spec.sh |
Tests Linux root detection and missing or unreadable bundles. |
Review effort: Balanced
Check Linux CA bundles and Windows installed/cached roots before accepting a VHD. Require a positive control and fail on the two signing roots or unreadable trust data. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 685d2bf4-2f4b-4b28-8841-a476cf1672ef
Cameron Meissner (cameronmeissner)
approved these changes
Oct 28, 2026
Remove the Windows AuthRoot-cache assertion and its tests as requested. The tested Windows images do not have EncodedCtl, so that assertion could not establish a trust verdict. Remove the requested README section. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 685d2bf4-2f4b-4b28-8841-a476cf1672ef
Artur Khantimirov (r2k1)
force-pushed
the
r2k1-emudhra-certificate-tests
branch
from
October 28, 2026 22:44
f26d0c6 to
68a991a
Compare
Contributor
Contributor
|
Artur Khantimirov (r2k1)
enabled auto-merge (squash)
October 28, 2026 22:48
Cameron Meissner (cameronmeissner)
approved these changes
Oct 28, 2026
Contributor
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
What this PR does / why we need it:
Summary
Add an offline eMudhra root-removal check to the existing Linux VHD content test, before test setup can update CA packages.
The change adds 48 lines across two files: 20 script lines and 28 ShellSpec lines. Scope is Linux host trust only. It does not inspect components, containers, or custom CA stores, and it does not modify trust stores.
Removed the earlier Windows check and README section as requested. Windows images lacked the registry-cached
EncodedCtl; that check failed before reaching a trust verdict. This PR no longer adds Windows certificate coverage.Evidence
mainat48e4c052f2. Published head:68a991a94b0d2b207a2f7d60bcdc2506b31ba7ac.shellspec --shell bash spec/vhdbuilder/packer/test/linux_vhd_content_test_helpers_spec.sh spec/vhdbuilder/packer/test/run_test_spec.sh spec/vhdbuilder/packer/trivy_scan_spec.sh: passed, 68 examples after rebase.pwsh -NoLogo -NoProfile -Command 'function global:curl.exe { "127.0.0.1" }; Import-Module Pester -RequiredVersion 5.7.1; $c = New-PesterConfiguration; $c.Run.Path = "./vhdbuilder/packer/test/windows-vhd-content-test.tests.ps1", "./vhdbuilder/packer/test/windows-files-check.tests.ps1"; $c.Run.Exit = $true; Invoke-Pester -Configuration $c': passed, 12 tests after rebase, with Windows operations mocked on macOS. This is not native Windows validation.git diff --check: passed. Windows files and README matchmain.f47ae7ff6f10b05bc305c7c03068bfa017176283for this head. All 12 image jobs and all 12Test, Scan, and Cleanuptasks passed. Log 562 confirms Run Command used the current Linux content script and reachedTest Script Completedafter the mandatory root check.AzureLinuxV3_CustomCArejected an unexpected iptables rule with eBPF host routing enabled;Ubuntu2204_SecondaryNIC_DualStackcould not resolve the secondary NIC interface name. Neither failure is the eMudhra root-removal assertion. Their underlying causes and flake status are not established.Merge Danger
Door: two-way; revert the added check.
Blast Radius: CI.
This conservative root-removal policy can block an image that another mechanism already protects, such as an intermediate blocklist or revocation. It covers both signing-root paths, including AAA, but does not perform full chain verification or prove protection for application-specific trust stores.
Which issue(s) this PR fixes:
N/A. Related advisory: GO-2026-6809.