Malicious code in @generic-means/ing-feat-scanner-libs (npm)
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7053eaf141232704108519a3b3e7a0f1197d9eaabfa9fd3f4ff56ae9f753d763) package.json declares its sole dependency `ltidisafe` as a bare HTTPS tarball URL (`https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.9.3.tgz`) rather than a registry version range or a git ref pinned to a commit SHA. On `npm install`, npm fetches whatever bytes that URL currently returns and installs the resulting package, running any lifecycle scripts it contains. The tarball is unpinned, has no integrity hash, is not resolved through the npm registry, and the content at that URL can be swapped by whoever controls the storage bucket without any change to this package. The shipped `index.js` is an empty stub (`module.exports = {}`), so the off-registry dependency URL is effectively the entire payload delivered to installers. The dependency name does not correspond to a known npm package, and the storage.googleapis.com bucket is not an official registry endpoint.
- Products
- @generic-means/ing-feat-scanner-libs
- Affected versions
- 99.9.1
- Fixed versions
- Not specified
- CVEs
- Not specified
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 10:11 UTC · Revision 1
Source evidence
Malicious code in @generic-means/ing-feat-scanner-libs (npm)
core-osv · Original sourcePublished 25 Oct 2026, 15:05 UTC
--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7053eaf141232704108519a3b3e7a0f1197d9eaabfa9fd3f4ff56ae9f753d763) package.json declares its sole dependency `ltidisafe` as a bare HTTPS tarball URL (`https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.9.3.tgz`) rather than a registry version range or a git ref pinned to a commit SHA. On `npm install`, npm fetches whatever bytes that URL currently returns and installs the resulting package, running any lifecycle scripts it contains. The tarball is unpinned, has no integrity hash, is not resolved through the npm registry, and the content at that URL can be swapped by whoever controls the storage bucket without any change to this package. The shipped `index.js` is an empty stub (`module.exports = {}`), so the off-registry dependency URL is effectively the entire payload delivered to installers. The dependency name does not correspond to a known npm package, and the storage.googleapis.com bucket is not an official registry endpoint.
osv:MAL-2026-18281
@generic-means/ing-feat-scanner-libs
Fixed versions: Not specified
Complete source record
{
"id": "7f7d284ec22230c27580d274ffb7a6213fc018967685742872ba053fdde481f2",
"url": "https://osv.dev/vulnerability/MAL-2026-18281",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Malicious code in @generic-means/ing-feat-scanner-libs (npm)",
"summary": "--- _-= Per source details. Do not edit below this line.=-_ ## Source: amazon-inspector (7053eaf141232704108519a3b3e7a0f1197d9eaabfa9fd3f4ff56ae9f753d763) package.json declares its sole dependency `ltidisafe` as a bare HTTPS tarball URL (`https://ltidi.storage.googleapis.com/depenconf/ltidisafe-3.9.3.tgz`) rather than a registry version range or a git ref pinned to a commit SHA. On `npm install`, npm fetches whatever bytes that URL currently returns and installs the resulting package, running any lifecycle scripts it contains. The tarball is unpinned, has no integrity hash, is not resolved through the npm registry, and the content at that URL can be swapped by whoever controls the storage bucket without any change to this package. The shipped `index.js` is an empty stub (`module.exports = {}`), so the off-registry dependency URL is effectively the entire payload delivered to installers. The dependency name does not correspond to a known npm package, and the storage.googleapis.com bucket is not an official registry endpoint.",
"evidence": "osv:MAL-2026-18281",
"products": [
{
"name": {
"value": "@generic-means/ing-feat-scanner-libs",
"evidence": "/affected/0/package/name"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": [
{
"value": "99.9.1",
"evidence": "/affected/0/versions"
}
]
}
],
"severity": "unknown",
"structured": {
"id": "MAL-2026-18281",
"aliases": [
"MAL-2026-18281"
],
"affected": [
{
"package": {
"name": "@generic-means/ing-feat-scanner-libs",
"purl": "pkg:npm/%40generic-means/ing-feat-scanner-libs",
"ecosystem": "npm"
},
"versions": [
"99.9.1"
],
"database_specific": {
"cwes": [
{
"name": "Embedded Malicious Code",
"cweId": "CWE-506",
"description": "The product contains code that appears to be malicious in nature."
}
],
"source": "https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@generic-means/ing-feat-scanner-libs/MAL-2026-18281.json",
"indicators": {
"evidence_files": [
{
"path": "package.json",
"tlsh": "18e02620892056331ec511b1881aa157b3604e8e4404fc0d5beb041c818ca7328fa35c",
"sha256": "7884a7762e9cb7b9536ae98cee1e266513697b044bad0b9853641e0a2ba67811"
}
],
"package_integrity": [
{
"hashes": {
"sha1": "ace14cf754e48422b4629ade293f757b25129e8a",
"sha512_sri": "sha512-dwmqP1ET9KRGlwTFfal1F1HENtCUwUNXJ7Ih2A1f7EsUGJ5ild0iLkcZz85O9D8PXF23TNkMmdhb7CGHq6IUDA=="
},
"filename": "ing-feat-scanner-libs-99.9.1.tgz"
}
]
}
}
}
],
"modified": "2026-10-25T15:30:04.552756714Z",
"provider": "osv",
"references": [
"https://www.npmjs.com/package/@generic-means/ing-feat-scanner-libs/v/99.9.1"
],
"provider_metadata": {
"malicious-packages-origins": [
{
"id": "IN-MAL-2026-021694",
"sha256": "7053eaf141232704108519a3b3e7a0f1197d9eaabfa9fd3f4ff56ae9f753d763",
"source": "amazon-inspector",
"versions": [
"99.9.1"
],
"import_time": "2026-10-25T15:15:14.446786011Z",
"modified_time": "2026-10-25T15:05:51Z"
}
]
}
},
"related_cves": [],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 445635,
"published_at": "2026-10-25T15:05:51+00:00"
}