Firefox · Core
CVE-2026-109737
Logic Error in Core
Overview
Moderate
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
ifbrowser/components/preferences/dialogs/permissions.js |
modified |
Files Changed
browser/components/preferences/dialogs/permissions.jsbrowser/components/preferences/dialogs/sitePermissions.js
Patch
diff --git a/browser/components/preferences/dialogs/permissions.js b/browser/components/preferences/dialogs/permissions.js
index 4b513ad3ce4..3ebc8146a2e 100644
--- a/browser/components/preferences/dialogs/permissions.js
+++ b/browser/components/preferences/dialogs/permissions.js
@@ -13,6 +13,8 @@ var { XPCOMUtils } = ChromeUtils.importESModule(
const lazy = {};
ChromeUtils.defineESModuleGetters(lazy, {
+ isTrailingDotPolicyDuplicate:
+ "resource://gre/modules/PoliciesHelpers.sys.mjs",
PlacesUtils: "resource://gre/modules/PlacesUtils.sys.mjs",
});
@@ -349,6 +351,12 @@ var gPermissionManager = {
if (perm.type !== this._type) {
return;
}
+ if (
+ perm.expireType === Services.perms.EXPIRE_POLICY &&
+ lazy.isTrailingDotPolicyDuplicate(perm)
+ ) {
+ return;
+ }
if (!this._isCapabilitySupported(perm.capability)) {
return;
}
diff --git a/browser/components/preferences/dialogs/sitePermissions.js b/browser/components/preferences/dialogs/sitePermissions.js
index 013c0df347b..7d79ade2d95 100644
--- a/browser/components/preferences/dialogs/sitePermissions.js
+++ b/browser/components/preferences/dialogs/sitePermissions.js
@@ -14,6 +14,13 @@ var { XPCOMUtils } = ChromeUtils.importESModule(
"resource://gre/modules/XPCOMUtils.sys.mjs"
);
+const lazy = {};
+
+ChromeUtils.defineESModuleGetters(lazy, {
+ isTrailingDotPolicyDuplicate:
+ "resource://gre/modules/PoliciesHelpers.sys.mjs",
+});
+
XPCOMUtils.defineLazyServiceGetter(
this,
"SiteCategory",
@@ -440,6 +447,8 @@ var gSitePermissionsManager = {
type !== this._type ||
!PERMISSION_STATES.includes(perm.capability) ||
!SitePermissions.isSupportedPrincipal(perm.principal) ||
+ (perm.expireType === Services.perms.EXPIRE_POLICY &&
+ lazy.isTrailingDotPolicyDuplicate(perm)) ||
// Skip private browsing session permissions
(perm.principal.privateBrowsingId !==
Services.scriptSecurityManager.DEFAULT_PRIVATE_BROWSING_ID &&
Loading diff…
References
On This Page