Listen to this Post
How the CVE Works
The vulnerability arises due to improper handling of raw pointers in user-defined implementations of the `scratchpad::Tracking` trait. Although the trait itself is marked safe, its `get` and `set` methods interact with unsafe code regions, influencing address computations for raw pointers. Safe implementations can still produce invalid pointers, which, when dereferenced in crate APIs like marker::MarkerBack::allocate_slice_copy, may trigger heap buffer overflows or arbitrary memory access. The crate’s reliance on unsafe code without proper validation exacerbates this issue.
DailyCVE Form
Platform: `scratchpad`
Version: `< 0.4.0`
Vulnerability: Heap Overflow
Severity: Moderate
Date: Aug 14, 2025
Prediction: Patch by Sep 2025
What Undercode Say
// Example vulnerable implementation
impl scratchpad::Tracking for CustomTracker {
fn get(&self) -> const u8 {
// Unsafe pointer arithmetic
unsafe { self.buffer.as_ptr().offset(1024) }
}
}
How Exploit
1. Attacker crafts malicious `Tracking` impl.
2. Invalid pointer returned via `get()`.
3. Crate dereferences pointer in safe API.
4. Heap overflow or memory corruption occurs.
Protection from this CVE
1. Mark `Tracking` as `unsafe`.
2. Validate pointer bounds.
3. Update to patched version.
Impact
- Arbitrary memory read/write.
- Potential RCE.
- Denial-of-service.
🎯Let’s Practice Exploiting & Learn Patching For Free:
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

