Vulnerability Instance
Lookup for vulnerabilities affecting packages.
GET /api/vulnerabilities/49319?format=api
{ "url": "http://public2.vulnerablecode.io/api/vulnerabilities/49319?format=api", "vulnerability_id": "VCID-1wr2-9bym-kke5", "summary": "Keras Directory Traversal Vulnerability\nKeras's `keras.utils.get_file()` function is vulnerable to directory traversal attacks despite implementing `filter_safe_paths()`. The vulnerability exists because `extract_archive()` uses Python's `tarfile.extractall()` method without the security-critical `filter=\"data\"` parameter. A PATH_MAX symlink resolution bug occurs before path filtering, allowing malicious tar archives to bypass security checks and write files outside the intended extraction directory.", "aliases": [ { "alias": "CVE-2025-12060" }, { "alias": "GHSA-hjqc-jx6g-rwp9" } ], "fixed_packages": [ { "url": "http://public2.vulnerablecode.io/api/packages/47087?format=api", "purl": "pkg:pypi/keras@3.12.0", "is_vulnerable": true, "affected_by_vulnerabilities": [ { "vulnerability": "VCID-1xj9-1kng-8ua4" } ], "resource_url": "http://public2.vulnerablecode.io/packages/pkg:pypi/keras@3.12.0" } ], "affected_packages": [], "references": [ { "reference_url": "https://github.com/keras-team/keras", "reference_id": "", "reference_type": "", "scores": [], "url": "https://github.com/keras-team/keras" }, { "reference_url": "https://github.com/keras-team/keras/commit/47fcb397ee4caffd5a75efd1fa3067559594e951", "reference_id": "", "reference_type": "", "scores": [], "url": "https://github.com/keras-team/keras/commit/47fcb397ee4caffd5a75efd1fa3067559594e951" }, { "reference_url": "https://github.com/keras-team/keras/pull/21760", "reference_id": "", "reference_type": "", "scores": [], "url": "https://github.com/keras-team/keras/pull/21760" }, { "reference_url": "https://huntr.com/bounties/f94f5beb-54d8-4e6a-8bac-86d9aee103f4", "reference_id": "", "reference_type": "", "scores": [], "url": "https://huntr.com/bounties/f94f5beb-54d8-4e6a-8bac-86d9aee103f4" }, { "reference_url": "https://nvd.nist.gov/vuln/detail/CVE-2025-12060", "reference_id": "CVE-2025-12060", "reference_type": "", "scores": [], "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-12060" }, { "reference_url": "https://nvd.nist.gov/vuln/detail/CVE-2025-12638", "reference_id": "CVE-2025-12638", "reference_type": "", "scores": [], "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-12638" }, { "reference_url": "https://github.com/advisories/GHSA-hjqc-jx6g-rwp9", "reference_id": "GHSA-hjqc-jx6g-rwp9", "reference_type": "", "scores": [], "url": "https://github.com/advisories/GHSA-hjqc-jx6g-rwp9" }, { "reference_url": "https://github.com/keras-team/keras/security/advisories/GHSA-hjqc-jx6g-rwp9", "reference_id": "GHSA-hjqc-jx6g-rwp9", "reference_type": "", "scores": [], "url": "https://github.com/keras-team/keras/security/advisories/GHSA-hjqc-jx6g-rwp9" } ], "weaknesses": [ { "cwe_id": 22, "name": "Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')", "description": "The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory." }, { "cwe_id": 937, "name": "OWASP Top Ten 2013 Category A9 - Using Components with Known Vulnerabilities", "description": "Weaknesses in this category are related to the A9 category in the OWASP Top Ten 2013." }, { "cwe_id": 1035, "name": "OWASP Top Ten 2017 Category A9 - Using Components with Known Vulnerabilities", "description": "Weaknesses in this category are related to the A9 category in the OWASP Top Ten 2017." } ], "exploits": [], "severity_range_score": null, "exploitability": null, "weighted_severity": null, "risk_score": null, "resource_url": "http://public2.vulnerablecode.io/vulnerabilities/VCID-1wr2-9bym-kke5" }