Impact
Running GuardDog against a specially-crafted package can allow an attacker to write an arbitrary file on the machine where GuardDog is executed.
This is due to a path traversal vulnerability when extracting the .tar.gz
file of the package being scanned, which exists by design in the tarfile.TarFile.extractall
function. See also https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractall
Remediation
Upgrade to GuardDog v0.1.5 or more recent.
References
- https://semgrep.dev/r?q=trailofbits.python.tarfile-extractall-traversal.tarfile-extractall-traversal
- https://www.trellix.com/en-us/about/newsroom/stories/research/tarfile-exploiting-the-world.html
- https://docs.python.org/3/library/tarfile.html#tarfile.TarFile.extractall
References
- https://github.com/DataDog/guarddog/security/advisories/GHSA-rp2v-v467-q9vq
- https://nvd.nist.gov/vuln/detail/CVE-2022-23531
- https://github.com/DataDog/guarddog/pull/89/commits/a56aff58264cb6b7855d71b00dc10c39a5dbd306
- https://github.com/DataDog/guarddog/releases/tag/v0.1.5
- https://github.com/advisories/GHSA-rp2v-v467-q9vq