mal-2026-1085
Vulnerability from ossf_malicious_packages
Published
2026-02-28 11:25
Modified
2026-02-28 12:14
Summary
Malicious code in ctf-toolkit (PyPI)
Details
-= Per source details. Do not edit below this line.=-
Source: kam193 (e47981485066b674150cc4d9d3709e41707e69111f188e54e772becc7349ab89)
The package states to contain a modified curl library to allow low-level request modifications. However, there is also undisclosed malicious behavior:
- The package installs a .pth file directly in the site-packages directory, effectively running a special code on each Python usage.
- This code performs "TLS context warm-up" by contacting a URL (Github) in the background, in a separate process; this is suspicious on its own as it's unclear how a separate process can warm up further requests in the main process, but...
- ...besides the URL given in the code above, the library always contacts a hardcoded URL, identifying itself as a VPN client.
Additionally, there is no source code of the modified library anywhere, and the related Github hosting the package code account is 1-day old.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-02-ctf-toolkit
Reasons (based on the campaign):
- The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "ctf-toolkit"
},
"versions": [
"0.1.0"
]
}
],
"credits": [
{
"contact": [
"https://github.com/kam193",
"https://bad-packages.kam193.eu/"
],
"name": "Kamil Ma\u0144kowski (kam193)",
"type": "ANALYST"
},
{
"contact": [
"https://github.com/kam193",
"https://bad-packages.kam193.eu/"
],
"name": "Kamil Ma\u0144kowski (kam193)",
"type": "REPORTER"
}
],
"database_specific": {
"iocs": {
"domains": [
"vpnico-1318014164.cos.ap-singapore.myqcloud.com"
],
"urls": [
"https://vpnico-1318014164.cos.ap-singapore.myqcloud.com/ico.bmp"
]
},
"malicious-packages-origins": [
{
"id": "pypi/2026-02-ctf-toolkit/ctf-toolkit",
"import_time": "2026-02-28T11:37:37.82652693Z",
"modified_time": "2026-02-28T11:25:17.282133Z",
"sha256": "e47981485066b674150cc4d9d3709e41707e69111f188e54e772becc7349ab89",
"source": "kam193",
"versions": [
"0.1.0"
]
},
{
"id": "pypi/2026-02-ctf-toolkit/ctf-toolkit",
"import_time": "2026-02-28T12:12:42.923798107Z",
"modified_time": "2026-02-28T11:25:17.282133Z",
"sha256": "a6897f514bad93436c6458f83ca25706fed8306de7dadce313cff934170d9832",
"source": "kam193",
"versions": [
"0.1.0"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (e47981485066b674150cc4d9d3709e41707e69111f188e54e772becc7349ab89)\nThe package states to contain a modified curl library to allow low-level request modifications. However, there is also undisclosed malicious behavior:\n\n1. The package installs a .pth file directly in the site-packages directory, effectively running a special code on each Python usage.\n2. This code performs \"TLS context warm-up\" by contacting a URL (Github) in the background, in a separate process; this is suspicious on its own as it\u0027s unclear how a separate process can warm up further requests in the main process, but...\n3. ...besides the URL given in the code above, the library always contacts a hardcoded URL, identifying itself as a VPN client.\n\nAdditionally, there is no source code of the modified library anywhere, and the related Github hosting the package code account is 1-day old.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-02-ctf-toolkit\n\n\nReasons (based on the campaign):\n\n\n - The package contains code to exfiltrate basic data from the system, like IP or username. It has a limited risk.\n",
"id": "MAL-2026-1085",
"modified": "2026-02-28T12:14:27Z",
"published": "2026-02-28T11:25:17Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/Wang-SecurityResearch/ctf_toolkit"
},
{
"type": "WEB",
"url": "https://web.archive.org/web/20260228111147/https://github.com/Wang-SecurityResearch"
},
{
"type": "WEB",
"url": "https://bad-packages.kam193.eu/pypi/package/ctf-toolkit"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in ctf-toolkit (PyPI)"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…