The private Windows builder accepts a changed compiler search environment without changing its canonical build authority. This reproduces on integration commit 8e2d1a8, tree 418f4dce816bd4f7e70c059d684bfb614020f904.
Repro: generate a valid aware-windows-repro-builder/v1 manifest and its local locator. Call exported verifyBuildAuthority({manifest, locator, env:{}}). Clone only the locator, replace its environment PATH, INCLUDE, LIB, and LIBPATH, and call the function again. Both calls return the same verified authority. controlledEnvironment subsequently forwards those unbound locations to Cargo/MSVC. No compiler execution or unauthorized input modification was necessary for this authority-validation probe.
Observed: named executable hashes and dependency inventories bind to the build ID, but compiler headers, import libraries, loader dependencies, and search order do not. The local Rust tools also point to rustup shims, so hashing those files alone does not identify the actual compiler/sysroot.
Expected: logical compiler/search inputs and their complete relevant file inventories bind to the manifest; builds execute verified private copies using direct compiler binaries. Original cache changes after verification must not affect the build: Cargo currently reads the original verified vendor root, while npm already uses a verified private materialization.
Related existing review findings: #480 (comment) and #480 (comment). Separate from #487, which covers physical vendor path leakage and byte inequality. Work is continuing on PR #480; no signing or promotion has occurred.
The private Windows builder accepts a changed compiler search environment without changing its canonical build authority. This reproduces on integration commit 8e2d1a8, tree 418f4dce816bd4f7e70c059d684bfb614020f904.
Repro: generate a valid
aware-windows-repro-builder/v1manifest and its local locator. Call exportedverifyBuildAuthority({manifest, locator, env:{}}). Clone only the locator, replace its environmentPATH,INCLUDE,LIB, andLIBPATH, and call the function again. Both calls return the same verified authority.controlledEnvironmentsubsequently forwards those unbound locations to Cargo/MSVC. No compiler execution or unauthorized input modification was necessary for this authority-validation probe.Observed: named executable hashes and dependency inventories bind to the build ID, but compiler headers, import libraries, loader dependencies, and search order do not. The local Rust tools also point to rustup shims, so hashing those files alone does not identify the actual compiler/sysroot.
Expected: logical compiler/search inputs and their complete relevant file inventories bind to the manifest; builds execute verified private copies using direct compiler binaries. Original cache changes after verification must not affect the build: Cargo currently reads the original verified vendor root, while npm already uses a verified private materialization.
Related existing review findings: #480 (comment) and #480 (comment). Separate from #487, which covers physical vendor path leakage and byte inequality. Work is continuing on PR #480; no signing or promotion has occurred.