CVE-2022-23530
published 2022-12-16CVE-2022-23530: GuardDog is a CLI tool to identify malicious PyPI packages. Versions prior to v0.1.8 are vulnerable to arbitrary file write when scanning a specially-crafted…
PriorityP335medium6.5CVSS 3.1
AVNACLPRNUIRSUCNIHAN
EPSS
0.70%
48.6th percentile
GuardDog is a CLI tool to identify malicious PyPI packages. Versions prior to v0.1.8 are vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package. Extracting files using shutil.unpack_archive() from a potentially malicious tarball without validating that the destination file path is within the intended destination directory can cause files outside the destination directory to be overwritten. This issue is patched in version 0.1.8. Potential workarounds include using a safer module, like zipfile, and validating the location of the extracted files and discarding those with malicious paths.
Affected
4 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| datadog | guarddog | < 0.1.8 | 0.1.8 |
| datadog | guarddog | >= 0 < 0.1.8 | 0.1.8 |
| datadog | guarddog | >= 0 < 37c7d0767ba28f4df46117d478f97652594c491c | 37c7d0767ba28f4df46117d478f97652594c491c |
| datadoghq | guarddog | < 0.1.8 | 0.1.8 |
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
CVE-2022-23530: GuardDog is a CLI tool to identify malicious PyPI packages
osv·2022-12-16
CVE-2022-23530 CVE-2022-23530: GuardDog is a CLI tool to identify malicious PyPI packages
GuardDog is a CLI tool to identify malicious PyPI packages. Versions prior to v0.1.8 are vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package. Extracting files using shutil.unpack_archive() from a potentially malicious tarball without validating that the destination file path is within the intended destination directory can cause files outside the destination directory to be overwritten. This issue is patched in version 0.1.8. Potential workarounds include using a safer module, like zipfile, and validating the location of the extracted files and discarding those with malicious paths.
GHSA
GuardDog vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package
ghsa·2022-12-05
CVE-2022-23530 [LOW] CWE-22 GuardDog vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package
GuardDog vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package
### Summary
Unsafe extracting using `shutil.unpack_archive()` from a remotely retrieved tarball may lead to writing the extracted file to an unintended destination.
### Details
Extracting files using `shutil.unpack_archive()` from a potentially malicious tarball without validating that the destination file path is within the intended destination directory can cause files outside the destination directory to be overwritten.
The vulnerable code snippet is between [L153..158](https://github.com/DataDog/guarddog/blob/a1d064ceb09d39bb28deb6972bc0a278756ea91f/guarddog/scanners/package_scanner.py#L153..158).
```python
response = requests.get(url, stream=True)
with open(zippath, "wb") as f:
f.w
OSV
GuardDog vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package
osv·2022-12-05
CVE-2022-23530 [LOW] GuardDog vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package
GuardDog vulnerable to arbitrary file write when scanning a specially-crafted remote PyPI package
### Summary
Unsafe extracting using `shutil.unpack_archive()` from a remotely retrieved tarball may lead to writing the extracted file to an unintended destination.
### Details
Extracting files using `shutil.unpack_archive()` from a potentially malicious tarball without validating that the destination file path is within the intended destination directory can cause files outside the destination directory to be overwritten.
The vulnerable code snippet is between [L153..158](https://github.com/DataDog/guarddog/blob/a1d064ceb09d39bb28deb6972bc0a278756ea91f/guarddog/scanners/package_scanner.py#L153..158).
```python
response = requests.get(url, stream=True)
with open(zippath, "wb") as f:
f.w
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
https://github.com/DataDog/guarddog/blob/a1d064ceb09d39bb28deb6972bc0a278756ea91f/guarddog/scanners/package_scanner.py#L153..158https://github.com/DataDog/guarddog/commit/37c7d0767ba28f4df46117d478f97652594c491chttps://github.com/DataDog/guarddog/security/advisories/GHSA-78m5-jpmf-ch7vhttps://github.com/DataDog/guarddog/blob/a1d064ceb09d39bb28deb6972bc0a278756ea91f/guarddog/scanners/package_scanner.py#L153..158https://github.com/DataDog/guarddog/commit/37c7d0767ba28f4df46117d478f97652594c491chttps://github.com/DataDog/guarddog/security/advisories/GHSA-78m5-jpmf-ch7v
2022-12-16
Published