4/24/2019
09:15 AM
Larry Loeb
Larry Loeb
Larry Loeb

New Fix for jQuery Vulnerabilities

A security patch has been made for jQuery to mitigate 'prototype pollution.'



jQuery is an extremely popular fast, small, and feature-rich front-end JavaScript library. It is used by developers to make tasks like HTML document traversal and manipulation, event handling, animation and Ajax much simpler with an easy-to-use API which is functional across a multitude of browsers.

It is used, according to one site survey, in 74% of all Internet sites.

Like other libraries used for programming languages, malicious changes which have been made to the library may be disseminated without affected developers realizing that the changes in those libraries are present.

To combat this, a security patch has been made for jQuery to mitigate "prototype pollution."

Prototypes are used to define a JavaScript object's default structure as well as its default values. This means that a running application can handle a structure that has not been populated with explicit values.

The base problem has been acknowledged for a few years, but researchers are lately realizing that it has affected real-world Java use. As the use of Java expands beyond simple UI handling, the effects of such pollution are showing up in unexpected places. Olivier Arteau's NorthSec 2018 presentation took a detailed look at the problem and what was going to be needed to tackle it. Indeed, that work was a clear guide to the changes that were going to be necessary.

The problem is evident in other Java libraries (Mongoose's recent problem comes to mind), so it's not just jQuery involved here.

Liran Tal, a security researcher at Synk, took another hard look at jQuery and found even more vulnerabilities.

He found that the vulnerabilities showed up as prototype pollution and would "enables attackers to overwrite a JavaScript application object prototype. When that happens, properties that are controlled by the attacker can be injected into objects and then either lead to denial of service by triggering JavaScript exceptions, or tamper with the application source code to force the code path that the attacker injects."

They also showed a proof of concept that allowed escalation to admin rights on a web app.

Fortunately, jQuery 3.4.0 fixes it, even if they still recommend user input sanitation be used.

But a huge problem still remains. Upgrading may break existing apps, since there are format changes in the higher versions. Ninety-three percent of jQuery use is stuck on versions 1 and 2 of the tool. That is not going to be easily remediated.

Fortunately, a backport of the needed changes has been done so that older versions of jQuery may still be used. Security comes at a price of ever-vigilant maintenance of existing installations. New attacks come with new understandings of dependencies that change threat models. In this case, there is a way to save the day.

— Larry Loeb has written for many of the last century's major "dead tree" computer magazines, having been, among other things, a consulting editor for BYTE magazine and senior editor for the launch of WebWeek.

Comment  | 
Email This  | 
Print  | 
RSS
More Insights
Copyright © 2021 UBM Electronics, A UBM company, All rights reserved. Privacy Policy | Terms of Service