GHSA-jf2q-463c-6f52 — androidqf
GHSA-jf2q-463c-6f52 is a security vulnerability in github.com/mvt-project/androidqf. A fix is available for github.com/mvt-project/androidqf — see the affected versions and patch details below.
androidqf: Zip entry Name Injection in APK bundle (Zip Slip for zip consumers)
Real-World Exposure
github.com/mvt-project/androidqfReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.
Description
Summary
generateZipPath() constructs zip entry names for collected APKs using device controlled content from extractFileName(). Since extractFileName() does not reject traversal sequences, the resulting zip entry name can contain ../. AndroidQF itself does not extract the zip it creates, but any forensic tool that extracts the acquisition bundle without zip-slip protection could write files to attacker chosen paths.
Impact
A compromised device could inject path traversal sequences into the acquisition bundle's zip entry names. When a forensic analyst or forensic tooling extracts the bundle without entry name validation, files could be written outside the intended extraction directory.
Patched version
Credits
This issue was identified during a security assessment conducted by 0xche.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐹Go | github.com/mvt-project/androidqf | all versions | 1.8.3go get github.com/mvt-project/androidqf@v1.8.3 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/mvt-project/androidqf, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update github.com/mvt-project/androidqf to 1.8.3 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-jf2q-463c-6f52 is resolved across your whole dependency graph.
Workarounds
Resolve every user-supplied path to its canonical form and reject anything that escapes the intended directory, and run the component under an account that has no read or write access outside the directory it legitimately serves.
Frequently Asked Questions
Is GHSA-jf2q-463c-6f52 in your dependencies?
Find it across Go, including transitive dependencies.