The 2023 in-toto security audit examined the Python and Go implementations and the specification. Witness was not directly audited. This response records how TestifySec considered the findings for Witness; it is not an independent audit of Witness or a statement that every proposed mitigation shipped.

What the audit found

X41 D-Sec conducted the review, coordinated by OSTIF with CNCF funding. The audit announcement and report describe eight security findings: one high, four medium, and three low severity. The in-toto project response explains their scope and the maintainers’ decisions.

Several findings concern the assumptions a verifier makes: which file properties are covered, whether metadata can be reused, which configuration is authoritative, and whether the process producing a statement is trustworthy.

TestifySec’s response at the time

Our June 2023 Witness tracking issue proposed work on file metadata, configuration capture, policy freshness, reuse of evidence, and isolation from the build process. It also recorded the decision not to support PGP in Witness.

Those were proposals. The issue and this article do not establish delivery in a particular release. The planned Omnitrail container and Archivista/TUF integration must not be read as current product capabilities.

Corrections that matter for implementation

File contents and file attributes are different claims. A digest of file contents does not necessarily cover permissions or other filesystem metadata. The file metadata advisory discusses packaging or separately inspecting attributes that matter to a deployment. Untrusted configuration can change what is observed. The original article repeated the file-metadata advisory identifier for this separate finding. The correct configuration advisory is GHSA-wc64-c5rv-32pf. It describes how a local configuration file could alter recording behavior in the affected Python implementation. A signing identity does not establish machine integrity. Our original response overstated what Sigstore and SPIRE key providers could establish. Attributing a statement to a principal does not prove that the principal’s machine, observation process, or report was trustworthy. Verification policy must account for the evidence producer and the environment in which it ran. Freshness and reuse need explicit rules. A correctly signed record can still refer to the wrong artifact, execution, or policy version. Decide which reuse is intended and bind the acceptance decision to the required context.

Working with Witness today

Use the Witness documentation and the release notes for Witness and go-witness to assess the version you deploy. Reproduce both accepted and rejected cases for your policy.

For TestifySec’s commercial system, the trust architecture describes the current product boundaries. The historical audit does not certify CI/lock, Pushgate, or the platform.