Computing · Provenance
The trick that broke C2PA
A valid manifest that said nothing: how a standard feature allowed signing the void — and what it teaches us.
Author: Juan Carlos Euyoque Aguilera · October 7, 2026 · CC BY 4.0
C2PA (Coalition for Content Provenance and Authenticity) is the industry standard for content credentials: signed manifests declaring who created a file and what edits it went through. On October 2, 2026, David Buchanan publicly demonstrated a structural hole in the standard.
This page summarizes the episode with linked sources; nothing here reproduces the original blog's content.
What happened [DATA]
- [DATA] The standard allows declaring byte ranges excluded from the hash (meant for legitimate cases like thumbnails or metadata). Nothing prevented excluding the entire file: Buchanan signed a manifest excluding 3,995,383 bytes — the whole file.
- [DATA] The resulting signed hash is the SHA-256 of the empty input. The RFC 3161 timestamp remained valid. Result: a "proof" of prior knowledge (EuroMillions numbers) passing every verification while saying nothing about any file.
- [DATA] The issue had been known since June 2025 (Neal Krawetz listed it as "Large exclusion range") and was still unmitigated in October 2026.
Source: David Buchanan, "How to Hack Time, With C2PA" (Oct 2, 2026).
The fix on the table [DATA]
Buchanan proposed the obvious, correct thing: explicit, per-format lists of which ranges may be excluded — enforced by verifiers, not declared by the signer. The principle: the verifier must know what is allowed, not just what was declared.
[MYTH] C2PA tells you whether an image is real.
C2PA binds provenance claims to a file; it does not say whether the content is true. And with this hole, not even the claim was guaranteed: the signature was valid over nothing.
Why it matters to us
- [DATA] Layer 1 of the Método Origen hashes the content bytes: there is no manifest between the hash and the file, no exclusions. This failure mode does not exist by construction — forging it would require breaking SHA-256, not exploiting a spec feature.
- [DATA] The episode made us read our own verifier as adversaries, and we found a soft spot: it warned about unregistered files without failing. It is already on the method's hardening list.
Honest caveats
- It does not absolve our layer 3: public OpenTimestamps calendars are third parties, and that dependency stands — hence the plan for our own calendar.
- Different scopes: C2PA binds authorship and edits; Origen binds existence and integrity. We do less, but without the hole.
- The fix may land: if C2PA adopts explicit lists, the contrast weakens. We say this today, by construction — not as eternal superiority.
- We are not looking for war: a claims standard can coexist with a minimal anchoring layer beneath it. We could even anchor the bytes of someone else's C2PA manifest.
Sources: Buchanan (Oct 2026) · c2pa.org (the standard's site).
Mathvsmyth