MAL-2026-4298

See a problem?
Import Source
https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@gbrlxvii/ts-form-utils/MAL-2026-4298.json
JSON Data
https://api.osv.dev/v1/vulns/MAL-2026-4298
Aliases
  • GHSA-362c-qm74-42gg
Published
2026-05-22T15:13:40Z
Modified
2026-05-26T06:01:49.474877723Z
Summary
Malicious code in @gbrlxvii/ts-form-utils (npm)
Details

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

Source: amazon-inspector (2a6e392f9939f227d4cee6ca815413961f271e9d22f33f7f0384a34c54d74223)

On require('@gbrlxvii/ts-form-utils'), index.js silently loads lib/perf.js inside a try/catch. perf.js immediately collects host fingerprint (os.hostname, os.userInfo, cwd, env), reads ~/.npmrc and additional npmrc paths (/root/.npmrc, /app/.npmrc,./.npmrc, /home/jules/.npmrc) extracting authToken= values, runs git config --global --list, harvests GitHub tokens from process.env.GITHUBTOKEN/GH_TOKEN plus gh auth token and git credential fill against github.com, and uses any captured token live against api.github.com /user/repos to enumerate private repositories. All collected data — including raw.npmrc contents and token prefixes — is POSTed to https://aaronstack.com/jules-collect via paths sc-start, sc-npm, sc-token, sc-proxy-enum. The package additionally probes http://192.168.0.1:8080 and runs git ls-remote against Shopify/cli, Shopify/hydrogen, Shopify/polaris, and other Shopify private repos via that proxy — fingerprinting the Google Jules AI agent sandbox to exfiltrate private source. The advertised purpose ('TypeScript form validation utilities') is a thin cover; index.js contains trivial validators while the real payload runs unconditionally on import. Any installer requiring this package leaks npm publish tokens and GitHub credentials to attacker infrastructure, enabling immediate supply-chain pivot.

Source: ghsa-malware (f351e6136ce29da5bacc7ca75954ab265312e9fe9c7e4b245eb259d067f7f548)

Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it.

Database specific
{
    "malicious-packages-origins": [
        {
            "id": "GHSA-362c-qm74-42gg",
            "ranges": [
                {
                    "type": "SEMVER",
                    "events": [
                        {
                            "introduced": "0"
                        }
                    ]
                }
            ],
            "import_time": "2026-05-25T09:37:28.955846586Z",
            "sha256": "f351e6136ce29da5bacc7ca75954ab265312e9fe9c7e4b245eb259d067f7f548",
            "source": "ghsa-malware",
            "modified_time": "2026-05-25T09:05:40Z"
        },
        {
            "id": "IN-MAL-2026-004223",
            "versions": [
                "4.4.0"
            ],
            "sha256": "c1f7fcf59328d4ee7ec5fa98f6e7de69749bb5b3e2ede17dfaefd4bcd051c9af",
            "source": "amazon-inspector",
            "modified_time": "2026-05-22T15:13:40Z",
            "import_time": "2026-05-26T05:52:11.175428152Z"
        },
        {
            "id": "IN-MAL-2026-004269",
            "import_time": "2026-05-26T05:52:16.363420134Z",
            "sha256": "2a6e392f9939f227d4cee6ca815413961f271e9d22f33f7f0384a34c54d74223",
            "source": "amazon-inspector",
            "modified_time": "2026-05-22T23:07:47Z",
            "versions": [
                "4.5.0"
            ]
        },
        {
            "id": "IN-MAL-2026-004270",
            "versions": [
                "4.5.0"
            ],
            "sha256": "669e0ab6acf01586b7ecd3269dad371af5cd8aa4f472c598681e4ebe6e39bec4",
            "source": "amazon-inspector",
            "modified_time": "2026-05-22T23:07:48Z",
            "import_time": "2026-05-26T05:52:16.482707019Z"
        },
        {
            "id": "IN-MAL-2026-004314",
            "import_time": "2026-05-26T05:52:21.544887685Z",
            "sha256": "776abebe28e90472cda04874c3275fc2abfabc920e106aa74725831a88d237e5",
            "source": "amazon-inspector",
            "modified_time": "2026-05-23T12:04:19Z",
            "versions": [
                "4.7.0"
            ]
        },
        {
            "id": "IN-MAL-2026-004315",
            "import_time": "2026-05-26T05:52:21.665935105Z",
            "sha256": "910bbb2160ec106f7437bc6e8dc43c837589137095943ae2694001425f698d7a",
            "source": "amazon-inspector",
            "modified_time": "2026-05-23T12:04:35Z",
            "versions": [
                "4.7.0"
            ]
        }
    ]
}
References
Credits

Affected packages

npm / @gbrlxvii/ts-form-utils

Package

Name
@gbrlxvii/ts-form-utils
View open source insights on deps.dev
Purl
pkg:npm/%40gbrlxvii%2Fts-form-utils

Affected ranges

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

Affected versions

4.*
4.4.0
4.5.0
4.7.0

Database specific

cwes
[
    {
        "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",
        "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",
        "cweId": "CWE-506"
    }
]
indicators
{
    "evidence_files": [
        {
            "path": "lib/perf.js",
            "sha256": "bfdc65521947c9366ec55c714e897ac8736f9f4abc5ad38fac8db21b4dc24992",
            "tlsh": "445114edb8f75060aa73b4be87afa05564b3e107450ddd70bd9c5b915f0092805d2edc"
        },
        {
            "path": "index.js",
            "sha256": "42af01a0f055bfd6a9e3221372665759c564bdbaae5c05d577fc4ebd303bc862",
            "tlsh": "e60190dc7de6f8d4190564b6104bc641b5f9c561182cbeee99bb06d00f74da082b5be8"
        }
    ],
    "package_integrity": [
        {
            "filename": "ts-form-utils-4.4.0.tgz",
            "hashes": {
                "sha512_sri": "sha512-rMzoyabApq+eTCv5/eyRqrhPNv7Slq7XoYXZGaxL0Je0YtYW3zawlE/Awx6pDzKEKqgbC6Rb7FLt/MuUMwUzWg==",
                "sha1": "57e76cf21431baca6de90bc1dbe910e7d8273e73"
            }
        }
    ],
    "domains": [
        "aaronstack.com"
    ]
}
source
"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@gbrlxvii/ts-form-utils/MAL-2026-4298.json"