GHSA-43w2-9j62-hq99 is a critical-severity (CVSS 9.8) Out-of-bounds Write vulnerability in smallvec. 1 public exploit or proof-of-concept reference is indexed, so weaponization risk is real. A fix is available for smallvec — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
smallvec🦀smallvecReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects crates.io packages — download data is not available via public APIs for these ecosystems.
Description
A bug in the SmallVec::insert_many method caused it to allocate a buffer that was smaller than needed. It then wrote past the end of the buffer, causing a buffer overflow and memory corruption on the heap. This bug was only triggered if the iterator passed to insert_many yielded more items than the lower bound returned from its size_hint method.
The flaw was corrected in smallvec 0.6.14 and 1.6.1, by ensuring that additional space is always reserved for each item inserted. The fix also simplified the implementation of insert_many to use less unsafe code, so it is easier to verify its correctness.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🦀crates.io | smallvec | ≥ 0.6.3&&< 0.6.14 | 0.6.14cargo update -p smallvec --precise 0.6.14 |
| 🦀crates.io | smallvec | ≥ 1.0.0&&< 1.6.1 | 1.6.1cargo update -p smallvec --precise 1.6.1 |
Affected Products
smallvecservoResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for smallvec, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update smallvec to 0.6.14 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-43w2-9j62-hq99 is resolved across your whole dependency graph.
Workarounds
Constrain what reaches the vulnerable code: limit the size and shape of untrusted input, isolate the affected component in a sandboxed or least-privileged process, and enable the platform's memory-safety mitigations (ASLR, stack protector, hardened allocator) so an out-of-bounds access is more likely to fail closed than to be exploitable.
Frequently Asked Questions
Is GHSA-43w2-9j62-hq99 in your dependencies?
Find it across crates.io, including transitive dependencies.