{"dataType":"CVE_RECORD","dataVersion":"1.0","cveMetadata":{"cveId":"GCVE-110-OSM-2026-13986","assignerOrgId":"","assignerShortName":"Vulnetix","state":"PUBLISHED","datePublished":"2026-10-21T23:54:02Z","dateUpdated":"2026-10-22T04:43:21Z","dateReserved":""},"containers":{"cna":{"providerMetadata":null,"title":"","descriptions":[{"lang":"en","value":"This campaign consists of similar loader packages, which provide executing code from a given URL. While they do not contain the malicious payload and the usage remains unknown, they are clearly a coordinated campaign to place multiple deceptive ways to load malicious code.\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\nCampaign: 2026-10-voice-synthesis-profiles\n\nReasons (based on the campaign):\n\n - Downloads and executes a remote malicious script.\n\n - other\n\nJudge assessment: The package implements a remote code execution loader: `fetch()` in `batchspar/__init__.py` downloads arbitrary Python source from a caller-supplied URL (or the `BATCHSPAR_URL` environment variable), writes it to disk under `/tmp/.batchspar/`, compiles it, and executes it in a fresh module namespace via `exec(compile(source, ...))`. The `launch()` entrypoint then calls the remote module's `run()` function with caller-supplied arguments. This is a textbook payload-fetching loader — the package itself is clean, but any URL passed at runtime (or set in the environment) will be fetched and executed with full interpreter privileges. The package is brand-new with a single version, no source repository, and the example URL in both the docstring and IOCs points to an internal/attacker-controlled host. The OSV advisory identifies this as part of a coordinated 2026-10 campaign of loader packages, which is consistent with the code structure observed here.\n\nENTRY\n  batchspar/__init__.py (module-import: 53)\n\nDESTINATION\n  - 1 fetched-payload (urls)\n  (values recorded in verified_iocs)\n\nEXFIL\n  - Network Request in batchspar/__init__.py: \"urllib.request.urlopen(\"\n\nADDITIONAL FINDINGS\n  - Dynamic Code Execution in batchspar/__init__.py: \"compile(source, mod.__file__, \"exec\")\"\n  - Brand New Package\n\nPAYLOAD FILES\n  batchspar/__init__.py","supportingMedia":null}],"references":[{"url":"https://opensourcemalware.com/threats/ee3b6d12-ad37-4c94-bafd-452e4d54a775","name":"Malicious pypi package: batchspar","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/MAL-2026-18135","name":"","tags":["advisory"]},{"url":"https://pypi.org/batchspar","name":"","tags":["vendor"]}],"metrics":[{"format":"CVSS_V3","scenarios":null,"cvssV2_0":null,"cvssV3_0":null,"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H","baseScore":9.6,"baseSeverity":"CRITICAL"},"cvssV4_0":null,"other":null}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Embedded Malicious Code","cweId":"CWE-506","type":"CWE"}]}],"affected":[{"vendor":"unknown","product":"batchspar","collectionURL":"https://pypi.org","packageName":"batchspar","repo":"","defaultStatus":"affected","versions":[{"version":"all","status":"affected","versionType":"","lessThan":"","lessThanOrEqual":"","changes":null}],"cpes":null,"modules":null,"programFiles":null,"platforms":null}],"cpeApplicability":null,"rejectedReasons":null,"replacedBy":null,"x_vulnetix_aliases":{"direct":["MAL-2026-18135"]}},"adp":null}}