Picklescan - Arbitrary Code Execution via Unsafe Numpy Function Detection Bypass
Picklescan before 0.0.25 fails to detect unsafe global functions in the Numpy library, allowing attackers to bypass static analysis and execute arbitrary code during deserialization. Attackers can craft malicious pickle files using numpy.testing._private.utils.runstring within the reduce method to import dangerous libraries like os and execute arbitrary OS commands when the pickle file is loaded.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2025-71355
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 23:52 UTC · Revision 1
Source evidence
Picklescan - Arbitrary Code Execution via Unsafe Numpy Function Detection Bypass
core-osv · Original sourcePublished 30 Jun 2026, 22:08 UTC
Picklescan before 0.0.25 fails to detect unsafe global functions in the Numpy library, allowing attackers to bypass static analysis and execute arbitrary code during deserialization. Attackers can craft malicious pickle files using numpy.testing._private.utils.runstring within the reduce method to import dangerous libraries like os and execute arbitrary OS commands when the pickle file is loaded.
osv:CVE-2025-71355
Complete source record
{
"id": "125cfea92fe6fdafbb2ed252e2f5d47478589c6c7a28be7c9041257f394debf2",
"url": "https://osv.dev/vulnerability/CVE-2025-71355",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Picklescan - Arbitrary Code Execution via Unsafe Numpy Function Detection Bypass",
"summary": "Picklescan before 0.0.25 fails to detect unsafe global functions in the Numpy library, allowing attackers to bypass static analysis and execute arbitrary code during deserialization. Attackers can craft malicious pickle files using numpy.testing._private.utils.runstring within the reduce method to import dangerous libraries like os and execute arbitrary OS commands when the pickle file is loaded.",
"evidence": "osv:CVE-2025-71355",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2025-71355",
"aliases": [
"CVE-2025-71355",
"GHSA-fj43-3qmq-673f"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/mmaitre314/picklescan",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "62e76cfdf9aaaa3d0a26b78f7a93710406482274"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.0.25"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.0.25"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"v0.0.24",
"v0.0.23",
"v0.0.22",
"v0.0.21",
"v0.0.20",
"v0.0.19",
"v0.0.18",
"v0.0.17",
"v0.0.15",
"v0.0.14",
"v0.0.13",
"v0.0.12",
"v0.0.11",
"v0.0.10",
"v0.0.9",
"v0.0.8",
"v0.0.7",
"v0.0.6",
"v0.0.5",
"v0.0.4",
"v0.0.3",
"v0.0.2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-71355.json"
}
}
],
"modified": "2026-10-28T02:30:24.338594998Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71355.json",
"https://github.com/mmaitre314/picklescan/security/advisories/GHSA-fj43-3qmq-673f",
"https://nvd.nist.gov/vuln/detail/CVE-2025-71355",
"https://www.vulncheck.com/advisories/picklescan-arbitrary-code-execution-via-unsafe-numpy-function-detection-bypass"
],
"provider_metadata": {
"cwe_ids": [
"CWE-184"
],
"cna_assigner": "VulnCheck",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/71xxx/CVE-2025-71355.json"
}
},
"related_cves": [
{
"value": "CVE-2025-71355",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 490996,
"published_at": "2026-06-30T22:08:18.129+00:00"
}