grcov has an out of bounds write triggered by crafted coverage dataGHSA-qm2p-4w45-v2vr
Fix: mozilla/grcov@c821956GHSA-qm2p-4w45-v2vr is a remote code execution vulnerability in grcov. A fix is available for grcov — see the affected versions and patch details below.
Real-World Exposure
grcovReal-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
Function grcov::covdir::get_coverage uses the unsafe function get_unchecked_mut without validating that the index is in bounds.
This results in memory corruption, and could potentially allow arbitrary code execution provided that an attacker can feed the tool crafted coverage data.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🦀crates.io | grcov | all versions | 0.8.20cargo update -p grcov --precise 0.8.20 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for grcov, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update grcov to 0.8.20 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-qm2p-4w45-v2vr 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-qm2p-4w45-v2vr in your dependencies?
Find it across crates.io, including transitive dependencies.