From 5ab76dc11d106d570c274cc8ae5ff92254966523 Mon Sep 17 00:00:00 2001 From: Joshua Provoste <8358462+JoshuaProvoste@users.noreply.github.com> Date: Thu, 2 Apr 2026 17:34:57 -0300 Subject: [PATCH] Security: Mitigate DOM-based XSS in resolveUrl and inner-h-t-m-l bindings --- lib/mixins/property-effects.js | 3 + lib/utils/resolve-url.js | 5 ++ test/unit/security.html | 103 +++++++++++++++++++++++++++++++++ 3 files changed, 111 insertions(+) create mode 100644 test/unit/security.html diff --git a/lib/mixins/property-effects.js b/lib/mixins/property-effects.js index 077c0064e6..3277be72a7 100644 --- a/lib/mixins/property-effects.js +++ b/lib/mixins/property-effects.js @@ -807,6 +807,9 @@ function applyBindingValue(inst, node, binding, part, value) { value = computeBindingValue(node, value, binding, part); if (sanitizeDOMValue) { value = sanitizeDOMValue(value, binding.target, binding.kind, node); + } else if ((binding.target === 'inner-h-t-m-l' || binding.target === 'innerHTML') && typeof value === 'string') { + value = value.replace(/ + + + +
+ +