Known vulnerability for @meteor/rspack dependency and maintainer doesn't respond

elliptic — “Uses a Cryptographic Primitive with a Risky Implementation” (GHSA-848j-6mx2-7j84)

The dependency chain is:
@meteorjs/rspack → node-polyfill-webpack-plugin → node-stdlib-browser → crypto-browserify → browserify-sign / create-ecdh → elliptic

This is deep in the @meteorjs/rspack build toolchain — not runtime code that ships to users. The suggested fix (npm audit fix --force) would downgrade @meteorjs/rspack from
1.0.2 to 0.0.65, which is a breaking change and not worth it. This needs to be fixed upstream in @meteorjs/rspack.

The issue is already well-tracked across the ecosystem. Here’s the situation:

No fix exists upstream. The root cause is in elliptic (all versions through 6.6.1), and the maintainer hasn’t responded to CVE-2025-14505.

Existing open issues:

  • indutny/elliptic #344 — CVE-2025-14505 reported, 6 comments, no maintainer response
  • node-polyfill-webpack-plugin #54 and #60 — both report this exact dependency chain
  • crypto-browserify #255 — references GHSA-848j-6mx2-7j84

@meteorjs/rspack has no public GitHub repo, so there’s nowhere to file an issue specifically against it.

@nachocodoner

Thank you for this report. The issue is well described, and it’s true that the elliptic maintainers haven’t provided a fix:

Because of that, downstream dependents can’t act directly on it, though they could provide a fallback and get rid of this vulnerable dependency:

That said, in the Meteor-Rspack context, node-polyfill-webpack-plugin (which pulls in crypto-browserifyelliptic) is only used for test client builds (isTest && isClient). It is not part of the production client bundle. In normal/production builds, @meteorjs/rspack uses a restrictive allowlist and explicitly sets crypto to false. So crypto-browserify and elliptic are never bundled into apps that ship to users as far as I understand.

However, it’s true that npm audit fix --force would downgrade @meteorjs/rspack to 0.0.65, which is a breaking change, and requires attention. We’ll look into removing node-polyfill-webpack-plugin entirely in favor of importing only the needed polyfills directly, excluding crypto-browserify from the dependency tree altogether. Modern browsers already support the Web Crypto API natively, so polyfilling crypto on the client side is largely unnecessary. I will verify that next week.

@meteorjs/rspack has no public GitHub repo, so there’s nowhere to file an issue specifically against it.

By the way, the @meteorjs/rspack npm package lives in meteor/meteor#npm-packages/meteor-rspack, feel free to file an issue there so we can track it.

I will also take the chance to update the @meteorjs/rspack metadata so it properly states the repository where it lives. It is fully public, and other contributors have already provided fixes for it as part of meteor/meteor.

I just found this forum post, after adding this issue:

Related to what is mentioned at Known vulnerability for @meteor/rspack dependency and maintainer doesn't respond by a4xrbj1

Newest source code not available

NPM package does not list source code repo, where would be these newest versions:

Version Downloads (Last 7 Days) Tag
1.0.2 600 latest
1.1.0-beta.34 120 beta

https://www.npmjs.com/package/@meteorjs/rspack?activeTab=versions

Meteor repo is not the correct upstream repo

Meteor repo is not the correct upstream, there is old version:

  "name": "@meteorjs/rspack",
  "version": "1.0.1",

Yeah, 1.0.2 and 1.0.1 are effectively the same. I needed to publish a quick patch because I had marked a beta version as the latest @meteorjs/rspack release and any user was getting that one. It seems I forgot to push the file change for the 1.0.2 version bump. Sorry.

2 Likes