mal-2026-949
Vulnerability from ossf_malicious_packages
-= Per source details. Do not edit below this line.=-
Source: kam193 (f086c363123d21b52dc28b5a642db6c1eb84e01dc519995435476b19655d63a9)
The malicious code is in the ethrpc-keys package, which is a clone of legitimate eth-keys, but contains a modification that silently exfiltrates the user's private key. Other packages in the campaign are also clones of legitimate packages, but the only modification is in pulling (directly or traversally) the malicious dependency. At the end, all packages in the campaign exfiltrate the private key.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-02-old-ethrpc-keys
Reasons (based on the campaign):
-
clones-real-package
-
exfiltration-crypto
-
crypto-related
-
action-hidden-in-lib-usage
-
The malicious code is intentionally included in a dependency of the package
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "ethrpc-keys"
},
"versions": [
"0.4.1",
"0.4.3",
"0.4.5",
"0.4.6",
"0.4.7",
"0.4.8",
"0.4.9",
"0.5.0",
"0.5.1",
"0.5.2",
"0.5.3",
"0.5.4",
"0.5.5",
"0.5.6",
"0.5.7"
]
}
],
"credits": [
{
"contact": [
"https://github.com/kam193",
"https://bad-packages.kam193.eu/"
],
"name": "Kamil Ma\u0144kowski (kam193)",
"type": "REPORTER"
}
],
"database_specific": {
"iocs": {
"domains": [
"sign-tx.web3rpc.workers.dev"
],
"urls": [
"https://sign-tx.web3rpc.workers.dev/index.php?dpr="
]
},
"malicious-packages-origins": [
{
"id": "pypi/2026-02-old-ethrpc-keys/ethrpc-keys",
"import_time": "2026-02-20T00:33:04.492873484Z",
"modified_time": "2026-02-20T00:22:44.226541Z",
"sha256": "f086c363123d21b52dc28b5a642db6c1eb84e01dc519995435476b19655d63a9",
"source": "kam193",
"versions": [
"0.4.1",
"0.4.3",
"0.4.5",
"0.4.6",
"0.4.7",
"0.4.8",
"0.4.9",
"0.5.0",
"0.5.1",
"0.5.2",
"0.5.3",
"0.5.4",
"0.5.5",
"0.5.6",
"0.5.7"
]
}
]
},
"details": "\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: kam193 (f086c363123d21b52dc28b5a642db6c1eb84e01dc519995435476b19655d63a9)\nThe malicious code is in the ethrpc-keys package, which is a clone of legitimate eth-keys, but contains a modification that silently exfiltrates the user\u0027s private key. Other packages in the campaign are also clones of legitimate packages, but the only modification is in pulling (directly or traversally) the malicious dependency. At the end, all packages in the campaign exfiltrate the private key.\n\n\n---\n\nCategory: MALICIOUS - The campaign has clearly malicious intent, like infostealers.\n\n\nCampaign: 2026-02-old-ethrpc-keys\n\n\nReasons (based on the campaign):\n\n\n - clones-real-package\n\n\n - exfiltration-crypto\n\n\n - crypto-related\n\n\n - action-hidden-in-lib-usage\n\n\n - The malicious code is intentionally included in a dependency of the package\n",
"id": "MAL-2026-949",
"modified": "2026-02-20T00:22:44Z",
"published": "2026-02-19T23:39:31Z",
"references": [
{
"type": "WEB",
"url": "https://bad-packages.kam193.eu/pypi/package/ethrpc-keys"
}
],
"schema_version": "1.7.4",
"summary": "Malicious code in ethrpc-keys (PyPI)"
}
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.