Safeguard
Supply Chain•

How should a plugin marketplace handle vulnerable bundled libraries?

Plugins ship libraries with known flaws. Require an inventory, scan on submission and on new advisories, and set fix windows partners can actually meet.

Safeguard Security Team
4 min read

Require every plugin to ship an inventory of its libraries, scan it at submission and again when new advisories land, and set a clear fix window by severity. Block or flag plugins that miss it. The plugin code may be fine while an outdated bundled library is the real risk.

Why bundled libraries matter

A plugin is a package of someone else's code plus its own. Marketplaces already treat the dependency side as a policy matter.

The Visual Studio Marketplace documentation says that if a vulnerability is found in an extension dependency, the extension is removed from the Marketplace and added to the block list, and an installed copy is automatically uninstalled by VS Code. Atlassian's requirements say an app must not use third-party libraries with known critical or high vulnerabilities, must fix them as quickly as possible when discovered, and must not use end of life Node.js runtimes or unmaintained libraries. Mozilla's policies allow only release versions of third-party libraries and forbid modifying them.

Three checkpoints

CheckpointWhat to runWhat to do on a finding
SubmissionInventory plus vulnerability matchReject or require a fix for critical items
UpdateSame scan, plus diff versus last buildFlag newly added libraries
OngoingRe-match the installed base on new advisoriesNotify partner, start the fix clock

The ongoing check is the one teams skip. A plugin that passed in spring may carry a vulnerable library by autumn without any change to its code.

Steps to build the process

  1. Ask for an inventory. A software bill of materials in a standard format is best. Without one, build it yourself from the package.
  2. Match against advisory data and record the match with the plugin version.
  3. Add reachability context where you can. A vulnerable function that the plugin never calls is a different priority than one on a hot path. Treat it as a ranking aid, not a waiver.
  4. Set fix windows by severity and publish them.
  5. Notify the partner with the library, version and fixed version if one exists.
  6. Escalate with a warning, then a block, if the window passes.
  7. Track unmaintained libraries separately, because they never get a fixed version.

Common pitfalls

  • Treating a dev dependency and a shipped dependency the same way. Only what ships matters to users.
  • Trusting the lockfile in the repository and not the built bundle. The bundle is what customers run.
  • Alerting without owners. Each plugin needs a named contact who can act.
  • Forgetting transitive libraries, which are often where the vulnerable version hides.

Try it yourself

Click through it at your own pace, or open it full screen.

Open a component and follow it to its parent. Notice how a library several levels down still shows up in the inventory, which is exactly where plugin risk tends to hide.

Quick check

Should a plugin be blocked for any vulnerable library?

Not for every finding. Block on critical or high issues that go unfixed past the window, and use warnings for lower severities.

Who owns the fix, the marketplace or the partner?

The partner owns the plugin and its libraries. The marketplace owns the policy, the detection and the enforcement.

Safeguard provides SBOM and dependency scanning, reachability analysis and policies that can gate a release, and autonomous remediation with fix PRs is available but off by default. The free scan shows a plugin's inventory in minutes.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.