Skip to content

Commit 4b57d5f

Browse files
committed
Added XSS sink for innerHTML/outerHTML using new Angular attribute def
1 parent 2dc9e7b commit 4b57d5f

File tree

1 file changed

+13
-19
lines changed

1 file changed

+13
-19
lines changed

javascript/ql/lib/semmle/javascript/security/dataflow/DomBasedXssCustomizations.qll

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -251,25 +251,19 @@ module DomBasedXss {
251251
}
252252
}
253253

254-
// /**
255-
// * A write to the `innerHTML` property of a DOM element, viewed as an XSS sink.
256-
// *
257-
// * Uses the Angular Renderer2 API, instead of the default `Element.innerHTML` property.
258-
// */
259-
// class AngularRender2SetPropertyInnerHtmlSink extends Sink {
260-
// AngularRender2SetPropertyInnerHtmlSink() {
261-
// exists(API::CallNode setProperty |
262-
// setProperty =
263-
// API::moduleImport("@angular/core")
264-
// .getMember("Renderer2")
265-
// .getInstance()
266-
// .getMember("setProperty")
267-
// .getACall() and
268-
// this = setProperty.getParameter(2).asSink() and
269-
// setProperty.getArgument(1).getStringValue() = "innerHTML"
270-
// )
271-
// }
272-
// }
254+
/**
255+
* A write to the `innerHTML` or `outerHTML` property of a DOM element, viewed as an XSS sink.
256+
*
257+
* Uses the Angular Renderer2 API, instead of the default `Element.innerHTML` property.
258+
*/
259+
class AngularRender2SetPropertyInnerHtmlSink2 extends Sink {
260+
AngularRender2SetPropertyInnerHtmlSink2() {
261+
exists(Angular2::AngularRenderer2AttributeDefinition attrDef |
262+
attrDef.getName() = ["innerHTML", "outerHTML"] and
263+
this = attrDef.getValueNode()
264+
)
265+
}
266+
}
273267

274268
/**
275269
* A value being piped into the `safe` pipe in a template file,

0 commit comments

Comments
 (0)