Technology

Provenance

Pointer provenance describes the legitimate origin and derivation of authority to access memory.

For
Developers, architects and assurance professionals
Last reviewed
2026-08-05
Review cycle
Review every 6 months

Why it matters

This blocks a class of behaviour in which software turns arbitrary data into a usable pointer and makes authority flow more explicit.

In brief

Pointer provenance describes the legitimate origin and derivation of authority to access memory. In CHERI, a valid capability must derive from existing valid authority; converting or inventing an integer address does not create the corresponding capability.

Key considerations

1. Origin

Capabilities ultimately derive from authority established by the system and delegated through software.

2. Derivation

Arithmetic can adjust an address within the rules, while bounds and permissions cannot be freely increased.

3. Language

Compiler and ABI rules determine how C/C++ casts, integers and pointers preserve or lose provenance.

Evidence and caveats

Provenance is technically subtle and architecture- and language-model-specific. Use the matching programming guide and specification for normative behaviour.

Use the exact architecture and software specification implemented by the target. Separate architectural guarantees from system-level outcomes.

Primary routes

Where next

Find pointer-integer conversions in a small code base and replace undocumented address reconstruction with explicit, reviewed interfaces.

Apply provenance rules during porting