From b9ef6585e10477fbbf912a971fe0b390bca692a6 Mon Sep 17 00:00:00 2001 From: Peter Bacon Darwin Date: Sat, 6 Jan 2018 18:23:14 +0000 Subject: [PATCH] fix($sanitize): sanitize `xml:base` attributes On Firefox there is a XSS vulnerability if a malicious attacker can write into the `xml:base` attribute on an SVG anchor. Thanks to Masato Kinugawa at Cure23 --- src/ngSanitize/sanitize.js | 2 +- test/ngSanitize/sanitizeSpec.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/ngSanitize/sanitize.js b/src/ngSanitize/sanitize.js index fa2a1916550f..cb1ee72e74cd 100644 --- a/src/ngSanitize/sanitize.js +++ b/src/ngSanitize/sanitize.js @@ -269,7 +269,7 @@ function $SanitizeProvider() { optionalEndTagElements); //Attributes that have href and hence need to be sanitized - var uriAttrs = toMap('background,cite,href,longdesc,src,xlink:href'); + var uriAttrs = toMap('background,cite,href,longdesc,src,xlink:href,xml:base'); var htmlAttrs = toMap('abbr,align,alt,axis,bgcolor,border,cellpadding,cellspacing,class,clear,' + 'color,cols,colspan,compact,coords,dir,face,headers,height,hreflang,hspace,' + diff --git a/test/ngSanitize/sanitizeSpec.js b/test/ngSanitize/sanitizeSpec.js index aa659e5844e2..812ca4fa867d 100644 --- a/test/ngSanitize/sanitizeSpec.js +++ b/test/ngSanitize/sanitizeSpec.js @@ -327,6 +327,15 @@ describe('HTML', function() { ''); }); + it('should sanitize SVG xml:base attribute values', function() { + expectHTML('') + .toEqual(''); + + expectHTML('') + .toEqual(''); + + }); + it('should sanitize unknown namespaced SVG attributes', function() { expectHTML('') .toBeOneOf('',