security(static): upgrade jQuery 1.12.4 → 3.7.1, drop unreferenced 3.3.1 bundle#3378
security(static): upgrade jQuery 1.12.4 → 3.7.1, drop unreferenced 3.3.1 bundle#3378deacon-mp wants to merge 1 commit into
Conversation
…3.1 bundle static/jquery/jquery.js was jQuery 1.12.4 (2016), loaded by templates/core.html on every page of the operator UI. Affected by: * CVE-2015-9251 — XSS via cross-domain Ajax responses (fixed in jQuery 3.0) * CVE-2019-11358 — prototype pollution in $.extend (fixed in 3.4) * CVE-2020-11022 — XSS via HTML manipulation methods (.html, .append, etc.) * CVE-2020-11023 — XSS via <option> elements in HTML manipulation (the latter two fixed in 3.5) Replaced with jQuery 3.7.1 (current stable), downloaded from code.jquery.com and cross-verified against cdn.jsdelivr.net: SHA-256 78a85aca2f0b110c29e0d2b137e09f0a1fb7a8e554b499f740d6744dc8962cfe static/jquery/jquery.min.js was a stale 3.3.1 copy not referenced by any template (verified with `grep -r 'jquery.min'`); deleted rather than upgraded. jquery.multi-select.js (v0.9.12) is unchanged — it works against jQuery 3.x. Reported externally on 2026-05-18.
There was a problem hiding this comment.
Copilot wasn't able to review any files in this pull request.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Heads-up — there is significant overlap with existing PRs and I want to flag it before this auto-merges or someone reviews it without context:
If #3356 lands soon, #3378 is throwaway. If #3356 is non-trivial to land (it touches 14k lines of operator UI), #3378 is a tactical bridge that closes all four CVEs without disturbing call sites. Maintainers' call. Happy to close this in favour of #3356 if that's the chosen direction, or in favour of #3352 if the goal is the minimal back-port. I am not pushing for #3378 specifically — flagging the trade-off so the right one ships. |
|
Closing in favour of #3356 (full removal of first-party jQuery, replacing with vanilla JS) per maintainer direction. #3356 is the strategic fix; this PR was a tactical-upgrade bridge that becomes unnecessary once #3356 lands. If #3356 stalls and the jQuery 1.12.4 CVEs (CVE-2015-9251 / CVE-2019-11358 / CVE-2020-11022 / CVE-2020-11023) need to be closed sooner, this branch can be re-opened or its commit ( |
|



Summary
`static/jquery/jquery.js` was jQuery 1.12.4 (released 2016), loaded by `templates/core.html` on every page of the operator UI. Affected by:
`static/jquery/jquery.min.js` was a stale 3.3.1 copy not referenced by any template (verified with `grep -r 'jquery.min' templates/ static/ caldera/`); deleted rather than upgraded.
`jquery.multi-select.js` (v0.9.12) is unchanged — it's compatible with jQuery 3.x.
Fix
Replaced `jquery.js` with jQuery 3.7.1 (current stable), downloaded from `code.jquery.com` and cross-verified against `cdn.jsdelivr.net`:
```
SHA-256 78a85aca2f0b110c29e0d2b137e09f0a1fb7a8e554b499f740d6744dc8962cfe
size 285,314 bytes
```
Test plan
Refs