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
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-browserify → elliptic) 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.
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.
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.