Glossary

CHERI glossary

Plain-language definitions for CHERI terms, acronyms, architecture concepts, and software models. The alphabet index links directly to each group of entries.

A

ABI
Application Binary Interface. The conventions that let compiled code, libraries, and an operating system agree on data layouts, calling conventions, registers, and binary formats.
Ambient authority
Authority available to code without being passed explicitly. Capability systems seek to reduce ambient authority so that access is tied to specific capabilities.
Authority
The right to access a resource or perform an operation. A CHERI capability carries authority through its bounds, permissions, validity, and sealing state.

B

Bounds
The lower and upper limits of the memory region that a capability can address. A memory access outside those limits is rejected by the processor.
Bounds compression
An encoding technique that represents a capability's bounds compactly alongside its address and other metadata. Some bounds cannot be represented exactly and are rounded to a representable range.

C

CHERI
Capability Hardware Enhanced RISC Instructions. An architectural protection model that adds hardware-supported capabilities to conventional processor architectures.
CHERI C/C++
C and C++ language and ABI adaptations that represent pointers with CHERI capabilities and expose capability-aware operations where needed.
CHERIoT
A CHERI-based hardware-software platform designed for small embedded systems, with memory safety and fine-grained compartments built into its processor and RTOS model.
Capability
A hardware-protected reference that that carries a memory location, the bounds of the memory region, the access rights associated with it, and some other metadata.
Capability fault
An exception raised when an operation violates a capability rule, such as using an invalid capability, accessing outside its bounds, or attempting an operation without the required permission.
Capability provenance
The valid derivation history that connects a capability to existing authority. Integer values cannot simply be converted into usable capabilities with new authority.
Capability register
A processor register able to hold a complete capability, including its address and protected metadata.
CheriABI
A pure-capability POSIX process environment developed for CheriBSD in which C and C++ pointers are represented as capabilities.
CheriBSD
A FreeBSD-derived research operating system used to develop and evaluate CHERI memory protection and compartmentalisation.
Compartment
A software component isolated from other components and given only selected access to code, data, devices, or services.
Compartmentalisation
The division of software into isolated components so that a fault or compromise in one component has limited authority over the rest of the system.
Compressed capability
A capability representation that encodes bounds relative to the current address, allowing capability metadata and a conventional-sized address to fit within a practical in-memory format.
Cursor
The current address within a capability. It can move within the authority described by the capability but does not itself define the capability's bounds.

D

Default Data Capability (DDC)
A capability used by some CHERI execution models as the default authority for data accesses that are not made through an explicit capability register.
Dereference
Using a pointer or capability to read or write the memory it refers to. CHERI checks validity, bounds, permissions, and other relevant rules when a capability is dereferenced.

H

Hybrid ABI
An application binary interface in which conventional pointers remain the default while software can explicitly use capabilities for selected data and interfaces.

I

Instruction-set architecture (ISA)
The programmer-visible contract between software and a processor, including instructions, registers, data types, exceptions, and memory behaviour.

L

Least privilege
The principle that code should receive only the authority required for its function. Capability bounds and permissions provide mechanisms for expressing narrower authority.

M

Memory safety
Protection against invalid uses of memory, including accesses outside an object's bounds and, where temporal protection is present, accesses after an object's lifetime has ended.
Monotonicity
The rule that deriving a capability can preserve or reduce its authority but cannot increase it beyond the authority of the source capability.
Morello
Arm's experimental high-performance processor, SoC, and development board implementing an adaptation of CHERI for the Arm architecture.

N

Non-forgeability
The property that software cannot create a valid capability with new authority merely by constructing or modifying its bit pattern.

O

Object capability
An unforgeable reference that both identifies an object and authorises a defined set of operations on it.

P

Permission
A right recorded in a capability, such as permission to load data, store data, or execute code. An operation is rejected when the relevant permission is absent.
Pointer
A pointer is a value that contains the address of a location in memory. In conventional systems, this is just an integer.
Pointer provenance
Information about where a pointer came from and which storage or object it is authorised to reference. CHERI makes valid provenance a hardware-enforced part of pointer use.
Program Counter Capability (PCC)
The capability that authorises instruction fetch and constrains the region of code that can execute in the current context.
Pure-capability ABI
An application binary interface in which language-level pointers, code pointers, return addresses, and related runtime structures are represented with capabilities.

R

RISC-V
An open instruction-set architecture. CHERI extensions for RISC-V have been used in research processors, embedded systems, and ongoing standardisation work.
Revocation
The process of making previously issued capabilities unusable when their authority should no longer apply, such as after memory has been freed or a compartment has been torn down.

S

Sail
A language for describing instruction-set architectures formally. CHERI uses Sail models as executable specifications and as inputs to testing and proof tools.
Sealed capability
A capability placed in a protected sealed state. It cannot be used for ordinary memory access until an authorised mechanism unseals or invokes it.
Sentry capability
A sealed executable capability used to provide a controlled entry point into code without exposing unrestricted access to the target code capability.
Spatial memory safety
Protection against accessing memory outside the intended bounds of an object, allocation, stack frame, or other region.

T

Tag
A protected validity bit associated with a capability. Ordinary data operations cannot manufacture a set tag, and operations that corrupt a capability representation clear it.
Tagged memory
Memory that stores capability validity tags separately from ordinary software-visible data so that the integrity of in-memory capabilities can be enforced.
Temporal memory safety
Protection against using memory outside its valid lifetime, including use-after-free and use-after-reallocation errors.
Trusted computing base (TCB)
The hardware and software that must behave correctly for a system's security properties to hold. Compartmentalisation can reduce the amount of code trusted by any one component.

U

Use-after-free
A temporal memory-safety error in which software accesses an allocation after it has been released and may have been reused for another purpose.

Where next

FAQs

Short answers to common questions about CHERI, the Alliance, development, and adoption.

Continue