GHSA-77h3-w9rx-hj3q json
User-defined implementations of the safe trait scratchpad::Tracking can cause heap buffer overflows
published last yr. modified last yr. also RUSTSEC-2025-0049
- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
The `get` and `set` methods of the public trait `scratchpad::Tracking` interact with unsafe code regions in the crate, and they influence the computation of addresses returned as raw pointers. However, the trait itself is not marked as unsafe, meaning users may provide custom implementations under the assumption that the crate upholds all safety guarantees.
This becomes problematic because even safe implementations of `get` and `set`-written without using any unsafe code-can still result in ill-formed raw pointers. These pointers may later be dereferenced within safe APIs of the crate (e.g., `marker::MarkerBack::allocate_slice_copy`), potentially leading to arbitrary memory access or heap buffer overflows.
According to the [penultimate commit](https://github.com/okready/scratchpad/commit/957dee1a3902f48600b06910e8e0b1d5ee7dab83), the crate is in maintenance mode awaiting a cleanup that will reduce the area of unsafe code. Note that the last commits to the repository are from 4 years ago.
Is GHSA-77h3-w9rx-hj3q in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| crates.io | scratchpad | <=1.3.1 >=0.0.0-0 |
no fix listed |
Classification
- Weakness
-
- CWE-122 Heap-based Buffer Overflow
References
-
github.com
/okready/scratchpad/issues/2
web, report
-
github.com
/okready/scratchpad
package
-
rustsec.org
/advisories/RUSTSEC-2025-0049.html
web, advisory
-
crates.io
/crates/scratchpad
package
Sources
- GitHub Advisory GHSA-77h3-w9rx-hj3q
- OSV RUSTSEC-2025-0049
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.