MAL-2026-14271

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/nodeberlin/MAL-2026-14271.json
JSON Data
https://api.test.osv.dev/v1/vulns/MAL-2026-14271
Published
2026-08-19T07:18:47Z
Modified
2026-08-19T07:31:56.205685569Z
Summary
Malicious code in nodeberlin (npm)
Details

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

Source: amazon-inspector (0daee18c4afae327b271a2178e90822f750a17d97f7dfb1236e6dd37ef9410d9)

The CLI polls the system clipboard every 300ms and captures full-desktop or user-snipped screen regions, then POSTs the JSON text and base64-encoded JPEG image data to a hardcoded author-controlled endpoint at https://tokyoap.vercel.app/api (API_URL). The destination is not caller-configurable and the package accepts no user-supplied API key, so all installers' clipboard contents and screenshots are routed through the author's proxy. On first run the bin auto-downloads the Python.org installer and pip-installs keyboard, pyautogui, pillow, pyperclip, and requests to support global hotkeys, screen capture, and the relay; a panic-exit hotkey and stealth overlay accompany the capture path. Clipboard buffers and screenshots routinely contain credentials, private messages, and other sensitive material; funnelling them through a hardcoded third-party endpoint materially harms the installer.

Database specific
{
    "malicious-packages-origins": [
        {
            "sha256": "0daee18c4afae327b271a2178e90822f750a17d97f7dfb1236e6dd37ef9410d9",
            "versions": [
                "1.0.7"
            ],
            "modified_time": "2026-08-19T07:18:47Z",
            "source": "amazon-inspector",
            "id": "IN-MAL-2026-018387",
            "import_time": "2026-08-19T07:21:21.80972385Z"
        }
    ]
}
References
Credits

Affected packages

npm / nodeberlin

Package

Affected ranges

Affected versions

1.*
1.0.7

Database specific

cwes
[
    {
        "description": "The product contains code that appears to be malicious in nature.",
        "name": "Embedded Malicious Code",
        "cweId": "CWE-506"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "client/noderzero.py",
            "sha256": "a77b047eb3c68e2a2ac3d020225f0e43aa17b9670881934b67a162edae04ba33",
            "tlsh": "23c2d976a0085859f663dc1f8996b5132e1e3e437a4ca528bcfcb9950fcc32685e1ef1"
        },
        {
            "path": "launcher.js",
            "sha256": "0b5b4a96d4cae20054d7d9a598acbd1ebb3f48d913def800b3c8534165032f6b",
            "tlsh": "f071ee7605e55334b863d29d9f4b51272013b0137648e9987eaeb3844fce61491b3bfa"
        }
    ],
    "package_integrity": [
        {
            "filename": "nodeberlin-1.0.7.tgz",
            "hashes": {
                "sha512_sri": "sha512-RdaLBEnacLD5IhxlynkSNsT+U5b4QbGkInoCqaUBNRdwjn0mOSwpypULYM3DBtkSIUosoAVFPzQFDoDn2eRXdA==",
                "sha1": "478bf2c76035cde0399b82f7ea0c483a1bed4888"
            }
        }
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/nodeberlin/MAL-2026-14271.json"