-= Per source details. Do not edit below this line.=-
Review of neutrl-contracts 2.0.2 on PyPI did not surface any code paths that exfiltrate installer data, execute attacker-controlled payloads at install or import time, relay caller data to a hardcoded third-party destination, ship live third-party credentials, or establish a backdoor. No install-time network I/O, no lifecycle-hook shell execution, and no credential or filesystem reconnaissance were observed in the package's files.
This package intentionally depends on a malicious package.
This campaign exfiltrates sensitive environment variables, SSH keys, dotenv files and other credentials. The malicious code is hidden in a dependency package (e.g. neutrl-core) in a function disguised as telemetry, and requires activates once the attacker-controlled endpoint delivers the command. While the user can provide their blockchain endpoints, the code makes sure the malicious endpoint is always included in the configuration. In analyzed versions, the dependent packages did not use the malicious code but were clearly prepared for the supply chain attack.
Category: MALICIOUS - The campaign has clearly malicious intent, like infostealers.
Campaign: 2026-08-neutrl-core
Reasons (based on the campaign):
files-exfiltration
exfiltration-env-variables
exfiltration-ssh-keys
crypto-related
action-hidden-in-lib-usage
The malicious code is intentionally included in a dependency of the package
exfiltration-crypto
The package contains code to execute remote commands (probably limited to a specific set) on the victim's machine.
exfiltration-credentials
{
"malicious-packages-origins": [
{
"id": "pypi/2026-08-neutrl-core/neutrl-contracts",
"import_time": "2026-08-10T20:19:00.591125452Z",
"sha256": "f0a6030f2cc65968de85749a2fafe2380bbb44fdc7db473763c5a82af5d79bc4",
"versions": [
"2.0.0",
"2.0.1",
"2.0.2"
],
"source": "kam193",
"modified_time": "2026-08-10T19:49:11.187921Z"
},
{
"id": "IN-MAL-2026-017322",
"import_time": "2026-08-11T12:23:08.213209383Z",
"sha256": "68d3cccdb218c20b9b2a935383d45a46a824374e21641d2d95e5a356d6c4507d",
"versions": [
"2.0.1"
],
"source": "amazon-inspector",
"modified_time": "2026-08-11T12:03:40Z"
},
{
"id": "IN-MAL-2026-017320",
"import_time": "2026-08-11T12:23:08.066135681Z",
"sha256": "b41aff3f07d1c63f5b9c6096798ce5ce7cb3b06028f1bc6361e9501c966742a0",
"versions": [
"2.0.2"
],
"source": "amazon-inspector",
"modified_time": "2026-08-11T12:03:18Z"
},
{
"id": "IN-MAL-2026-017323",
"import_time": "2026-08-11T12:23:08.295686185Z",
"sha256": "c10fcdbea29da5081e393490e9f42d626bb743ab6feac798955843de194d0789",
"versions": [
"2.0.0"
],
"source": "amazon-inspector",
"modified_time": "2026-08-11T12:03:48Z"
}
],
"iocs": {
"urls": [
"https://chainrpc-pool.com/v1/mainnet"
],
"domains": [
"chainrpc-pool.com"
]
}
}[
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
},
{
"description": "The product contains code that appears to be malicious in nature.",
"name": "Embedded Malicious Code",
"cweId": "CWE-506"
}
]
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/neutrl-contracts/MAL-2026-13709.json"
{
"package_integrity": [
{
"filename": "neutrl_contracts-2.0.1-py3-none-any.whl",
"hashes": {
"sha256": "53f6c4c1f1735656166e3a8a1eef7283f8b0f22f9c46caebe48b4f6125328573",
"blake2b_256": "f633a422848bcc9e9b7a3536a5ea9db7e0776ca0214d36fc96f1c2ec5efbea57",
"md5": "9dd45ec963ff9ddfbbd9e04f72e54e24"
}
},
{
"filename": "neutrl_contracts-2.0.1.tar.gz",
"hashes": {
"sha256": "3bb581637f82bb3131ff2d58efd9ff317c957ffdd2c0778a1721ecf0e5fd8f6b",
"blake2b_256": "172034c7eb9d9c4a69572ab03d1f6e7baec6f181b790d4a07a52fa1d9c82f61c",
"md5": "36affd15845b7c90c59c942e7fe72955"
}
}
]
}