Affected versions of sanitize-html
are vulnerable to cross-site scripting when allowedTags includes at least one nonTextTag
.
var sanitizeHtml = require('sanitize-html');
var dirty = '!<textarea></textarea><svg/onload=prompt`xs`></textarea>!';
var clean = sanitizeHtml(dirty, {
allowedTags: [ 'textarea' ]
});
console.log(clean);
// !<textarea></textarea><svg/onload=prompt`xs`></textarea>!
Update to version 1.11.4 or later.
CPE | Name | Operator | Version |
---|---|---|---|
sanitize-html | lt | 1.11.4 |
github.com/advisories/GHSA-xc6g-ggrc-qq4r
github.com/punkave/sanitize-html/commit/5d205a1005ba0df80e21d8c64a15bb3accdb2403
github.com/punkave/sanitize-html/commit/5d205a1005ba0df80e21d8c64a15bb3accdb2403)))
github.com/punkave/sanitize-html/issues/100
npmjs.com/package/sanitize-html#discarding-the-entire-contents-of-a-disallowed-tag
nvd.nist.gov/vuln/detail/CVE-2017-16016
www.npmjs.com/advisories/154