Technology
Tags and validity
A capability's validity is protected by a tag that ordinary memory writes cannot forge.
Why it matters
Tags distinguish a genuine capability derived through authorised operations from bytes that merely resemble one.
In brief
A capability’s validity is protected by a tag that ordinary memory writes cannot forge. If software overwrites capability bits as data or derives an invalid value, the tag is cleared and the value cannot authorise memory access.
A tag says that the architecture recognises the value as a valid capability; it does not say the access is appropriate. Bounds, permissions, sealing state and system policy are checked separately. This distinction is useful when diagnosing why an access failed.
Key considerations
1. Create
Valid capabilities originate from existing authority through architecture-defined operations.
2. Preserve
Capability-aware registers, memory and data paths carry the tag alongside the encoded value.
3. Invalidate
Unauthorised manipulation or ordinary byte-wise construction clears validity and later use faults.
Evidence and caveats
The complete system must preserve tags through caches, memory, context switches and relevant interconnect paths. A capable core alone is insufficient.
Use the exact architecture and software specification implemented by the target. Separate architectural guarantees from system-level outcomes.