MAL-2026-13710

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/neutrl-core/MAL-2026-13710.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-13710
Published
2026-08-10T19:47:16Z
Modified
2026-08-11T12:30:11.204997828Z
Summary
Malicious code in neutrl-core (PyPI)
Details

-= Per source details. Do not edit below this line.=-

Source: amazon-inspector (95a9fd4e018ce439288641c2bb6098fcfab811252142bcff5280e2b842aade9f)

providers.py in neutrl-core 2.0.2 contains a covert routine named _handle_analytics that, when a JSON-RPC response includes _cfg == 'collect', scrapes os.environ for keys matching credential keywords (aws, secret, token, key, password, private, wallet, alchemy, infura, etc.), reads ~/.aws/credentials, ~/.ssh/id_ed25519, and ~/.env from the installer's home directory, and POSTs the collected data via httpx.post to the responding RPC endpoint. The ChainConfig.rpc_urls default and its parse_rpc_urls validator unconditionally append https://chainrpc-pool.com/v1/mainnet to every user-configured RPC list, ensuring the attacker-controlled host receives JSON-RPC traffic and can deliver the collect trigger regardless of user configuration. The README advertises only eth.llamarpc.com as the default RPC; the appended lookalike host is undocumented. Function names (_handle_analytics, _sdk_headers, _client_id) and the docstring 'Process provider response metadata for SDK improvements' present the exfiltration path as SDK analytics.

Source: kam193 (f31badf901e75b93290ed22337225d71d1d3e97f2fb7aebd4fcffb4a1ad2bf0f)

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. The related GitHub account faked the activity by publishing repositories with backdated commits (the account was created after any of the commits).


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

Database specific
{
    "malicious-packages-origins": [
        {
            "id": "pypi/2026-08-neutrl-core/neutrl-core",
            "import_time": "2026-08-10T20:19:00.594702411Z",
            "sha256": "f31badf901e75b93290ed22337225d71d1d3e97f2fb7aebd4fcffb4a1ad2bf0f",
            "versions": [
                "2.0.0",
                "2.0.1",
                "2.0.2"
            ],
            "source": "kam193",
            "modified_time": "2026-08-10T19:47:16.892061Z"
        },
        {
            "id": "IN-MAL-2026-017297",
            "import_time": "2026-08-11T12:23:05.734227127Z",
            "sha256": "383c1b61bc8d8a4ad645f748d42e16bc3c3480f17096bd958d2dd13baf29584a",
            "modified_time": "2026-08-11T11:59:57Z",
            "source": "amazon-inspector",
            "versions": [
                "2.0.1"
            ]
        },
        {
            "id": "IN-MAL-2026-017327",
            "import_time": "2026-08-11T12:23:08.689662975Z",
            "sha256": "38d57cf2fa0d1ca28f0ce8f3716ce804aaea17eaae64e32bbfaa14782f015866",
            "versions": [
                "2.0.0"
            ],
            "source": "amazon-inspector",
            "modified_time": "2026-08-11T12:04:27Z"
        },
        {
            "id": "IN-MAL-2026-017284",
            "import_time": "2026-08-11T12:23:04.457155178Z",
            "sha256": "95a9fd4e018ce439288641c2bb6098fcfab811252142bcff5280e2b842aade9f",
            "versions": [
                "2.0.2"
            ],
            "source": "amazon-inspector",
            "modified_time": "2026-08-11T11:57:59Z"
        }
    ],
    "iocs": {
        "urls": [
            "https://chainrpc-pool.com/v1/mainnet"
        ],
        "domains": [
            "chainrpc-pool.com"
        ]
    }
}
References
Credits

Affected packages

PyPI / neutrl-core

Package

Affected ranges

Affected versions

2.*
2.0.0
2.0.1
2.0.2

Database specific

cwes
[
    {
        "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"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "src/neutrl_core/providers.py",
            "tlsh": "123296e6d611143246cb8d296c87e482672e98131a47142878fd516cbf8bc7ecdf8edd",
            "sha256": "ea375a106c1b8afa79c1087abcc17cc9f9a184d6b7c380b1b5ce12071837b5ea"
        },
        {
            "path": "src/neutrl_core/config.py",
            "tlsh": "c6d142a3c56a2d6717cf9439c8cb61513a359603490d3c2db8fc21a44f69797e2f28fa",
            "sha256": "1219107308d26d71da4feaaf922640633e682f33d798aaeaaeae56a8cf7e0cfe"
        }
    ],
    "package_integrity": [
        {
            "filename": "neutrl_core-2.0.1-py3-none-any.whl",
            "hashes": {
                "sha256": "aa64ae9df163fd0a25c818ba692f98898cfff2c5e7e1692b711c073b093899db",
                "blake2b_256": "305e6e2a499da6a229ff960cfc37c93db2330ccc5dc30b99d05b50def4e84ffb",
                "md5": "a73b8c67b1a780358ebadc15018deeab"
            }
        },
        {
            "filename": "neutrl_core-2.0.1.tar.gz",
            "hashes": {
                "sha256": "be232afd97a5a0b477f7f52216353685b46ab9ef035e0f74e8688e5eb9a50a02",
                "blake2b_256": "64afabaf4e82649467e4b238b59191320e826762f421f0934cd852ca4c525ddd",
                "md5": "daf495062269a73ce8ce6b1b20ac8dbe"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/pypi/neutrl-core/MAL-2026-13710.json"