MAL-2026-10960

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/markscan/MAL-2026-10960.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-10960
Published
2026-07-20T00:00:00Z
Modified
2026-08-04T23:05:17Z
Summary
Malicious code in markscan (npm)
Details

The markscan package was published to the npm registry by user 'jonothhu' (maintainer email bruemleveroger@gmail.com) as one of 19 packages in a dependency-confusion campaign targeting the 'markscan', 'akrai', and 'iphouse' namespaces, published in both unscoped and scoped (@scope/name) forms so that a misconfigured resolver installs the public lookalike instead of an intended private/internal dependency. Each package self-describes as an 'AUTHORIZED SECURITY RESEARCH CANARY' (static token PATHC-CANARY-2026, contact farouqsa@proton.me), but ships an unconsented install-time beacon and provides no legitimate functionality.

The package declares a postinstall hook ("node postinstall.js") that executes automatically on npm install. The bundled postinstall.js collects host reconnaissance - the package/canary name, the static token 'PATHC-CANARY-2026', an event label, a UTC timestamp, the Node.js version, the current working directory, the platform, and os.hostname() - and exfiltrates it via HTTPS POST to a hardcoded anonymous dead-drop at https://webhook.site/129cb2ee-ba08-4b3c-989c-270dc0030350 (the same collector across all 19 packages). Request errors are swallowed.

The self-attestation of 'authorized security research' present in the package metadata is unverifiable and does not change the disposition: the package performs unconsented telemetry collection and exfiltration at install time to an anonymous collector, matching the behavior of a dependency-confusion reconnaissance beacon. Install-time behavior and the shared collector endpoint were confirmed by static analysis of a sample spanning all three namespaces and both scoped and unscoped variants.


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

Source: amazon-inspector (cabd1904cc96cf1107115d9d76f4a53b29c7311f3755e79610bf72eae1c3d023)

postinstall.js runs unconditionally on npm install and POSTs a JSON payload containing the installer's hostname, current working directory, platform, Node.js version, and a timestamp to a hardcoded webhook.site collector (https://webhook.site/129cb2ee-ba08-4b3c-989c-270dc0030350). The payload also carries a static token string ('PATHC-CANARY-2026'). The package's self-description as an 'authorized research canary' does not constitute installer consent — installers of markscan have not opted into the beacon, and host identifiers are transmitted to an author-controlled endpoint at install time.

Database specific
{
    "malicious-packages-origins": [
        {
            "id": "IN-MAL-2026-011253",
            "import_time": "2026-08-04T22:30:07.412669427Z",
            "modified_time": "2026-08-04T21:54:31Z",
            "sha256": "cabd1904cc96cf1107115d9d76f4a53b29c7311f3755e79610bf72eae1c3d023",
            "source": "amazon-inspector",
            "versions": [
                "1.0.0"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / markscan

Package

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected

Affected versions

1.*
1.0.0

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": "postinstall.js",
            "sha256": "a69a9ab74917afb75e801c4182218f342222d431eab2d30ec470db234647bb99",
            "tlsh": "6a01dcf08674d32e5f7092d4e3a0ed2b92b6e22076028573bbf912dd2b425580561eac"
        }
    ],
    "package_integrity": [
        {
            "filename": "markscan-1.0.0.tgz",
            "hashes": {
                "sha1": "7b21478a806129f1a85009baca0cfcac7b299038",
                "sha512_sri": "sha512-kfylxsWJ1la90dTWt67bE+3FNvGyJ6PnvtRlSeRmzW4Yl4gQZCG6hDAVELIPF5+bgrfjyQStw79gGBqzyuZc8g=="
            }
        }
    ]
}
iocs
{
    "domains": [
        "webhook.site"
    ],
    "urls": [
        "https://webhook.site/129cb2ee-ba08-4b3c-989c-270dc0030350"
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/markscan/MAL-2026-10960.json"