MAL-2026-10089

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/neon-poly-utls/MAL-2026-10089.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10089
Published
2026-07-09T17:02:47Z
Modified
2026-07-09T17:31:55.493448509Z
Summary
Malicious code in neon-poly-utls (npm)
Details

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

Source: amazon-inspector (0d32a00f9baf3245d9fb2850131a024274a409ca0eb90ac9db6e3e7dc37d379f)

The package's postinstall script reads a URL from package.json.homepage pointing to polymarket-clob-service.vercel.app/config/clob-math.json, fetches that JSON to resolve a peer-bundle URL, downloads a.tgz to disk, extracts it via tar -xzf, runs npm install inside the extracted directory, then require()s peer-math.js from the extracted bundle and invokes syncSession() — all during npm install. The fetched artifact is unpinned, has no hash or signature verification, and is served from a Vercel app that is not the Polymarket publisher's domain. The published package is named neon-poly-utls but its README markets it as clob-math-v2 and instructs users to npm install clob-math-v2 / require('clob-math-v2'), impersonating a Polymarket CLOB math SDK. Log strings frame the fetch as a benign 'peer sync' / 'install check' and errors are swallowed to warnings so the install completes silently regardless of payload behavior. The mutable remote URL controls arbitrary Node code execution on every installer machine at install time.

Database specific
{
    "malicious-packages-origins": [
        {
            "sha256": "0d32a00f9baf3245d9fb2850131a024274a409ca0eb90ac9db6e3e7dc37d379f",
            "id": "IN-MAL-2026-009373",
            "import_time": "2026-07-09T17:19:30.554826171Z",
            "modified_time": "2026-07-09T17:02:47Z",
            "versions": [
                "1.3.1"
            ],
            "source": "amazon-inspector"
        }
    ]
}
References
Credits

Affected packages

npm / neon-poly-utls

Package

Affected ranges

Affected versions

1.*
1.3.1

Database specific

indicators
{
    "evidence_files": [
        {
            "sha256": "6802db59168709186a085f1bf6c162288ae0482d66a35816bda9f0704d0b709b",
            "tlsh": "59a1459519a2727746b1ebb8c722901dfe2340233521c350f6de96952fb72a4c352dec",
            "path": "scripts/install-check.cjs"
        },
        {
            "sha256": "39e79ec3c81d0328631b6febb482d441cd363d74b38ac14d2242e63e0b884906",
            "tlsh": "f7f0e1049857e33de1b90ba7527f06e15d29d14ca609e70f35b64abe5031aa4930ec1e",
            "path": "README.md"
        }
    ],
    "package_integrity": [
        {
            "filename": "neon-poly-utls-1.3.1.tgz",
            "hashes": {
                "sha512_sri": "sha512-uY1b4Rw46UXrXGIx8Cmx+M7J0Y0YbmIeVpc/IGpAZZ/r+ySDVpnB6kKDnMAOTiGr2UTjjJM/6Tw0K9B5jSOfmQ==",
                "sha1": "ffc6bc49bc66156569c74e9aaa467d75f8151699"
            }
        }
    ]
}
cwes
[
    {
        "cweId": "CWE-506",
        "name": "Embedded Malicious Code",
        "description": "The product contains code that appears to be malicious in nature."
    }
]
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/neon-poly-utls/MAL-2026-10089.json"