Why does MeteorJS still have such an old jQuery version (10 years old)?

  • Meteor’s jquery@3.0.2 (Jul 2016)
  • npm jquery@3.7.1 (Aug 2023)

Meteor’s is missing 7 years of security fixes (notably the 3.5 $.parseHTML XSS hardening), bug fixes, and selector improvements (:has(), etc.).

I think probably because no one cares? People don’t make new projects with jQuery these days. It may be needed only for the built-in login UIs, which are working perfectly fine.

You can simply ignore it, and don’t use it.

But! If you care strongly about it, a pull request may help…

$.parseHTML XSS hardening

IMO this is not a vulnerability, but a guard against people who are absolute beginners.

Advice for everyone: never accept random HTML from 3rd parties into your app without sanitizing it, period. Regardless if you use jQuery. Most apps never need to do this, unless they allow a user to customize their profile with custom HTML or similar. If you’re building an app that accepts arbitrary HTML, then of course you MUST always sanitize it and I wouldn’t rely on jQuery for that.

Meteor does not accept arbitrary HTML, so that’s not an issue with Meteor, unless you add that feature to an app yourself outside of Meteor’s defaults).

@trusktr

I think probably because no one cares? People don’t make new projects with jQuery these days. It may be needed only for the built-in login UIs, which are working perfectly fine.

You can simply ignore it, and don’t use it.

But! If you care strongly about it, a pull request may help…

I use JQuery at WeKan, but it’s not new, I have maintained WeKan for 10 years. Currently WeKan is using Meteor 3.5-beta.10 .

$ cat package.json | grep jquery
    "@rwap/jquery-ui-touch-punch": "^1.0.11",
    "jquery": "^3.7.1",
    "jquery-ui": "^1.14.2",

$.parseHTML XSS hardening

XSS ? Do you mean DOMPurify?

1 Like

Hello, FYI we added the possibility to remove jQuery entirely from Blaze here: https://github.com/meteor/blaze/pull/493

You’ll soon be able to remove it if you’re interested :+1:

But feel free to bump the JQ version :smile:

2 Likes

@a4xrbj1 the Meteor jquery package version does not follow the versioning of the npm package. It is just a soft wrapper to make it easier for packages to use jquery as dependency without pining it to a specific NPM version. This means you can use whatever jquery you feel you need in your project via npm and add api.use('jquery@3.0.2') if your package needs to access jquery.

1 Like