Skip to content

Private Windows build authority omits compiler search inputs and reads mutable Cargo source #488

Description

@pawellisowski

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions