New Fix for jQuery Vulnerabilities

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

Larry Loeb, Blogger, Informationweek

April 24, 2019

2 Min Read

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.

Read more about:

Security Now

About the Author

Larry Loeb

Blogger, Informationweek

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. He has written a book on the Secure Electronic Transaction Internet protocol. His latest book has the commercially obligatory title of Hack Proofing XML. He's been online since uucp "bang" addressing (where the world existed relative to !decvax), serving as editor of the Macintosh Exchange on BIX and the VARBusiness Exchange. His first Mac had 128 KB of memory, which was a big step up from his first 1130, which had 4 KB, as did his first 1401. You can e-mail him at [email protected].

Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.

You May Also Like


More Insights