mediumVulnerability

GHSA-x442-m7cc-hr92

## Summary When inner CPI instructions use instruction types not recognized by Kora's parser (including Token-2022 extension instructions like `ConfidentialTransfer`, `TransferFeeExtension::WithdrawWithheldTokens`, etc.), they are reconstructed as stub instructions with empty accounts and empty data. These stubs fail deserialization during fee payer policy validation and are silently skipped, meaning any fee payer usage within those instructions goes completely unchecked. ## Severity **Medium** ## Affected Component - **File:** `crates/lib/src/transaction/instruction_util.rs` - **Functions:** `reconstruct_system_instruction()`, `reconstruct_spl_token_instruction()` - **Lines:** 750–753, 1187–1189 ## Root Cause The instruction reconstruction functions have a catch-all `_ =>` arm for unrecognized instruction types that creates a stub `CompiledInstruction` with the correct `program_id_index` but **empty `accounts` and empty `data`**. When this stub reaches the fee payer policy parsing (`parse_system_instructions` / `parse_token_instructions`), deserialization of empty data fails. The parsing functions also have a catch-all `_ => {}` that silently skips the failed instruction. The result: the instruction exists in `all_instructions` (so program allowlist checks pass), but fee payer policy is never enforced on it. ## Vulnerable Code ### Stub Creation ```rust // crates/lib/src/transaction/instruction_util.rs:750-753 // System program — unrecognized instruction type: _ => { log::error!("Unsupported system instruction type: {}", instruction_type); Ok(Self::build_default_compiled_instruction(program_id_index)) } // crates/lib/src/transaction/instruction_util.rs:1187-1189 // SPL Token program — unrecognized instruction type: _ => { log::error!("Unsupported token instruction type: {}", instruction_type); Ok(Self::build_default_compiled_instruction(program_id_index)) } ``` The stub builder: ```rust pub fn build_default_compiled_instruction(program_id

Properties

ghsa_id
GHSA-x442-m7cc-hr92
severity
medium
summary
kora-lib: Unrecognized Instruction Types Create Empty Stubs That Bypass Fee Payer Policy
cve_id
GHSA-x442-m7cc-hr92
is_ghsa_only
true
ghsa_published
2026-03-12T14:50:39Z
source_url
https://github.com/advisories/GHSA-x442-m7cc-hr92
ghsa_updated
2026-03-12T14:50:39Z

Related Entities (3)

AFFECTS (1)

[Software]rust/kora-lib

HAS_WEAKNESS (1)

[Weakness]Protection Mechanism Failure

REPORTED_BY (1)

[Source]GitHub Advisory Database

Explore deeper with Ninja Signal's threat intelligence graph

GHSA-x442-m7cc-hr92 — Ninja Signal Threat Intelligence | Ninja Signal