## https://sploitus.com/exploit?id=1BAA9248-251C-5052-A726-4C9CEB7829BD
# PoC for CVE-2025-30216: CryptoLib Heap Overflow Vulnerability
## Overview
CryptoLib provides a software-only solution using the CCSDS Space Data Link Security Protocol - Extended Procedures (SDLS-EP) to secure communications between a spacecraft running the core Flight System (cFS) and a ground station. In versions 1.3.3 and prior, a Heap Overflow vulnerability occurs in the `Crypto_TM_ProcessSecurity` function (`crypto_tm.c:1735:8`). When processing the Secondary Header Length of a TM protocol packet, if the Secondary Header Length exceeds the packet's total length, a heap overflow is triggered during the memcpy operation that copies packet data into the dynamically allocated buffer `p_new_dec_frame`. This allows an attacker to overwrite adjacent heap memory, potentially leading to arbitrary code execution or system instability.
**Impact**: A crafted packet can trigger heap memory corruption during `memcpy` operations into the `p_new_dec_frame` buffer, potentially leading to:
- Arbitrary code execution
- System instability
- Denial of Service
**Patched Version**: [810fd66d592c883125272fef123c3240db2f170f](https://github.com/nasa/CryptoLib/commit/810fd66d592c883125272fef123c3240db2f170f)
## Files
- `poc.py` - Dual-mode Python script:
- **Generate** malicious TM packets
- **Check** packets for vulnerability indicators
## Requirements
- Python 3.6+
- No external dependencies
## Usage
### 1. Generate Malicious Packet
```bash
./poc.py generate [overflow_amount]
```
**Parameters:**
- `overflow_amount`: Bytes to overflow (default: 1024)
**Example:**
```bash
# Generate packet with 2048-byte overflow
./poc.py generate 2048 > evil_packet.hex
```
### 2. Check Packet Vulnerability
```bash
./poc.py check <hex_packet>
```
**Parameters:**
- `<hex_packet>`: Hexadecimal string of TM packet
**Example:**
```bash
# Analyze generated packet
./poc.py check $(cat evil_packet.hex)
```
## Technical Details
### Packet Structure
```
[6-byte Primary Header][2-byte Secondary Header Length][Payload]
```
### Vulnerability Trigger
The script creates packets where:
- `Secondary Header Length > (Total Packet Length - Header Offset)`
- `memcpy` operation attempts to copy more bytes than available
### Detection Logic
```python
available_space = total_length - (offset + length_field_size)
if claimed_length > available_space:
trigger_alert()
```
## Disclaimer
This software is intended for:
- Security research
- Vulnerability demonstration
- Defensive purposes
**Do NOT** use on production systems or without explicit authorization. The maintainers assume no liability for misuse of this tool.