Vulnerability RUSTSEC-2026-0144

High Risk
HIGH RISK
CVSS Score: 8.2
Score Range: 7.0–8.9
High severity vulnerabilities (CVSS 7.0–8.9). Serious vulnerabilities that should be prioritized soon after critical fixes.
5 months ago
May 07, 2026 at 12:00 PM UTC
`Program<System>` accepts arbitrary executable programs
1.0.0 - 1.0.1
1.0.0 - 1.0.1

Summary

`Program<System>` accepts arbitrary executable programs

Details

Affected versions of anchor-lang did not properly validate accounts declared as Program<'info, System>. The generic Program<T> validation path used Pubkey::default() as a sentinel to decide whether any executable program should be accepted. Since the system program id is also the default pubkey, Program<'info, System> was treated like the untyped Program<'info> case and accepted any executable program account.

Programs commonly rely on Program<'info, System> to ensure that CPI calls and instruction builders target the real Solana system program. With the faulty validation, an attacker could supply another executable program where the system program was expected, causing downstream logic to make false assumptions about payments, account creation, or other system-program CPIs.

The issue was fixed in anchor-lang 1.0.2 by separating the typed Program<T> validation path from the untyped Program<()> path, so Program<'info, System> now checks the provided account key against the system program id. Users should upgrade to anchor-lang 1.0.2 or later.

Impacted packages

Timeline

Published
5 months ago
May 07, 2026 at 12:00 PM UTC
Fixed (1.0.2)
5 months ago
May 02, 2026 at 06:49 PM UTC
Last Modified
1 hour ago
October 12, 2026 at 06:00 PM UTC