osvVulnerabilityAlerts skips a workspace member's range-declared dependency even though the root workspace lockfile resolves a vulnerable version
#44039
Unanswered
dwertent
asked this question in
Request Help
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
How are you running Renovate?
Renovate config:
Which platform you running Renovate on?
Github
Which version of Renovate are you using?
43.222.0
Please tell us more about your question or problem
In an npm workspaces monorepo, a workspace member declares a dependency as a range (e.g.
form-data: ^4.0.0). The member has no co-located lockfile — the resolved versions live in theroot
package-lock.json, which is the correct npm-workspaces layout. The root lock resolvesthat dependency to a version with a known advisory.
Renovate does not flag or remediate it. The debug log shows:
Renovate appears to evaluate the member's range for the OSV lookup instead of the
resolved version from the root workspace lockfile, so it skips the lookup and opens nothing —
even though the fix is within the declared range (a lockfile-only bump would resolve it).
Renovate version: 43.222.0 (self-hosted CLI)
Platform: Github
Config (minimal):
{ "osvVulnerabilityAlerts": true }Real-world example
form-data: ^4.0.0.package-lock.jsonresolvesnode_modules/form-datato4.0.5.form-data4.0.5 is affected by CVE-2026-12143 (fixed in 4.0.6 / 3.0.5 / 2.5.6).4.0.6satisfies^4.0.0, so a lockfile-only update fixes it — but Renovate skips on the range.Minimal reproduction
Steps:
npm installat the root (produces the rootpackage-lock.json;pkg-ahas no lockfile).{ "osvVulnerabilityAlerts": true },LOG_LEVEL=debug.Skipping vulnerability lookup for package form-data due to unsupported version ^4.0.0and that no branch/PR is created for it.
Expected behavior
For a workspace member's dependency, Renovate uses the resolved version from the root workspace
lockfile for the OSV lookup, detects the advisory, and opens a (lockfile-only, in-range) fix PR
— the same as it would for a non-workspace repo with a co-located lockfile.
Actual behavior
The dependency is skipped (
unsupported version <range>); no vulnerability is reported and no PRis opened, despite the root lock pinning a vulnerable version.
Question
Is this expected for workspaces? If so, it would help to document that
osvVulnerabilityAlertsdoes not use the root workspace lock for a member's range-declared deps (so those need a
co-located lockfile or are out of scope). If not, can the OSV lookup use the root workspace lock's
resolved version for workspace members?
Logs (if relevant)
No response
Beta Was this translation helpful? Give feedback.
All reactions