---
title: "GHSA-79mx-88w7-8f7q: XSS Filter Bypass via Encoded URL in validator"
description: "Moderate severity. XSS Filter Bypass via Encoded URL in validator. Affects validator; fixed in 2.0.0."
url: https://inlinr.com/advisories/GHSA-79mx-88w7-8f7q
lang: en
---

[Packages](https://inlinr.com/packages) / [validator](https://inlinr.com/packages/validator) / [Security](https://inlinr.com/packages/validator/security)

Moderate Vulnerability GHSA-79mx-88w7-8f7q CVE-2014-9772 Published 6 Nov 2018

# XSS Filter Bypass via Encoded URL in validator

Your version 

Affected releases · [validator](https://inlinr.com/packages/validator)

- 1.x and older 0.1.0 – 1.5.1 No fix, no longer updated

1.x has no fix yet; the newest fixed line:

```
npm install validator@2.0.0
```

Every release on a timeline

13.x 

1. Not affected

13.0.0 – 13.15.35  
19 releases, latest

1.x 

1. Affected

1.0.0 – 1.5.1  
12 releases

0.x 

1. Affected

0.1.0 – 0.5.0  
57 releases

215 stable releases of validator, oldest to newest, one row per major.

## What happens

Versions of `validator` prior to 2.0.0 contained an xss filter method that is affected by several filter bypasses. This may result in a cross-site scripting vulnerability.

Proof of Concept

The xss() function removes the word "javascript" when contained inside an attribute.

However, it does not properly handle cases where characters have been hex-encoded. 

As a result, it is possible to build an input that bypasses the filter but which the browser will accept as valid JavaScript.

For example: `<a href="jav&#x61;script:...">abc</a>`will render as: `<a href="javascript:...">abc</a>`

Recommendation

The package author has decided to remove the xss filter functionality in the latest version of this module. If this feature is not currently being used, you are not affected by the vulnerability. If it is being used, updating to the latest version of the module will break your application.

In order for affected users to mitigate this vulnerability, it is necessary to use an [alternative package](https://www.npmjs.com/search?q=xss%20filter&page=1&ranking=optimal "https://www.npmjs.com/search?q=xss%20filter&page=1&ranking=optimal") that provides similar functionality.

## How it is exploited

Exploitable over the network, with no account and a user to do something.

- **Confidentiality**: low
- **Integrity**: low
- **Availability**: none

CVSS:3.0/​AV:N/​AC:L/​PR:N/​UI:R/​S:C/​C:L/​I:L/​A:N

## References

- [NVD](https://nvd.nist.gov/vuln/detail/CVE-2014-9772 "https://nvd.nist.gov/vuln/detail/CVE-2014-9772")  
nvd.nist.gov/vuln/detail/CVE-2014-9772
- [Issue](https://github.com/chriso/validator.js/issues/181 "https://github.com/chriso/validator.js/issues/181")  
#181
- [GitHub advisory](https://github.com/advisories/GHSA-79mx-88w7-8f7q "https://github.com/advisories/GHSA-79mx-88w7-8f7q")  
github.com/advisories/GHSA-79mx-88w7-8f7q
- [Package](https://github.com/chriso/validator.js "https://github.com/chriso/validator.js")  
github.com/chriso/validator.js
- [Reference](https://www.npmjs.com/advisories/43 "https://www.npmjs.com/advisories/43")  
npmjs.com/advisories/43
- [Reference](http://www.openwall.com/lists/oss-security/2016/04/20/11 "http://www.openwall.com/lists/oss-security/2016/04/20/11")  
openwall.com/lists/oss-security/2016/04/20/11
- [Reference](http://www.securityfocus.com/bid/97102 "http://www.securityfocus.com/bid/97102")  
securityfocus.com/bid/97102
