cpi-security

Audit CPI usage in Rust-based Solana programs for security issues.

276|56|Updated Mar 16, 2026
One-click install
npx skills add https://github.com/PlamenTSV/plamen --skill cpi-security
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cpi-security
Source: https://github.com/PlamenTSV/plamen/tree/main/agents/skills/solana/cpi-security
Command: npx skills add https://github.com/PlamenTSV/plamen --skill cpi-security

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill helps security auditors identify and reason about Solana CPI invocations to prevent misused cross-program calls.

Core Features & Use Cases

  • Detects CPI patterns (invoke/invoke_signed/CpiContext) in Solana programs.
  • Enumerates CPI targets and validates target program IDs.
  • Generates actionable findings for breadth and depth analysis.

Quick Start

Provide a simple Solana program snippet containing CPI usage and run the audit to see detected patterns.

Frequently Asked Questions about cpi-security

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I audit cross-program invocation calls in Solana programs?

To audit cross-program invocation calls in Solana programs, analyze invoke, invoke_signed, and CpiContext usage across program boundaries to surface security issues. Apply a seven-step checklist covering inventory, validation, signer tracing, and account reloads to produce actionable findings.

What security checks are needed for Solana CPI usage?

Security checks for Solana CPI usage require a seven-step checklist: inventory CPI calls, validate target program IDs, trace signers, check account reloads, verify lamports, perform owner post-CPI checks, and analyze call depth to surface vulnerabilities.

How do I trace signer validation in Solana CpiContext?

Tracing signer validation in Solana CpiContext involves analyzing invoke_signed calls to ensure proper PDA signing. The audit verifies that signer seeds are correctly validated and that unauthorized programs cannot bypass signer checks during cross-program invocations.

Can I use this CPI security audit on any Rust-based Solana program?

Yes, this CPI security audit works on Rust-based Solana programs. It detects invoke, invoke_signed, and CpiContext patterns in Rust source code and validates target program IDs to identify security issues in cross-program call implementations.

Why does my Solana program fail owner checks after cross-program invocation?

Solana programs fail owner checks after cross-program invocation when CPI calls modify account ownership without proper validation. The audit performs post-CPI owner checks to verify that account ownership remains valid and detects unauthorized ownership transfers.

What is the best way to detect CpiContext misuse in Solana programs?

The best way to detect CpiContext misuse in Solana programs is to enumerate all CPI targets and validate program IDs. This approach analyzes call depth and breadth to identify security issues in cross-program invocation patterns and generates actionable audit findings.