Join our Newsletter — 33% off our NHI Course
Home› FAQ› Architecture & Implementation› How does Pointer Authentication Code (PAC) work?
Architecture & Implementation

How does Pointer Authentication Code (PAC) work?

← Back to all FAQ
By NHI Mgmt Group Editorial Team Updated October 19, 2026 Domain: Architecture & Implementation

Pointer Authentication Code (PAC) adds a cryptographic tag to a pointer so the processor can check whether the pointer has been altered before it is used. Attackers try to reuse or corrupt signed pointers to redirect execution. Defenders rely on it as a hardware integrity control, but still need memory-safety fixes because PAC does not stop all code-reuse or logic abuse.

What PAC is doing inside the CPU

pointer authentication Code is a hardware integrity check for pointers. The processor signs a pointer with a cryptographic tag tied to a secret key and other context, then verifies that tag before the pointer is consumed. If the pointer value was changed in memory, the check should fail. That makes simple pointer corruption harder to turn into control-flow hijacking.

In practice, PAC is most useful where attackers want to tamper with return addresses, function pointers, or other control-relevant pointers. It raises the cost of classic memory corruption, but it does not turn unsafe code into safe code. If the surrounding program still has memory-safety bugs, an attacker may still find another path that avoids the protected pointer or reuses a valid one.

Why PAC helps, and where it stops helping

PAC works best as an integrity layer, not as a full exploit prevention strategy. It can block or disrupt attempts to reuse corrupted pointers, but it cannot stop every code-reuse technique, logic flaw, or data-only attack. If an attacker can obtain a valid signed pointer, reuse it in the right context, or steer execution without needing to forge a pointer, PAC may not be enough on its own.

The practical value is that PAC forces attackers to solve a harder problem before they can redirect execution. That matters in modern exploitation chains, where a single memory-safety bug is often only the first step. PAC does not remove the need for safe coding, bounds checking, control-flow hardening, or other mitigations that reduce the chance of pointer corruption in the first place.

How to think about PAC in an exploit chain

Use PAC as one control in a layered defence, not as a substitute for memory-safety engineering. It is strongest when the attacker must corrupt a protected control pointer and weakest when the attacker can operate through unprotected data, valid pointers, or unrelated logic defects. That is why PAC is often paired with other hardening measures rather than treated as a standalone fix.

A good mental model is that PAC makes pointer forgery and pointer tampering less reliable, but it does not guarantee the whole program is resistant to exploitation. The security question is not whether a pointer is signed once, but whether the application still exposes enough unsafe memory behaviour for an attacker to reach a usable primitive anyway.

Risk and Threat Considerations

PAC reduces the payoff from pointer corruption, but it does not eliminate exploitation paths that use valid pointers, information disclosure, or non-control data attacks. The remaining risk is that teams may overestimate hardware hardening and leave memory-safety defects unaddressed.

Failure mechanism: An attacker who can corrupt memory may still redirect execution if they can reuse a legitimate signed pointer, exploit an unprotected code path, or combine PAC with a separate bug that preserves a valid control reference.

Impact: The result can be partial or complete bypass of the intended control-flow protection, with the underlying vulnerability still available for privilege escalation, code execution, or logic abuse.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

NIST SP 800-53 Rev 5, OWASP ASVS and CIS Controls v8 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
NIST SP 800-53 Rev 5SI-7 — Software, Firmware, and Information IntegrityPAC is an integrity control for pointer trust.
SC-44 — Deterministic Random Bit GenerationPAC relies on cryptographic primitives and protected secrets.
Recommendation — Use integrity checks to detect tampering before control data is consumed. Protect cryptographic material that underpins pointer authentication.
OWASP ASVSV15 — Secure Coding and ArchitecturePAC complements secure design, not memory-safe code.
Recommendation — Design out unsafe memory patterns instead of depending on hardening alone.
CIS Controls v8CIS-16 — Application Software SecurityPAC is one layer in application hardening against memory abuse.
Recommendation — Harden software to reduce exploitable memory corruption paths.

Practitioner Guidance

What to verify: Confirm which pointer classes are actually covered in the target platform and compiler configuration, then test whether the application still has memory corruption paths that PAC does not address. PAC is useful only when it meaningfully raises the cost of the exploit path you are trying to defend.

What practitioners underestimate: The common mistake is treating PAC as a patch for unsafe memory handling. It is better viewed as a control that narrows exploitation options, so the surrounding engineering effort should still focus on removing the bug classes that make pointer tampering possible in the first place.

Practitioner takeaway: PAC is a valuable integrity control, but its real value comes from buying time and reducing exploit reliability, not from replacing memory-safety fixes.

Free weekly newsletter

Subscribe to the NHI & AI Identity Journal

The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.

Bonus 33% off our NHI Course when you subscribe.

NHIMG Editorial Note
Reviewed and updated by the NHIMG editorial team on October 19, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org