Skip to content

Commit ff9f087

Browse files
committed
Version bumping
1 parent 72438a0 commit ff9f087

2 files changed

Lines changed: 45 additions & 3 deletions

File tree

chrome/extension/js/generated/retire-chrome.js

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10871,7 +10871,7 @@ var retirechrome = (() => {
1087110871
"../../node/lib/retire.js"(exports) {
1087210872
"use strict";
1087310873
var exports = exports || {};
10874-
exports.version = "5.5.0";
10874+
exports.version = "5.6.0";
1087510875
function isDefined(o) {
1087610876
return typeof o !== "undefined";
1087710877
}
@@ -17757,6 +17757,28 @@ Reporter: Koda Reef`,
1775717757
"https://github.com/cure53/DOMPurify/commit/a9ca1e537422319a557a9a2aa61f003b23b4a197",
1775817758
"https://github.com/cure53/DOMPurify/releases/tag/3.4.12"
1775917759
]
17760+
},
17761+
{
17762+
atOrAbove: "0",
17763+
below: "3.4.13",
17764+
severity: "medium",
17765+
cwe: [
17766+
"CWE-79"
17767+
],
17768+
identifiers: {
17769+
summary: "DOMPurify: IN_PLACE hook removal leaves a detached subtree executable, causing XSS",
17770+
githubID: "GHSA-55q2-fjhq-7xh7",
17771+
CVE: [
17772+
"CVE-2026-75838"
17773+
]
17774+
},
17775+
details: "### Summary\n\nDuring `IN_PLACE` sanitization, a hook that removes an element can leave that element's detached descendants executable. A descendant image can retain its attacker-provided `onload` handler and fire after `sanitize()` returns, even though the returned root is clean and the image remains disconnected from the document.\n\n### Details\n\nIn DOMPurify 3.4.12, `_sanitizeElements()` in `src/purify.ts:1862-1904` runs the `beforeSanitizeElements` or `uponSanitizeElement` hook and returns immediately when the hook detached the current node. The return does not call `_neutralizeSubtree(currentNode)`.\n\nThe detached subtree is not added to `DOMPurify.removed`, so the post-walk `IN_PLACE` neutralization cannot reach it. If the browser queued a resource event while the application constructed the detached dirty root, a descendant can therefore retain its handler and execute after sanitization.\n\nThe hook only rejects the containing element and does not add or approve the event handler. DOMPurify's ordinary removal path de-arms the same queued event; only the hook-detachment early return skips the existing subtree neutralization.\n\n### PoC\n\nLoad the published `dompurify@3.4.12` `dist/purify.js` before this script in Chromium:\n\n```html\n<div id=\"result\">not fired</div>\n<script>\nconst root = document.createElement('div');\nroot.innerHTML = `\n <footer>\n <img src=\"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\n onload=\"result.textContent = 'XSS after sanitize'\">\n </footer>\n <div>safe</div>`;\n\nDOMPurify.setConfig({\n ALLOWED_TAGS: ['div', '#text', 'footer'],\n IN_PLACE: true\n});\nDOMPurify.addHook('uponSanitizeElement', node => {\n if (node.tagName === 'FOOTER') node.remove();\n});\n\nDOMPurify.sanitize(root);\ndocument.body.append(root);\n<\/script>\n```\n\n`sanitize()` returns with no handler execution and the returned root contains only the safe `div`. After the event loop advances, the original image remains disconnected but its retained `onload` changes the page to `XSS after sanitize`.\n\nAs the claim-matched control, use the same detached input with `ALLOWED_TAGS: ['div', '#text']` and no hook. DOMPurify's ordinary removal path removes the original image's handler, the returned root is still `<div>safe</div>`, and the marker does not fire.\n\n### Impact\n\nIn an application that uses `IN_PLACE` with the documented element-removal hook pattern, an attacker who can supply HTML can execute JavaScript in the integrating application's origin after the application sanitizes and renders that content.\n\nThe required non-default configuration is `IN_PLACE` plus a hook that removes a containing element. The hook does not add or approve the event handler, and the dirty root never needs to be connected before sanitization.\n\n### Suggested fix\n\nReuse the existing `_neutralizeSubtree(currentNode)` helper before returning from both hook-detachment branches in `_sanitizeElements()`. Add regressions for `beforeSanitizeElements` and `uponSanitizeElement` that retain a reference to a descendant resource element and verify that its event handler is removed after the hook detaches its ancestor.",
17776+
info: [
17777+
"https://github.com/cure53/DOMPurify/security/advisories/GHSA-55q2-fjhq-7xh7",
17778+
"https://github.com/cure53/DOMPurify/pull/1557",
17779+
"https://github.com/cure53/DOMPurify/commit/3067f7746769",
17780+
"https://github.com/cure53/DOMPurify/releases/tag/3.4.13"
17781+
]
1776017782
}
1776117783
],
1776217784
extractors: {
@@ -26296,6 +26318,26 @@ Fix: shouldBypassProxy() should resolve loopback aliases \u2014 localhost, 127.0
2629626318
"https://bugzilla.mozilla.org/show_bug.cgi?id=1893645",
2629726319
"https://github.com/mozilla/pdf.js"
2629826320
]
26321+
},
26322+
{
26323+
atOrAbove: "5.6.83",
26324+
below: "6.2.108",
26325+
severity: "high",
26326+
cwe: [
26327+
"CWE-79"
26328+
],
26329+
identifiers: {
26330+
summary: "PDF.js: Arbitrary JavaScript execution upon opening a malicious PDF ",
26331+
githubID: "GHSA-hq66-cqwq-w95j",
26332+
CVE: [
26333+
"CVE-2026-16633"
26334+
]
26335+
},
26336+
details: "### Impact\n\nIf PDF.js is used to load a malicious PDF, and PDF.js is configured with `enableScripting` set to true (which is the default value) and no CSP for disallowing script-src, unrestricted attacker-controlled JavaScript will be executed in the context of the hosting domain.\n\n### Patches\n\n### Workarounds\nSet `enableScripting` to `false` or set a CSP.",
26337+
info: [
26338+
"https://github.com/mozilla/pdf.js/security/advisories/GHSA-hq66-cqwq-w95j",
26339+
"https://bugzilla.mozilla.org/show_bug.cgi?id=2055885"
26340+
]
2629926341
}
2630026342
],
2630126343
extractors: {

node/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)