MAL-DEPINT Lockfile and Manifest Integrity
npm ci and its yarn and pnpm equivalents fetch exactly what the lockfile says. One edited resolved URL or stripped integrity hash can redirect an install to an attacker's tarball on every developer and CI machine, before any application code runs.
What Vulkro detects
Three shapes, all Medium, fully offline:
MAL-DEPINT-001: aresolvedtarball URL whose host is a raw IPv4 address, or whose scheme ishttp://. Other HTTPS hosts are not flagged, because private registries and corporate mirrors are common.MAL-DEPINT-002: a registry tarball entry (resolvedending in.tgzor.tar.gz) with nointegrityfield while other entries have one, the mark of a hand-edited lockfile.MAL-DEPINT-003: apackage.jsondependency specified as agit+/git://repository, a rawhttp(s)://tarball, or afile:path, all of which bypass registry resolution, hashes and provenance. Semver specifiers,workspace:,npm:aliases andcatalog:are not flagged.
None of these prove a dependency is malicious, and the rule never certifies a lockfile clean.
How to fix
- Regenerate the lockfile from the manifest against your real registry and diff it to expose hand-edits.
- Require HTTPS named-host
resolvedURLs and anintegrityhash on every registry tarball. - Replace git and URL specifiers with published, versioned packages.
References
See also: Confidence model.
This page is generated by vulkro rules export <out-dir> from Vulkro's built-in detector catalogue. Edits made by hand are overwritten on the next regeneration.