`npm audit` reports four high-severity advisories in a project's dependency tree, and the team has marked them accepted rather than fixed. A new reviewer flags this as unresolved. Walk through how you'd actually evaluate whether that's the right call, and separately, what a committed lockfile is protecting against that `npm audit` doesn't touch.
A CVE in the dependency tree is not automatically a vulnerability in the application — what decides it is reachability: is the vulnerable code actually on a path this application executes, with attacker-controlled input reaching it. A common real shape is a vulnerable package arriving as a transitive dependency of a build-time tool (a CLI, a dev dependency) that never loads in the running production process at all; if that's genuinely the case here, "accepted" can be the correct call, provided it's been actually established rather than assumed and is written down with the reasoning. npm audit itself is a name-and-version lookup against a database of known advisories — it has no idea what the code does with any package or whether the vulnerable function is ever called, which is exactly why reachability is a judgment a person makes, not something the tool answers. Separately: the lockfile isn't about known vulnerabilities at all — each entry carries an integrity hash of the exact published bytes, recomputed and checked on every install, so it protects against a package's content being altered after the version was locked (a compromised registry, a tampered mirror), which a version number alone says nothing about.