whoami stack buffer overflow on several Unix platformsGHSA-w5w5-8vfh-xcjq
HIGHFix: ardaku/whoami@d6ee13eGHSA-w5w5-8vfh-xcjq is a high-severity (CVSS 8.2) remote code execution vulnerability in whoami. A fix is available for whoami — see the affected versions and patch details below.
Real-World Exposure
whoamiReal-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
With versions of the whoami crate >= 0.5.3 and < 1.5.0, calling any of these functions leads to an immediate stack buffer overflow on illumos and Solaris:
whoami::usernamewhoami::realnamewhoami::username_oswhoami::realname_os
With versions of the whoami crate >= 0.5.3 and < 1.0.1, calling any of the above functions also leads to a stack buffer overflow on these platforms:
- Bitrig
- DragonFlyBSD
- FreeBSD
- NetBSD
- OpenBSD
This occurs because of an incorrect definition of the passwd struct on those platforms.
As a result of this issue, denial of service and data corruption have both been observed in the wild. The issue is possibly exploitable as well.
This vulnerability also affects other Unix platforms that aren't Linux or macOS.
This issue has been addressed in whoami 1.5.0.
For more information, see this GitHub issue.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🦀crates.io | whoami | ≥ 0.5.3&&< 1.5.0 | 1.5.0cargo update -p whoami --precise 1.5.0 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for whoami, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update whoami to 1.5.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-w5w5-8vfh-xcjq 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-w5w5-8vfh-xcjq in your dependencies?
Find it across crates.io, including transitive dependencies.