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)
HAS_WEAKNESS (1)
REPORTED_BY (1)
Explore deeper with Ninja Signal's threat intelligence graph