Repository navigation
Vendor jQuery 3.7.1 instead of 3.0.0 (fixes CVE-2020-11022/11023) - #324
technothatch wants to merge 1 commit into
Conversation
|
Does this PR include generative AI / LLM content? What manual functional testing of Skyaware have you done with the new jquery in place? Please provide an example of an aircraft message which triggers the XSS in the CVE you mention. |
70fc7d3 to
6e97a73
Compare
|
Yes — this PR was prepared with AI assistance (an agent I supervise); I've verified the diff and checked the decoder constraints myself. Manual testing: honest answer — no interactive browser session was done. What was done: the vendored Triggering message: there isn't one — I looked and I can't provide it. The sinks that feed live data through jQuery's HTML path are real: Also: I've trimmed this PR down to the jQuery change only — it's now just |
|
Yeah, my question about finding an aircraft message was largely rhetorical. This particular case seems to trip up LLMs as an apparent low hanging XSS, but if you look into it it's really not. This is not the first false positive. You should review your LLM output better. Given there's no compelling reason to update jquery, I'd need to see actual human verification that upgrading across many jquery versions doesn't break anything before I would merge this. |
|
@mutability Absolutly seeing your point about LLM's; its low hangin fruit. I myself find it an eyesore these days on popular public repos. I vaguely remember a similar post, similar type CVE, possibly even on this repo, a while ago... It should however not be used as a reason not to migrate away from a potential vulnerable dependency. But it is your test case that sparked my interest:
With all regulation on ADB-S transmission equipment and the band it opperates on, it should be extremely niche. However, I'm gonna pull out the "these times" argument and I wouldn't be supprised if such an "attack" / disruption would be on a shelf somewhere. |
as mentioned above, I don't want to merge a large jquery change just for the sake of upgrading because it's entirely untested. demonstrate it's been tested and I can merge.
In the context of dump1090, it would require a decoder bug (or possibly several decoder bugs). You only have at most 88 bits of useful payload per message, most of that is not interpreted as text, and the parts that are text use a very limited character set encoding which doesn't include any of the characters required for XSS attacks. So you'd have to have something that attacks the decoder itself (which is a more serious problem than an XSS in the first place)
well, it's just message decoding, but how else is an attacker going to feed data to the system? |
Agreed. You're not saying no to an update, but to an untested/unproven update.
The injection could, I assume, manifests itself either in the decorder or in the browser. 2 seperate surfaces. Althrough this PR is directed towards the second as I understand. |
No? I'm not sure what you mean? There can't be anything analogous to XSS in the decoder because the decoder doesn't do anything with HTML or Javascript or anything else where data might get misinterpreted as commands. The decoder takes a message bitstream and interprets it according to the message formats of DO-260B et al. |
Yeah sorry, should have been more clear about it. An XSS type attack would only happen in the browser. But a more general code injection type attack could (theoreticaly) happen during the decoding/parsing of the received RF data in the decoder. Which would indeed not be in JS, and therefor not classify as "XSS". Anyways, I feel like I'm going to deep into a way too theoretical rabbit hole with this. |
|
Sure, that's what I meant by "something that attacks the decoder itself" earlier. I'm not aware of any such attacks existing. If there was a bug in the decoder that allowed an attack like that, the message size limits would make it quite challenging to produce a viable attack (can you fit viable attack code in 88 bits? You'd probably have to carefully assemble state across multiple messages) |
What
Replaces the vendored jQuery 3.0.0 (2016) with jQuery 3.7.1 (the last 3.x release) in
public_html/jquery/and updates the single<script>reference inpublic_html/index.html.public_html/jquery/jquery-3.7.1.min.js— 87533 bytes, sha256fc9a93dd241f6b045cbff0481cf4e1901becd0e12fb45166a8f17f95823f0b1a, byte-identical fromcode.jquery.comand the official npm package (cross-checked via jsdelivr).public_html/jquery/jquery-3.0.0.min.js.git grep).Why
jQuery 3.0.0 is affected by CVE-2020-11022 / CVE-2020-11023 (XSS when passing HTML with untrusted input to jQuery DOM manipulation APIs); both were fixed in jQuery 3.5.0. SkyAware feeds aircraft-derived strings (registration, type, squawk text, etc.) through jQuery-driven DOM updates, so staying on the 2016 build is avoidable risk.
3.0.0 → 3.7.1 is within the 3.x line — no API removals for the patterns used here (
$.ajax, event shorthand, jQuery UI bridge, the singlejquery.validatecall inscript.js).jQuery UI 1.11.4 and the bundled
jquery.validate1.15.0 are intentionally left alone: both are compatible with jQuery 3.7.1, and jQuery UI couples tightly to its theme CSS — those deserve separate, individually testable changes.Verification
node --checkpasses on the new file and onpublic_html/script.js(unchanged).Build dump1090-famatrix (ubuntu-24.04/24.04-arm × gcc-10/12/14/clang-20, build + tests) passes on this branch on my fork: https://github.com/technothatch/dump1090/actions/runs/38143886412Worth a manual smoke test of the settings dialog and range-ring form (the two places that touch jQuery UI / validate) before merging.
(The CI runs on this PR will need first-time-contributor approval.)