MAL-2026-10722

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@whalent/agent-core/MAL-2026-10722.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10722
Published
2026-07-16T18:41:02Z
Modified
2026-07-16T19:19:39.007672Z
Summary
Malicious code in @whalent/agent-core (npm)
Details

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

Source: amazon-inspector (dfd40ffe52986a560961c8d4d9d7a3ec526813f9a2f335cef9c6884ca9f6d2cf)

The package's bundled runtime (dist/index.cjs) opens a WebSocket to a hardcoded gateway at wss://memory.whalent.com/gw/sdk/ws and integrates with node-pty and childprocess spawn to run terminal sessions (SHELL / ComSpec, WHALENTTERMINALBACKEND). Bytes arriving from that gateway drive a PTY on the installer's host, giving the gateway operator arbitrary command execution on any machine that runs this package. The README explicitly states the package is 'replaced by remote daemon upgrades,' meaning code arriving from the same author-controlled endpoint can swap the installed runtime with no visible version/signature pinning — a remote code-update channel over the same gateway. The runtime additionally references AI-provider session paths (claude.ai/settings/usage with sessionid, chatgpt.com, api.openai.com/auth, ~/.claude and ~/.codex including settings.local, and ANTHROPICAPIKEY) alongside POST/GET calls to https://memory.whalent.com/pt, indicating flow of AI-provider session identifiers and API keys from local config to the same hardcoded host. The entire 4.8 MB bundle is wrapped in obfuscator.io-style string-array indirection (rotated array a0_0x375d of length 14337, ~60485 decoder wrappers, ~53169 inlined decoded strings), reconstructing network destinations and command strings at runtime and hiding these behaviors from casual review.

Database specific
{
    "malicious-packages-origins": [
        {
            "import_time": "2026-07-16T18:54:03.119631435Z",
            "source": "amazon-inspector",
            "sha256": "46be592c948ce3d8346e8df384e2925b3d3d6011079b1033257395bc6f989f4e",
            "versions": [
                "0.3.230"
            ],
            "id": "IN-MAL-2026-010759",
            "modified_time": "2026-07-16T18:43:15Z"
        },
        {
            "import_time": "2026-07-16T18:54:02.989746229Z",
            "modified_time": "2026-07-16T18:42:52Z",
            "sha256": "96088bf0c797b908d17f5ac937e019a9c65a8f7c02a9fe5d78e32b2dc5f64e8f",
            "versions": [
                "0.3.231"
            ],
            "id": "IN-MAL-2026-010756",
            "source": "amazon-inspector"
        },
        {
            "import_time": "2026-07-16T18:54:02.801973608Z",
            "modified_time": "2026-07-16T18:42:15Z",
            "sha256": "dfa859fe59b5a5e6139dfb586748a1a49a1dbf95e1a4df9dd9360d54e358b632",
            "versions": [
                "0.3.232"
            ],
            "id": "IN-MAL-2026-010752",
            "source": "amazon-inspector"
        },
        {
            "import_time": "2026-07-16T18:54:02.334183566Z",
            "source": "amazon-inspector",
            "sha256": "dfd40ffe52986a560961c8d4d9d7a3ec526813f9a2f335cef9c6884ca9f6d2cf",
            "versions": [
                "0.3.233"
            ],
            "id": "IN-MAL-2026-010744",
            "modified_time": "2026-07-16T18:41:02Z"
        }
    ]
}
References
Credits

Affected packages

npm / @whalent/agent-core

Package

Name
@whalent/agent-core
View open source insights on deps.dev
Purl
pkg:npm/%40whalent/agent-core

Affected ranges

Affected versions

0.*
0.3.230
0.3.231
0.3.232
0.3.233

Database specific

indicators
{
    "evidence_files": [
        {
            "tlsh": "0526084063c06859238b9ff77727b0e6e45f1c6e34484c9be118bd656ae6213faf5a30",
            "sha256": "e19ad18fdc2487d3d8c1fb71355fef09a9ce9a80e706b57f2fd3156ae8281b79",
            "path": "dist/index.cjs"
        },
        {
            "tlsh": "87c08c7067ea27334a405b4ae02803f0cf2db5b872371c9cbf0253ede36857ea542698",
            "sha256": "022b8307b02bf5349d0e86cae0ebda12bfe2d3fb9f9bfb306fef5b3782d00be6",
            "path": "README.md"
        }
    ],
    "package_integrity": [
        {
            "filename": "agent-core-0.3.230.tgz",
            "hashes": {
                "sha1": "f812a7c4acc426f5312ad9dbbe9454b56e65f71a",
                "sha512_sri": "sha512-+TmUaSCguyoEFwiwYZjj0InbqOLJRczgtwdUiJk9dUijdkfvFP1dJXx5yqjmOrXU8joJFaiSM9yhxtSbmzBpMA=="
            }
        }
    ]
}
cwes
[
    {
        "cweId": "CWE-506",
        "name": "Embedded Malicious Code",
        "description": "The product contains code that appears to be malicious in nature."
    },
    {
        "cweId": "CWE-506",
        "name": "Embedded Malicious Code",
        "description": "The product contains code that appears to be malicious in nature."
    },
    {
        "cweId": "CWE-506",
        "name": "Embedded Malicious Code",
        "description": "The product contains code that appears to be malicious in nature."
    },
    {
        "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/@whalent/agent-core/MAL-2026-10722.json"