Firefox · Core
CVE-2026-109766
Logic Error in Core
Overview
Moderate
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
shouldLoadbrowser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjs |
modified | |
ifbrowser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjs |
modified |
Files Changed
browser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjsbrowser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
Patch
diff --git a/browser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjs b/browser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjs
index 0f4350767d5..d217b2de3e0 100644
--- a/browser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjs
+++ b/browser/components/enterprisepolicies/helpers/WebsiteFilter.sys.mjs
@@ -157,11 +157,11 @@ export let WebsiteFilter = {
shouldLoad(contentLocation, loadInfo) {
let contentType = loadInfo.externalContentPolicyType;
- let url = contentLocation.spec.toLowerCase();
+ let url = contentLocation.spec;
if (contentLocation.scheme == "view-source") {
url = contentLocation.pathQueryRef;
- } else if (url.startsWith("about:reader?")) {
- url = lazy.ReaderMode.getOriginalUrl(url);
+ } else if (url.toLowerCase().startsWith("about:reader?")) {
+ url = lazy.ReaderMode.getOriginalUrl("about:reader?" + url.substring(13));
}
if (
contentType == Ci.nsIContentPolicy.TYPE_DOCUMENT ||
diff --git a/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js b/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
index c19b42f393e..15895a128d4 100644
--- a/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
+++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
@@ -66,6 +66,13 @@ add_task(async function test_http() {
encodeURIComponent(SUPPORT_FILES_PATH + BLOCKED_PAGE),
true
);
+ await checkBlockedPage(
+ "about:reader?URL=" +
+ encodeURIComponent(SUPPORT_FILES_PATH + EXCEPTION_PAGE) +
+ "&url=" +
+ encodeURIComponent(SUPPORT_FILES_PATH + BLOCKED_PAGE),
+ true
+ );
await checkBlockedPage(SUPPORT_FILES_PATH + EXCEPTION_PAGE, false);
await checkBlockedPage(SUPPORT_FILES_PATH + "301.sjs", true);
Loading diff…
Regression Test / PoC
shipped with the fix
diff --git a/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js b/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
index c19b42f393e..15895a128d4 100644
--- a/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
+++ b/browser/components/enterprisepolicies/tests/browser/browser_policy_websitefilter.js
@@ -66,6 +66,13 @@ add_task(async function test_http() {
encodeURIComponent(SUPPORT_FILES_PATH + BLOCKED_PAGE),
true
);
+ await checkBlockedPage(
+ "about:reader?URL=" +
+ encodeURIComponent(SUPPORT_FILES_PATH + EXCEPTION_PAGE) +
+ "&url=" +
+ encodeURIComponent(SUPPORT_FILES_PATH + BLOCKED_PAGE),
+ true
+ );
await checkBlockedPage(SUPPORT_FILES_PATH + EXCEPTION_PAGE, false);
await checkBlockedPage(SUPPORT_FILES_PATH + "301.sjs", true);
Loading diff…
References
On This Page