{"dataType":"CVE_RECORD","dataVersion":"1.0","cveMetadata":{"cveId":"GCVE-110-OSM-2026-14376","assignerOrgId":"","assignerShortName":"Vulnetix","state":"PUBLISHED","datePublished":"2026-11-01T08:36:45Z","dateUpdated":"2026-11-01T09:12:37Z","dateReserved":""},"containers":{"cna":{"providerMetadata":null,"title":"","descriptions":[{"lang":"en","value":"package.json declares its sole dependency `ltidisafe` as a direct HTTPS tarball URL (https://storage.googleapis.com/lscunpentest/pack_ux_foundry.tgz) instead of a registry version range. On `npm install`, npm fetches whatever bytes are currently at that URL and installs them into the dependency tree, running any lifecycle scripts the fetched tarball contains, with no version pin and no integrity hash. Whoever controls the bucket controls code that executes on the installer's machine, and the bytes can change at any time without any change to this package. The shipped source is a one-line stub, so the manifest line is the entire published surface of the package. The bucket path segment `lscunpentest` is also consistent with penetration-testing / unauthorized-testing framing.\n\nENTRY\n  index.js (main: index.js)\n  - URL-Based Dependency in package.json: \"\"dependencies\": { \"ltidisafe\": \"https://storage.googleapis.com/lscunpentest/pack...\"\n  - Install Hook Executes Local JS File in [ltidisafe] package/package.json: \"\"preinstall\": \"node test.js \u003e /dev/null 2\u003e\u00261\"\"\n\nEXFIL\n  - OAST/Interactsh Exfiltration in [ltidisafe] package/test.js: \"oastify.com\"\n  - Network Request in [ltidisafe] package/index.js: \"http.request(\"\n  - System Information Collection in [ltidisafe] package/test.js: \"os.hostname()\"\n  - Suspicious Domain in [ltidisafe] package/test.js: \"oastify.com\"\n\nOBFUSCATION\n  - recovered 2 domains from decoded/deobfuscated content\n\nADDITIONAL FINDINGS\n  - Rapid Version Publishing\n\nPAYLOAD FILES\n  [ltidisafe] package/test.js","supportingMedia":null}],"references":[{"url":"https://opensourcemalware.com/threats/3a17cb20-d9dc-455c-8585-e6575a0e7b65","name":"Malicious npm package: hs-framework","tags":["advisory"]},{"url":"https://osv.dev/vulnerability/MAL-2026-18434","name":"","tags":["advisory"]},{"url":"https://registry.npmjs.org/hs-framework","name":"","tags":["vendor"]}],"metrics":[{"format":"CVSS_V3","scenarios":null,"cvssV2_0":null,"cvssV3_0":null,"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N","baseScore":5.4,"baseSeverity":"MEDIUM"},"cvssV4_0":null,"other":null}],"problemTypes":[{"descriptions":[{"lang":"en","description":"Embedded Malicious Code","cweId":"CWE-506","type":"CWE"}]}],"affected":[{"vendor":"unknown","product":"hs-framework","collectionURL":"https://registry.npmjs.org","packageName":"hs-framework","repo":"","defaultStatus":"affected","versions":[{"version":"all","status":"affected","versionType":"","lessThan":"","lessThanOrEqual":"","changes":null}],"cpes":null,"modules":null,"programFiles":null,"platforms":null}],"cpeApplicability":null,"rejectedReasons":null,"replacedBy":null,"x_vulnetix_aliases":{"direct":["MAL-2026-18434"]}},"adp":null}}