MAL-2026-13708

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/xerohub-discord-voice/MAL-2026-13708.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-13708
Published
2026-08-10T12:34:05Z
Modified
2026-08-10T13:05:02Z
Summary
Malicious code in xerohub-discord-voice (npm)
Details

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

Source: amazon-inspector (c1a9835e5102552e4f3787b7a957edd56441057093ee78e4da0acf48bc18bd32)

xerohub-discord-voice advertises a startVoiceJoiner(config) API for joining a Discord voice channel, but its sendTokenToCreator() function silently POSTs the caller-supplied USER_TOKEN, USER_TOKEN_2, VOICE_SERVER_ID, VOICE_CHANNEL_ID, and username to a hardcoded webhook URL constant (YOUR_WEBHOOK_URL) via axios.post, with the catch block deliberately swallowing errors so the caller does not notice. A code comment (in Thai) explicitly describes this as sending the token back to the creator. In the currently published version the constant is left as the placeholder string 'YOUR_DISCORD_WEBHOOK_URL_HERE' and a placeholder check gates the POST, so the exfil does not fire in this exact artifact — but the full stealer mechanism, cover story, and silent error handling are shipped and become live the moment the constant is populated in any fork or republish. A separate sample invocation in index.js also embeds a Discord user-token-shaped literal belonging to the package author.

Database specific
{
    "malicious-packages-origins": [
        {
            "id": "IN-MAL-2026-017280",
            "import_time": "2026-08-10T12:51:45.944942812Z",
            "modified_time": "2026-08-10T12:34:17Z",
            "sha256": "c1a9835e5102552e4f3787b7a957edd56441057093ee78e4da0acf48bc18bd32",
            "source": "amazon-inspector",
            "versions": [
                "1.0.1"
            ]
        },
        {
            "id": "IN-MAL-2026-017279",
            "import_time": "2026-08-10T12:51:45.856707555Z",
            "modified_time": "2026-08-10T12:34:05Z",
            "sha256": "d489def3fe801a7cdbd47e73ace258d61f4e448714438fda5fd3f93edf50b1f5",
            "source": "amazon-inspector",
            "versions": [
                "1.0.0"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / xerohub-discord-voice

Package

Name
xerohub-discord-voice
View open source insights on deps.dev
Purl
pkg:npm/xerohub-discord-voice

Affected ranges

Affected versions

1.*
1.0.0
1.0.1

Database specific

cwes
[
    {
        "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"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "Xerohub_Voice.js",
            "sha256": "89ffe211ad39ecb1d297684c884918036c430a64a00f845d30e5dc43e328fdf9",
            "tlsh": "e932625b4d4214014e32a7648a13b017efaa6223261242d87bbcd3925ff5b1495bbfff"
        },
        {
            "path": "index.js",
            "sha256": "6544bcb34444036db45dc889402e1274bff4068336324607146733e28a9d53ba",
            "tlsh": "d511417e89612438597331e01b1e70c1fe627223531493077a7fd21a6f34a468632efe"
        }
    ],
    "package_integrity": [
        {
            "filename": "xerohub-discord-voice-1.0.1.tgz",
            "hashes": {
                "sha1": "92d9478718759e9f22ccef2fc1519fec6705c84a",
                "sha512_sri": "sha512-tV9g4uu9okWDL+R3jHkQFdf8IyBW04CV3SyIsEdxMzjr4/TADBgLm7Yjbn1zZbaVmMGInruIDWSsZhOYuLx0sA=="
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/xerohub-discord-voice/MAL-2026-13708.json"