Shared security patch analysis results
AI Used: DEEPSEEK deepseek-chat--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/python/mozperftest/mozperftest/test/browsertime/package.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/python/mozperftest/mozperftest/test/browsertime/package.json@@ -5,7 +5,7 @@ "license": "MPL-2.0", "dependencies": {}, "devDependencies": {- "browsertime": "https://github.com/sitespeedio/browsertime/tarball/c0e15e184944f6daf6fe68d2e4c079e70b42552d"+ "browsertime": "https://github.com/sitespeedio/browsertime/tarball/2137a3232d8c9ff624e209073243337790f9e3b6" }, "notes(private)": "We don't want to publish to npm, so this is marked as private", "private": true
Let me analyze the code diff for security fixes: Vulnerability Existed: not sure [Dependency Update] [python/mozperftest/mozperftest/test/browsertime/package.json] [Lines 5-7] [Old Code] "browsertime": "https://github.com/sitespeedio/browsertime/tarball/c0e15e184944f6daf6fe68d2e4c079e70b42552d" [Fixed Code] "browsertime": "https://github.com/sitespeedio/browsertime/tarball/2137a3232d8c9ff624e209073243337790f9e3b6" Additional Details: - The change shows a dependency version update for the browsertime package, moving from one git commit hash to another - Without knowing the specific changes between these two commits, we can't definitively say if this fixes a security vulnerability - Dependency updates often include security fixes, but could also include feature updates or bug fixes - The change appears to be updating to a newer version (based on commit hash chronology), which is generally good security practice
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/security/manager/tools/genRootCAHashes.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/security/manager/tools/genRootCAHashes.js@@ -19,6 +19,7 @@ const { CommonUtils } = ChromeUtils.import( "resource://services-common/utils.js" );+const { Services } = ChromeUtils.import("resource://gre/modules/Services.jsm"); const FILENAME_OUTPUT = "RootHashes.inc"; const FILENAME_TRUST_ANCHORS = "KnownRootHashes.json";@@ -232,7 +233,12 @@ ); }-var trustAnchorsFile = FileUtils.getFile("CurWorkD", [FILENAME_TRUST_ANCHORS]);+var trustAnchorsFile = new FileUtils.File(+ PathUtils.join(+ Services.dirsvc.get("CurWorkD", Ci.nsIFile).path,+ FILENAME_TRUST_ANCHORS+ )+); var rootHashesFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); rootHashesFile.initWithPath(arguments[0]);
Let me analyze the code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Path Traversal or File Access Issue] [security/manager/tools/genRootCAHashes.js] [Lines 232-233] [Old Code] var trustAnchorsFile = FileUtils.getFile("CurWorkD", [FILENAME_TRUST_ANCHORS]); [Fixed Code] var trustAnchorsFile = new FileUtils.File( PathUtils.join( Services.dirsvc.get("CurWorkD", Ci.nsIFile).path, FILENAME_TRUST_ANCHORS ) ); Additional Details: - The change appears to modify how the trust anchors file path is constructed - The new version uses Services.dirsvc and PathUtils.join which might provide more secure path handling - While not clearly a security vulnerability fix, it could be addressing potential path manipulation issues - The change adds an explicit import for Services module at the top of the file Note: Without more context about the threat model and previous issues, it's hard to definitively identify this as a security fix, but the change does appear to make file path handling more robust.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/semantics/forms/the-selectmenu-element/selectmenu-parts-structure.tentative.html@@ -147,6 +147,20 @@ <div slot="button" behavior="button" id="selectMenu14-button0">button0</div> <option>one</option> <option id="selectMenu14-option2">two</option>+</selectmenu>++<selectmenu id="selectMenu15">+ <div slot="button" id="selectMenu15-div0"></div>+ <option>one</option>+</selectmenu>++<selectmenu id="selectMenu16">+ <div slot="button">+ <div id="selectMenu16-div0">+ <div behavior="button" id="selectMenu16-button0">button</div>+ </div>+ </div>+ <option>one</option> </selectmenu> <script>@@ -485,4 +499,30 @@ selectMenu1.removeChild(secondOption); assert_equals(selectMenu1.value, "one"); }, "Moving a selectmenu between documents should keep controller code active");++ promise_test(async () => {+ const selectMenu = document.getElementById("selectMenu15");+ const selectMenuButtonContainer = document.getElementById("selectMenu15-div0");++ const outerDiv = document.createElement("div");+ const button = document.createElement("input");+ button.type = button.value = "button";+ button.setAttribute("behavior", "button");+ outerDiv.appendChild(button);+ selectMenuButtonContainer.appendChild(outerDiv);++ await clickOn(selectMenu);+ assert_true(selectMenu.open, "New button should receive controller code");+ }, "New parts should be detected even when in the subtree of an inserted node");++ promise_test(async () => {+ const selectMenu = document.getElementById("selectMenu16");+ const selectMenuButtonContainer = document.getElementById("selectMenu16-div0");+ const selectMenuButton = document.getElementById("selectMenu16-button0");++ selectMenuButtonContainer.remove();++ selectMenuButton.click();+ assert_false(selectMenu.open, "Removed button should no longer have controller code");+ }, "Part removals should be detected even when in the subtree of a removed node"); </script>
I'll analyze the code diff for security vulnerabilities following the specified format. Vulnerability Existed: not sure Potential DOM Clobbering Vulnerability [File] [Lines 147-161] [Old Code] <div slot="button" behavior="button" id="selectMenu14-button0">button0</div> <option>one</option> <option id="selectMenu14-option2">two</option> </selectmenu> [Fixed Code] </selectmenu> <selectmenu id="selectMenu15"> <div slot="button" id="selectMenu15-div0"></div> <option>one</option> </selectmenu> <selectmenu id="selectMenu16"> <div slot="button"> <div id="selectMenu16-div0"> <div behavior="button" id="selectMenu16-button0">button</div> </div> </div> <option>one</option> </selectmenu> Additional Details: The changes add new test cases for dynamic modification of selectmenu elements. While not directly fixing a vulnerability, the tests verify proper handling of DOM modifications which could potentially lead to DOM clobbering if not handled correctly. The tests ensure that dynamically added/removed elements with "behavior=button" are properly handled by the controller code. Vulnerability Existed: no Test Coverage Improvement [File] [Lines 485-499] [Old Code] selectMenu1.removeChild(secondOption); assert_equals(selectMenu1.value, "one"); }, "Moving a selectmenu between documents should keep controller code active"); [Fixed Code] }, "Moving a selectmenu between documents should keep controller code active"); promise_test(async () => { const selectMenu = document.getElementById("selectMenu15"); const selectMenuButtonContainer = document.getElementById("selectMenu15-div0"); const outerDiv = document.createElement("div"); const button = document.createElement("input"); button.type = button.value = "button"; button.setAttribute("behavior", "button"); outerDiv.appendChild(button); selectMenuButtonContainer.appendChild(outerDiv); await clickOn(selectMenu); assert_true(selectMenu.open, "New button should receive controller code"); }, "New parts should be detected even when in the subtree of an inserted node"); promise_test(async () => { const selectMenu = document.getElementById("selectMenu16"); const selectMenuButtonContainer = document.getElementById("selectMenu16-div0"); const selectMenuButton = document.getElementById("selectMenu16-button0"); selectMenuButtonContainer.remove(); selectMenuButton.click(); assert_false(selectMenu.open, "Removed button should no longer have controller code"); }, "Part removals should be detected even when in the subtree of a removed node"); </script> Additional Details: The changes add new test cases but don't fix any specific vulnerability. They improve test coverage for dynamic DOM modifications in selectmenu elements, ensuring proper behavior when elements are added or removed from the DOM. This helps prevent potential security issues that might arise from improper handling of dynamic content.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/workers/WorkerCSPEventListener.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/workers/WorkerCSPEventListener.cpp@@ -5,9 +5,9 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include "WorkerCSPEventListener.h"-#include "WorkerPrivate.h" #include "WorkerRef.h" #include "WorkerRunnable.h"+#include "WorkerScope.h" #include "mozilla/dom/SecurityPolicyViolationEvent.h" #include "mozilla/dom/SecurityPolicyViolationEventBinding.h" #include "mozilla/dom/WorkerRunnable.h"
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: not sure [Potential Header Inclusion Order Vulnerability] [dom/workers/WorkerCSPEventListener.cpp] [Lines 5-9] [Old Code] #include "WorkerPrivate.h" [Fixed Code] #include "WorkerScope.h" Additional Details: - The change involves swapping one header inclusion for another - Without more context about the implementation, it's unclear if this was fixing a specific security issue - Header inclusion changes could potentially affect compilation order or symbol visibility, but no clear vulnerability is evident from this change alone 2. Vulnerability Existed: no [No clear vulnerability identified] [dom/workers/WorkerCSPEventListener.cpp] [Lines 5-9] [Old Code] #include "WorkerPrivate.h" #include "WorkerRef.h" #include "WorkerRunnable.h" [Fixed Code] #include "WorkerRef.h" #include "WorkerRunnable.h" #include "WorkerScope.h" Additional Details: - The change appears to be a refactoring of header dependencies - No security-related patterns (like unsafe functions, missing checks, etc.) are visible in this diff - The modification seems focused on code organization rather than security fixes Note: Without seeing the actual implementation changes in these headers or the surrounding code, it's difficult to determine if this change was part of a larger security fix. The diff only shows header inclusion modifications.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-contain/contain-paint-clip-013.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-contain/contain-paint-clip-013.html@@ -30,7 +30,6 @@ -->- <meta name="flags" content=""> <style> div#red-overlapped-test
Based on the provided diff, I'll analyze it for security fixes: Vulnerability Existed: no [No specific vulnerability] [testing/web-platform/tests/css/css-contain/contain-paint-clip-013.html] [Lines 30] [Old Code] <meta name="flags" content=""> [Fixed Code] [Line removed] Additional Details: - This appears to be a test file modification where an empty meta tag for flags was removed - No security vulnerability is evident from this change - The modification seems to be cleanup/refactoring rather than a security fix - The empty flags meta tag wasn't serving any purpose, so its removal doesn't indicate a security issue No other vulnerabilities were detected in the provided diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.shadowBlur.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); // Test that restore() undoes any modifications var old = ctx.shadowBlur;
Analysis: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 17-18] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Notes: - This appears to be a simple variable renaming change from `offscreenCanvas` to `canvas` - No security implications or vulnerabilities are evident in this change - The modification seems to be for code consistency or readability rather than security fixes
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/gfx/gl/GLScreenBuffer.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/gfx/gl/GLScreenBuffer.cpp@@ -30,7 +30,8 @@ MOZ_ASSERT(mFactory); std::shared_ptr<SharedSurface> surf;- if (!mPool.empty() && mPool.front()->mDesc.size != size) {+ if (!mPool.empty() &&+ (mPool.front()->mDesc.size != size || !mPool.front()->IsValid())) { mPool = {}; } if (kPoolSize && mPool.size() == kPoolSize) {
Let me analyze this code diff for potential security vulnerabilities. Vulnerability Existed: yes Use of Invalid Shared Surface [gfx/gl/GLScreenBuffer.cpp] [Lines 30-33] [Old Code] if (!mPool.empty() && mPool.front()->mDesc.size != size) { [Fixed Code] if (!mPool.empty() && (mPool.front()->mDesc.size != size || !mPool.front()->IsValid())) { Additional Details: The fix adds an additional check for surface validity (!mPool.front()->IsValid()) when deciding whether to clear the pool. The old code could potentially use invalid shared surfaces, which might lead to memory corruption or undefined behavior. The fix ensures invalid surfaces are properly handled by clearing the pool. Vulnerability Existed: not sure Potential Memory Safety Issue [gfx/gl/GLScreenBuffer.cpp] [Lines 30-33] [Old Code] if (!mPool.empty() && mPool.front()->mDesc.size != size) { [Fixed Code] if (!mPool.empty() && (mPool.front()->mDesc.size != size || !mPool.front()->IsValid())) { Additional Details: The change might also address a potential memory safety issue where invalid surfaces could be accessed. However, without more context about the IsValid() implementation and how surfaces become invalid, I can't be certain if this was an actual security vulnerability or just a robustness improvement.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/system/tests/test_pathutils.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/system/tests/test_pathutils.html@@ -8,6 +8,8 @@ <title>PathUtils tests</title> </head> <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>+<script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js.js"></script>+<script src="chrome://mochikit/content/tests/SimpleTest/WorkerHandler.js"></script> <link rel="stylesheet" href="chrome://mochikit/content/tests/SimpleTest/test.css"> <script> "use strict";@@ -119,6 +121,37 @@ "\\\\server", "PathUtils.parent() with a UNC server path and child component" );++ Assert.throws(+ () => PathUtils.parent("C:", -1),+ /^NotSupportedError: PathUtils.parent: A depth of at least 1 is required/,+ "PathUtils.parent() with a negative depth throws"+ );+ Assert.throws(+ () => PathUtils.parent("C:", 0),+ /^NotSupportedError: PathUtils.parent: A depth of at least 1 is required/,+ "PathUtils.parent() with a zero depth throws"+ );++ {+ const path = "C:\\Users\\User\\AppData\\Local\\Mozilla\\Firefox\\Profiles\\foo.default";++ const expected = [+ "C:\\Users\\User\\AppData\\Local\\Mozilla\\Firefox\\Profiles",+ "C:\\Users\\User\\AppData\\Local\\Mozilla\\Firefox",+ "C:\\Users\\User\\AppData\\Local\\Mozilla",+ "C:\\Users\\User\\AppData\\Local",+ "C:\\Users\\User\\AppData",+ "C:\\Users\\User",+ "C:\\Users",+ "C:",+ null,+ ];++ for (const [i, parent] of expected.entries()) {+ is(PathUtils.parent(path, i + 1), parent, `PathUtils.parent() with depth=${i + 1}`)+ }+ } } else { is( PathUtils.parent("/"),@@ -135,6 +168,37 @@ "/var", "PathUtils.parent() with a 3 component path" );++ Assert.throws(+ () => PathUtils.parent("/", -1),+ /^NotSupportedError: PathUtils.parent: A depth of at least 1 is required/,+ "PathUtils.parent() with a negative depth throws"+ );+ Assert.throws(+ () => PathUtils.parent("/", 0),+ /^NotSupportedError: PathUtils.parent: A depth of at least 1 is required/,+ "PathUtils.parent() with a zero depth throws"+ );++ {+ const path = "/home/user/.mozilla/firefox/foo.default";+ const expected = [+ "/home/user/.mozilla/firefox",+ "/home/user/.mozilla",+ "/home/user",+ "/home",+ "/",+ null,+ ];++ for (const [i, parent] of expected.entries()) {+ is(+ PathUtils.parent(path, i + 1),+ parent,+ `PathUtils.parent() with depth=${i + 1}`+ );+ }+ } } });@@ -392,51 +456,39 @@ } });+ add_task(async function test_isAbsolute() {+ if (Services.appinfo.OS === "WINNT") {+ ok(PathUtils.isAbsolute("C:"), "Drive paths are absolute paths on Windows");+ ok(PathUtils.isAbsolute("C:\\Windows"), "Paths from the root are absolute paths on Windows");+ ok(!PathUtils.isAbsolute("foo"), "Paths containing a single item are not absolute paths on Windows");+ ok(!PathUtils.isAbsolute(".\\foo"), "Paths relative to the current working directory are not absolute paths on Windows");+ ok(!PathUtils.isAbsolute("..\\foo"), "Paths relative to the parent directory are not absolute paths on Windows");+ } else {+ ok(PathUtils.isAbsolute("/"), "Root paths are absolute paths");+ ok(PathUtils.isAbsolute("/home"), "Paths with a root stem are absolute paths");+ ok(!PathUtils.isAbsolute("foo"), "Paths containing a single non-root item are not absolute paths");+ ok(!PathUtils.isAbsolute("./foo"), "Paths relative to the current working directory are not absolute paths");+ ok(!PathUtils.isAbsolute("../foo"), "Paths relative to the parent directory are not absolute paths");+ }+ });+ add_task(async function test_getDirectories() {- const profile = await PathUtils.getProfileDir();- is(- profile,- Services.dirsvc.get("ProfD", Ci.nsIFile).path,- "PathUtils.getProfileDir() should match dirsvc"- );-- const localProfile = await PathUtils.getLocalProfileDir();- is(- localProfile,- Services.dirsvc.get("ProfLD", Ci.nsIFile).path,- "PathUtils.getLocalProfileDir() should match dirsvc"- );- // See: nsAppDirectoryServiceDefs.h- const tempDir = await PathUtils.getTempDir();- if (AppConstants.MOZ_SANDBOX) {- is(- tempDir,- Services.dirsvc.get("ContentTmpD", Ci.nsIFile).path,- "PathUtils.getTempDir() should match dirsvc"- );- } else {- is(- tempDir,- Services.dirsvc.get("TmpD", Ci.nsIFile).path,- "PathUtils.getTempDir() should match dirsvc"- );- }- });-- add_task(async function test_createUniquePath() {- let path = PathUtils.join(await PathUtils.getProfileDir(), ".test");-- let firstPath = PathUtils.createUniquePath(path);- let secondPath = PathUtils.createUniquePath(path);- SimpleTest.registerCleanupFunction(async () => {- await IOUtils.remove(firstPath);- await IOUtils.remove(secondPath);- });-- isnot(firstPath, secondPath, "Create unique paths returns different paths");- is(PathUtils.filename(firstPath), ".test", "PathUtils.createUniquePath() matches filename for first path");- is(PathUtils.filename(secondPath), "-1.test", "PathUtils.createUniquePath() has unique filename for second path");+ const tests = [+ ["profileDir", "getProfileDir", "ProfD"],+ ["localProfileDir", "getLocalProfileDir", "ProfLD"],+ ["tempDir", "getTempDir", AppConstants.MOZ_SANDBOX ? "ContentTmpD" : "TmpD"],+ ];++ for (const [attrName, methName, dirConstant] of tests) {+ const expected = Services.dirsvc.get(dirConstant, Ci.nsIFile).path;++ const attrValue = PathUtils[attrName];+ is(attrValue, expected, `PathUtils.${attrName} == Services.dirsvc.get("${dirConstant}", Ci.nsIFile).path`);++ const methValue = await PathUtils[methName]();+ is(methValue, expected, `PathUtils.${methName}() == Services.dirsvc.get("${dirConstant}", Ci.nsIFile).path`);+ } }); </script>
After analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily test additions and refactoring rather than security fixes. Here's my analysis: 1. Vulnerability Existed: no No security vulnerability found [test_pathutils.html] [Various lines] The changes mainly add new test cases for PathUtils functionality and refactor existing tests. 2. The diff shows: - Added new test cases for PathUtils.parent() with depth parameter validation - Added new test cases for PathUtils.isAbsolute() - Refactored test_getDirectories() to use a loop for common test patterns - Removed test_createUniquePath() test (but this appears to be test reorganization rather than a security fix) 3. The changes focus on: - Adding input validation tests (negative/zero depth) - Adding more comprehensive path testing - Improving test organization - No actual security vulnerabilities appear to be fixed in this diff The modifications seem to be test improvements and code quality enhancements rather than security fixes. No CVE or known vulnerability patterns are evident in these changes.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceGpuProcess.java+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceGpuProcess.java@@ -10,6 +10,8 @@ import android.view.Surface; import org.mozilla.gecko.annotation.WrapForJNI; import org.mozilla.gecko.gfx.ICompositorSurfaceManager;+import org.mozilla.gecko.gfx.ISurfaceAllocator;+import org.mozilla.gecko.gfx.RemoteSurfaceAllocator; public class GeckoServiceGpuProcess extends GeckoServiceChildProcess { private static final String LOGTAG = "ServiceGpuProcess";@@ -18,6 +20,11 @@ @Override public ICompositorSurfaceManager getCompositorSurfaceManager() { return RemoteCompositorSurfaceManager.getInstance();+ }++ @Override+ public ISurfaceAllocator getSurfaceAllocator() {+ return RemoteSurfaceAllocator.getInstance(); } }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Missing Interface Implementation] [mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoServiceGpuProcess.java] [Lines 18-23] [Old Code] ```java @Override public ICompositorSurfaceManager getCompositorSurfaceManager() { return RemoteCompositorSurfaceManager.getInstance(); } ``` [Fixed Code] ```java @Override public ICompositorSurfaceManager getCompositorSurfaceManager() { return RemoteCompositorSurfaceManager.getInstance(); } @Override public ISurfaceAllocator getSurfaceAllocator() { return RemoteSurfaceAllocator.getInstance(); } ``` Additional Details: The diff shows an added method implementation for `getSurfaceAllocator()`. While this isn't clearly a security fix, it could potentially address a security issue if the missing implementation was causing insecure default behavior. Without more context about the parent class/interface requirements, we can't be certain if this was a security fix or just a feature addition. Note: No clear security vulnerability is evident from this diff. The changes appear to be adding a new required interface method implementation rather than fixing a specific security issue. The addition of `ISurfaceAllocator` functionality might be related to security, but there's no explicit evidence of a vulnerability being fixed.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.translate(100, 0); var g = ctx.createLinearGradient(0, 0, 200, 0);@@ -29,9 +29,9 @@ ctx.fillStyle = g; ctx.translate(-150, 0); ctx.fillRect(50, 0, 100, 50);-_assertPixel(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255");+_assertPixel(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely cosmetic/refactoring changes where a variable name was changed from `offscreenCanvas` to `canvas` and all subsequent references were updated accordingly. There are no security-related changes in the diff. Here's the structured response: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.linear.transform.2.html] [17-29] Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); The changes are purely variable renaming and don't affect security in any way. All the functionality remains the same, just with a different variable name.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50);@@ -27,7 +27,7 @@ ctx.moveTo(0, 0); ctx.roundRect(100, 25, 0, 0, [0]); ctx.stroke();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't find any security vulnerabilities. The changes appear to be purely cosmetic/refactoring changes where a variable name was changed from `offscreenCanvas` to `canvas` for consistency or readability purposes. Here's the structured response: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.zero.5.html] [Lines 17-18, 27] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); ... _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); ... _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");] The changes don't affect any security-related functionality, input validation, or data handling. It's simply a variable renaming with no security implications.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/messagechannel/MessagePortParent.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/messagechannel/MessagePortParent.cpp@@ -39,52 +39,69 @@ mozilla::ipc::IPCResult MessagePortParent::RecvPostMessages( nsTArray<MessageData>&& aMessages) {+ if (!mService) {+ NS_WARNING("PostMessages is called after a shutdown!");+ // This implies most probably that CloseAndDelete() has been already called+ // such that we have no better option than to silently ignore this call.+ return IPC_OK();+ }++ if (!mEntangled) {+ // If we were shut down, the above condition already bailed out. So this+ // should actually never happen and returning a failure is fine.+ return IPC_FAIL(this, "RecvPostMessages not entangled");+ }+ // This converts the object in a data struct where we have BlobImpls. FallibleTArray<RefPtr<SharedMessageBody>> messages; if (NS_WARN_IF(!SharedMessageBody::FromMessagesToSharedParent(aMessages, messages))) {- return IPC_FAIL_NO_REASON(this);- }-- if (!mEntangled) {- return IPC_FAIL_NO_REASON(this);- }-- if (!mService) {- NS_WARNING("Entangle is called after a shutdown!");- return IPC_FAIL_NO_REASON(this);+ // FromMessagesToSharedParent() returns false only if the array allocation+ // failed.+ // See bug 1750497 for further discussion if this is the wanted behavior.+ return IPC_FAIL(this, "SharedMessageBody::FromMessagesToSharedParent"); } if (messages.IsEmpty()) {- return IPC_FAIL_NO_REASON(this);+ // An empty payload can be safely ignored.+ return IPC_OK(); } if (!mService->PostMessages(this, std::move(messages))) {- return IPC_FAIL_NO_REASON(this);+ // TODO: Verify if all failure conditions of PostMessages() merit an+ // IPC_FAIL. See bug 1750499.+ return IPC_FAIL(this, "RecvPostMessages->PostMessages"); } return IPC_OK(); } mozilla::ipc::IPCResult MessagePortParent::RecvDisentangle( nsTArray<MessageData>&& aMessages) {+ if (!mService) {+ NS_WARNING("Entangle is called after a shutdown!");+ // This implies most probably that CloseAndDelete() has been already called+ // such that we can silently ignore this call.+ return IPC_OK();+ }++ if (!mEntangled) {+ // If we were shut down, the above condition already bailed out. So this+ // should actually never happen and returning a failure is fine.+ return IPC_FAIL(this, "RecvDisentangle not entangled");+ }+ // This converts the object in a data struct where we have BlobImpls. FallibleTArray<RefPtr<SharedMessageBody>> messages; if (NS_WARN_IF(!SharedMessageBody::FromMessagesToSharedParent(aMessages, messages))) {- return IPC_FAIL_NO_REASON(this);- }-- if (!mEntangled) {- return IPC_FAIL_NO_REASON(this);- }-- if (!mService) {- NS_WARNING("Entangle is called after a shutdown!");- return IPC_FAIL_NO_REASON(this);+ // TODO: Verify if failed allocations merit an IPC_FAIL. See bug 1750497.+ return IPC_FAIL(this, "SharedMessageBody::FromMessagesToSharedParent"); } if (!mService->DisentanglePort(this, std::move(messages))) {- return IPC_FAIL_NO_REASON(this);+ // TODO: Verify if all failure conditions of DisentanglePort() merit an+ // IPC_FAIL. See bug 1750501.+ return IPC_FAIL(this, "RecvDisentangle->DisentanglePort"); } CloseAndDelete();@@ -106,7 +123,7 @@ MOZ_ASSERT(mEntangled); if (!mService->ClosePort(this)) {- return IPC_FAIL_NO_REASON(this);+ return IPC_FAIL(this, "RecvClose->ClosePort"); } Close();
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes Race Condition/Use-After-Free [File] dom/messagechannel/MessagePortParent.cpp [Lines 39-69, 76-106] [Old Code] - Missing checks for mService and mEntangled before processing messages - Using IPC_FAIL_NO_REASON for all error cases [Fixed Code] - Added proper checks for mService and mEntangled at start of functions - More descriptive error messages and proper handling of shutdown cases - Changed IPC_FAIL_NO_REASON to specific IPC_FAIL with reasons 2. Vulnerability Existed: yes Improper Error Handling [File] dom/messagechannel/MessagePortParent.cpp [Lines 39-106] [Old Code] - Uniformly using IPC_FAIL_NO_REASON for all error cases - No distinction between different failure scenarios [Fixed Code] - Added specific error messages for different failure cases - Better handling of empty messages case - Added TODO comments for further error handling improvements 3. Vulnerability Existed: not sure Potential Memory Safety Issues [File] dom/messagechannel/MessagePortParent.cpp [Lines 39-106] [Old Code] - No explicit handling of shutdown cases - Possible null pointer dereferences if mService is null [Fixed Code] - Added explicit checks for mService nullity - Added warning messages for post-shutdown operations - More robust state checking The changes primarily focus on improving error handling and state management, which could prevent potential race conditions and use-after-free vulnerabilities that might occur when the port is being shut down while messages are still being processed. The addition of proper state checks (mService and mEntangled) at the beginning of functions makes the code more robust against invalid state transitions.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/toolkit/components/sessionstore/SessionStoreRestoreData.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/sessionstore/SessionStoreRestoreData.h@@ -28,7 +28,7 @@ bool IsEmpty(); SessionStoreRestoreData* FindDataForChild(BrowsingContext* aContext); bool CanRestoreInto(nsIURI* aDocumentURI);- bool RestoreInto(RefPtr<BrowsingContext> aContext);+ MOZ_CAN_RUN_SCRIPT bool RestoreInto(RefPtr<BrowsingContext> aContext); NS_DECL_ISUPPORTS NS_DECL_NSISESSIONSTORERESTOREDATA
Let me analyze the code diff for security fixes: Vulnerability Existed: not sure [Potential Script Execution Issue] [toolkit/components/sessionstore/SessionStoreRestoreData.h] [Lines 28] [Old Code] bool RestoreInto(RefPtr<BrowsingContext> aContext); [Fixed Code] MOZ_CAN_RUN_SCRIPT bool RestoreInto(RefPtr<BrowsingContext> aContext); Additional Details: The main change is the addition of MOZ_CAN_RUN_SCRIPT annotation to the RestoreInto method. This suggests the function may execute scripts, which could potentially lead to security issues if not properly handled. The annotation helps ensure proper script handling and safety checks are performed. While this isn't fixing a specific known vulnerability, it's improving the safety of script execution in the browser context.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-interposed.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-interposed.html@@ -8,7 +8,6 @@ <link rel="reviewer" title="Mihai Balan" href="mailto:[email protected]"> <link rel="help" href="https://drafts.fxtf.org/compositing-1/#mix-blend-mode"> <meta name="assert" content="Test checks that an element with mix-blend-mode having a child blends with the parent element.">- <meta name="flags" content=""/> <link rel="match" href="reference/green-square.html"> <style type="text/css"> div {
Based on the provided code diff, here's the analysis: Vulnerability Existed: no [No specific vulnerability] [testing/web-platform/tests/css/compositing/mix-blend-mode/mix-blend-mode-blended-element-interposed.html] [Lines 8] [Old Code] <meta name="flags" content=""/> [Fixed Code] [Removed line] Additional Details: 1. The change simply removes an empty meta tag for flags which wasn't serving any purpose. 2. This appears to be a minor cleanup rather than a security fix. 3. No actual security vulnerability is being addressed here - just test file maintenance.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeat.basic.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -32,10 +32,10 @@ var pattern = ctx.createPattern(bitmap, 'no-repeat'); ctx.fillStyle = pattern; ctx.fillRect(0, 0, 100, 50);- _assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");- _assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");- _assertPixel(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");- _assertPixel(offscreenCanvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");+ _assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");+ _assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");+ _assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+ _assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255"); }, t_fail); }).then(t_pass, t_fail);
Here's my analysis of the provided code diff: 1. Vulnerability Existed: no Variable Renaming [File] [Lines 13-14, 32-35] Old Code: ```javascript var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255"); ``` Fixed Code: ```javascript var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255"); ``` The changes in this diff appear to be purely cosmetic, renaming the variable `offscreenCanvas` to `canvas` for consistency or clarity. There are no security vulnerabilities being fixed in this diff - it's simply a variable name change that doesn't affect the functionality or security of the code. All the assertions and canvas operations remain the same, just using the new variable name.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/js/src/builtin/MapObject.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/builtin/MapObject.h@@ -153,6 +153,9 @@ ValueMap* getData() { return maybePtrFromReservedSlot<ValueMap>(DataSlot); }+ [[nodiscard]] static bool get(JSContext* cx, unsigned argc, Value* vp);+ [[nodiscard]] static bool set(JSContext* cx, unsigned argc, Value* vp);+ private: static const ClassSpec classSpec_; static const JSClassOps classOps_;@@ -178,11 +181,9 @@ [[nodiscard]] static bool size_impl(JSContext* cx, const CallArgs& args); [[nodiscard]] static bool size(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool get_impl(JSContext* cx, const CallArgs& args);- [[nodiscard]] static bool get(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool has_impl(JSContext* cx, const CallArgs& args); [[nodiscard]] static bool has(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool set_impl(JSContext* cx, const CallArgs& args);- [[nodiscard]] static bool set(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool delete_impl(JSContext* cx, const CallArgs& args); [[nodiscard]] static bool delete_(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool keys_impl(JSContext* cx, const CallArgs& args);
Based on the provided code diff, here's the analysis: Vulnerability Existed: not sure Potential Function Declaration Order Issue [File] js/src/builtin/MapObject.h [Lines 153-181] [Old Code] [[nodiscard]] static bool get(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool set(JSContext* cx, unsigned argc, Value* vp); [Fixed Code] [[nodiscard]] static bool get(JSContext* cx, unsigned argc, Value* vp); [[nodiscard]] static bool set(JSContext* cx, unsigned argc, Value* vp); Additional Details: The diff shows that the declarations of `get()` and `set()` methods were moved from the private section to the public section of the class. While this could potentially affect encapsulation and access control, I'm not certain if this was specifically addressing a security vulnerability or just a code organization improvement. The `[[nodiscard]]` attributes were already present in both versions, indicating proper handling of return values. There are no obvious security vulnerabilities like buffer overflows or injection issues visible in this diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/gfx/layers/wr/ClipManager.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/gfx/layers/wr/ClipManager.cpp@@ -8,6 +8,7 @@ #include "DisplayItemClipChain.h" #include "FrameMetrics.h"+#include "mozilla/dom/Document.h" #include "mozilla/layers/StackingContextHelper.h" #include "mozilla/layers/WebRenderLayerManager.h" #include "mozilla/webrender/WebRenderAPI.h"@@ -332,9 +333,17 @@ LayoutDevicePoint scrollOffset = LayoutDevicePoint::FromAppUnitsRounded( scrollableFrame->GetScrollPosition(), auPerDevPixel);+ // Currently we track scroll-linked effects at the granularity of documents,+ // not scroll frames, so we consider a scroll frame to have a scroll-linked+ // effect whenever its containing document does.+ const bool hasScrollLinkedEffect =+ aItem->Frame()->PresContext()->Document()->HasScrollLinkedEffect();+ return Some(mBuilder->DefineScrollLayer( viewId, parent, wr::ToLayoutRect(contentRect), wr::ToLayoutRect(clipBounds), wr::ToLayoutVector2D(scrollOffset),+ wr::ToWrAPZScrollGeneration(scrollableFrame->ScrollGenerationOnApz()),+ wr::ToWrHasScrollLinkedEffect(hasScrollLinkedEffect), wr::SpatialKey(uint64_t(scrollFrame), 0, wr::SpatialKeyKind::Scroll))); }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Scroll-Linked Effect Vulnerability] [gfx/layers/wr/ClipManager.cpp] [Lines 332-343] [Old Code] ```cpp LayoutDevicePoint scrollOffset = LayoutDevicePoint::FromAppUnitsRounded( scrollableFrame->GetScrollPosition(), auPerDevPixel); return Some(mBuilder->DefineScrollLayer( viewId, parent, wr::ToLayoutRect(contentRect), wr::ToLayoutRect(clipBounds), wr::ToLayoutVector2D(scrollOffset), wr::SpatialKey(uint64_t(scrollFrame), 0, wr::SpatialKeyKind::Scroll))); ``` [Fixed Code] ```cpp LayoutDevicePoint scrollOffset = LayoutDevicePoint::FromAppUnitsRounded( scrollableFrame->GetScrollPosition(), auPerDevPixel); const bool hasScrollLinkedEffect = aItem->Frame()->PresContext()->Document()->HasScrollLinkedEffect(); return Some(mBuilder->DefineScrollLayer( viewId, parent, wr::ToLayoutRect(contentRect), wr::ToLayoutRect(clipBounds), wr::ToLayoutVector2D(scrollOffset), wr::ToWrAPZScrollGeneration(scrollableFrame->ScrollGenerationOnApz()), wr::ToWrHasScrollLinkedEffect(hasScrollLinkedEffect), wr::SpatialKey(uint64_t(scrollFrame), 0, wr::SpatialKeyKind::Scroll))); ``` Additional Details: The change adds tracking for scroll-linked effects at the document level. While this appears to be a security-related improvement (potentially addressing scroll-jacking or timing attack vulnerabilities), I cannot definitively identify a specific CVE or vulnerability name. The addition of scroll generation tracking and scroll-linked effect detection suggests improved security around scroll behavior. The diff primarily adds functionality rather than fixing clearly identifiable vulnerabilities. The security implications appear to be related to better tracking and handling of scroll behavior, which could prevent potential scroll-based attacks or timing issues.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/devtools/server/tests/browser/browser_perf-04.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/server/tests/browser/browser_perf-04.js@@ -14,11 +14,6 @@ await front.isSupportedPlatform(), true, "This test only runs on supported platforms."- );- is(- await front.isLockedForPrivateBrowsing(),- false,- "The browser is not in private browsing mode." ); is(await front.isActive(), false, "The profiler is not active yet.");
Based on the provided code diff, here's the analysis: Vulnerability Existed: not sure [Potential Information Leak] [devtools/server/tests/browser/browser_perf-04.js] [Lines 14-18] [Old Code] ``` is( await front.isLockedForPrivateBrowsing(), false, "The browser is not in private browsing mode." ); ``` [Fixed Code] [Removed entirely] Additional Details: The removed code was checking whether the browser was in private browsing mode. While this doesn't directly indicate a security vulnerability, removing this check could be related to privacy concerns or information leakage about the browser's state. However, since this is a test file and the exact context isn't clear, I can't be certain if this was an actual security fix or just a test cleanup. The removal might be preventing potential information disclosure about the browser's private browsing state during testing.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/tokio-timer/CHANGELOG.md+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/tokio-timer/CHANGELOG.md@@ -1,3 +1,15 @@+# 0.2.13 (February 4, 2020)++* Add `tokio 0.2.x` deprecation notice.++# 0.2.12 (November 27, 2019)++### Added+- `timer::set_default`, which functions like `timer::with_default`, but+ returns a drop guard (#1725).+- `clock::set_default`, which functions like `clock::with_default`, but+ returns a drop guard (#1725).+ # 0.2.11 (May 14, 2019) ### Added
Based on the provided diff, I don't see any actual code changes that would indicate security fixes - it's just a changelog update showing version history and feature additions. Here's my analysis: Vulnerability Existed: no No security-related changes found [third_party/rust/tokio-timer/CHANGELOG.md] [Lines 1-15] [Old changelog content] [Updated changelog content with version history] The diff only shows: 1. Addition of version 0.2.13 with deprecation notice 2. Addition of version 0.2.12 with new feature notes 3. No actual code changes or security fixes mentioned Since this is just documentation/changelog updates without any code modifications or security-related notes, there don't appear to be any security vulnerabilities being addressed in this particular diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-053.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-053.html@@ -9,7 +9,6 @@ <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> <link rel="match" href="reference/shape-outside-circle-053-ref.html">- <meta name="flags" content=""> <meta name="assert" content="Test the boxes are wrapping around the right float shape defined by circle(50% at right 40px top 40px) value under sideways-lr writing-mode."> <style> .container {
Analysis of the code diff: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 9] [Old Code] <meta name="flags" content=""> [Fixed Code] (line removed) Additional notes: - The diff shows removal of an empty meta tag with "flags" attribute, which doesn't appear to be security-related - This appears to be a test file cleanup rather than a security fix - No actual security vulnerabilities or sensitive data handling were modified in this change - The change is likely related to test configuration rather than security hardening
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.