Database/Control plane, storage & DevOps
go-witness: AWS attestor accepts unsigned or forged EC2 instance identity documents
Impact
The AWS attestor in go-witness treats verification as successful when the instance identity document carries no signature or an empty one, and when RSA verification outright fails. Anything downstream that trusts a witness attestation to prove "this build ran on this EC2 instance in this account" can be fed a forged document - for example by impersonating the Instance Metadata Service - and will record the forged provenance as verified. For an operator whose image or model-artifact promotion gates on witness attestations, that is a supply-chain admission check that can be talked into saying yes, and the artifact it blesses then lands on GPU nodes. The attestor also pins a single legacy global AWS public certificate and does not know about the region-specific certificates issued in 2024, so even a correctly implemented check has no trust material for many regions.
Who can reach it
An attacker who can supply or intercept the instance identity document seen by the attestor - IMDS impersonation on the build host, or control of the data path feeding verification. No authentication to the witness tooling itself is needed; network position or code execution in the attesting environment is.
What to do
Upgrade go-witness to 0.9.1 or later and the witness CLI to 0.10.1 or later, then rebuild and redeploy whatever embeds them (CI runner images, policy verifiers, admission webhooks) - this is a dependency bump and a redeploy of the attestation tooling, not a node-level action. Until then, the advisory's workaround is to disable the AWS attestor, or verify the identity document, signature and AWS region certificate out of band with standard tooling per AWS's published guidance. Attestations already produced by a vulnerable version should be treated as unproven rather than trusted retroactively.
References
Related entries
- OneUptime: password reset tokens written to INFO logs allow account takeover from log accessCVE-2026-32598 · OneUptime (password reset flow, INFO-level logging of reset URL)Medium
- Terragrunt: malicious module manifest deletes files outside the module cache during cleanupCVE-2026-45099 · Terragrunt (module cache cleanup, .terragrunt-module-manifest path handling)Medium
- Inspektor Gadget: crafted ld.so.cache in a container stalls the container-start hook cluster-wideCVE-2026-53941 · Inspektor Gadget (uprobe ld.so.cache parser, pkg/uprobetracer)Medium
- Renovate: minimumReleaseAge is not applied to digest updates, so fresh dependency digests reach CI earlyCVE-2026-88884 · Renovate (minimumReleaseAge enforcement for digest updates)Medium
- Schneider Electric StruxureWare Data Center Expert before 7.4.0: Passwords held in cleartext in RAM on the DCIMCVE-2017-8371 · Schneider Electric StruxureWare Data Center Expert before 7.4.0Medium
- RPMB protocol message authentication subsystem in Intel TXE before 4.0.30 (replay-protected memory block)CVE-2020-12355 · RPMB protocol message authentication subsystem in Intel TXE before 4.0.30 (replay-protected memory block)Medium
This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.