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/third_party/rust/ash/src/extensions/nv/mesh_shader.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/ash/src/extensions/nv/mesh_shader.rs@@ -5,15 +5,15 @@ #[derive(Clone)] pub struct MeshShader {- mesh_shader_fn: vk::NvMeshShaderFn,+ fp: vk::NvMeshShaderFn, } impl MeshShader { pub fn new(instance: &Instance, device: &Device) -> Self {- let mesh_shader_fn = vk::NvMeshShaderFn::load(|name| unsafe {+ let fp = vk::NvMeshShaderFn::load(|name| unsafe { mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr())) });- Self { mesh_shader_fn }+ Self { fp } } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMeshTasksNV.html>"]@@ -23,7 +23,7 @@ task_count: u32, first_task: u32, ) {- self.mesh_shader_fn+ self.fp .cmd_draw_mesh_tasks_nv(command_buffer, task_count, first_task); }@@ -36,13 +36,8 @@ draw_count: u32, stride: u32, ) {- self.mesh_shader_fn.cmd_draw_mesh_tasks_indirect_nv(- command_buffer,- buffer,- offset,- draw_count,- stride,- );+ self.fp+ .cmd_draw_mesh_tasks_indirect_nv(command_buffer, buffer, offset, draw_count, stride); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdDrawMeshTasksIndirectCountNV.html>"]@@ -56,7 +51,7 @@ max_draw_count: u32, stride: u32, ) {- self.mesh_shader_fn.cmd_draw_mesh_tasks_indirect_count_nv(+ self.fp.cmd_draw_mesh_tasks_indirect_count_nv( command_buffer, buffer, offset,@@ -72,6 +67,6 @@ } pub fn fp(&self) -> &vk::NvMeshShaderFn {- &self.mesh_shader_fn+ &self.fp } }
After analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No specific vulnerability found File: third_party/rust/ash/src/extensions/nv/mesh_shader.rs Lines: Various Old Code: Used `mesh_shader_fn` field name Fixed Code: Changed to `fp` field name Additional Details: - The changes appear to be purely cosmetic/refactoring, renaming a field from `mesh_shader_fn` to `fp` (likely standing for "function pointers") - The functionality remains identical, just with a shorter field name - No security vulnerabilities were fixed in this diff - The unsafe block remains unchanged and is properly used for FFI operations - The Vulkan API calls and their parameters remain the same This appears to be a code style/consistency change rather than a security fix. The diff doesn't show any changes that would indicate a patched vulnerability.
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.4.radii.3.dompoint.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.4.radii.3.dompoint.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 = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -27,15 +27,15 @@ ctx.fill(); // bottom-right corner-_assertPixel(offscreenCanvas, 79,48, 255,0,0,255, "79,48", "255,0,0,255");-_assertPixel(offscreenCanvas, 58,48, 0,255,0,255, "58,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,39, 255,0,0,255, "98,39", "255,0,0,255");-_assertPixel(offscreenCanvas, 98,28, 0,255,0,255, "98,28", "0,255,0,255");+_assertPixel(canvas, 79,48, 255,0,0,255, "79,48", "255,0,0,255");+_assertPixel(canvas, 58,48, 0,255,0,255, "58,48", "0,255,0,255");+_assertPixel(canvas, 98,39, 255,0,0,255, "98,39", "255,0,0,255");+_assertPixel(canvas, 98,28, 0,255,0,255, "98,28", "0,255,0,255"); // other corners-_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(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"); t.done(); });
After analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompoint.html [Lines] 17-27 [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'); 2. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.3.dompoint.html [Lines] 27-36 [Old Code] _assertPixel(offscreenCanvas, ...) (multiple instances) [Fixed Code] _assertPixel(canvas, ...) (multiple instances) The changes appear to be purely cosmetic/refactoring in nature, renaming the variable `offscreenCanvas` to `canvas` for consistency or clarity. There are no security-related fixes in this diff, no changes to the actual functionality or security-sensitive operations, and no known vulnerabilities being addressed. The changes only affect variable naming and subsequent usage in test assertions.
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/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json@@ -28631,7 +28631,6 @@ "-Wunused-lambda-capture" ], "defines": [- "MULTI_MONITOR_SCREENSHARE", "WEBRTC_USE_PIPEWIRE", "USE_UDEV", "USE_AURA=1",
Analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potentially insecure feature flag] [dom/media/webrtc/third_party_build/gn-configs/x64_False_x86_linux.json] [Lines 28631-28635] [Old Code] `"defines": [ "MULTI_MONITOR_SCREENSHARE", "WEBRTC_USE_PIPEWIRE", "USE_UDEV", "USE_AURA=1",` [Fixed Code] `"defines": [ "WEBRTC_USE_PIPEWIRE", "USE_UDEV", "USE_AURA=1",` Additional Details: - The removal of "MULTI_MONITOR_SCREENSHARE" might indicate a security-related change, but without more context about why this define was removed, we can't be certain. - This could potentially be related to fixing a vulnerability in multi-monitor screensharing functionality, but there's no explicit vulnerability name or CVE associated with this change in the diff. - The change might be related to reducing attack surface by removing unnecessary features rather than fixing a specific vulnerability.
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.quadraticCurveTo.shape.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.quadraticCurveTo.shape.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 = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -28,11 +28,11 @@ ctx.moveTo(-1000, 1050); ctx.quadraticCurveTo(0, -1000, 1200, 1050); ctx.stroke();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_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, 50,25, 0,255,0,255, "50,25", "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.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 the variable name `offscreenCanvas` was renamed to `canvas` and all subsequent references were updated accordingly. Here's the structured response: Vulnerability Existed: no [No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.quadraticCurveTo.shape.html] [Lines 17-28] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, ...)] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, ...)] The changes are purely variable naming improvements and don't address any security issues. The functionality remains exactly 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/accessible/base/nsCoreUtils.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/accessible/base/nsCoreUtils.h@@ -14,6 +14,7 @@ #include "nsPoint.h" #include "nsTArray.h"+#include "Units.h" class nsRange; class nsTreeColumn;@@ -167,10 +168,10 @@ * * @param aScrollableFrame the scrollable frame * @param aFrame the frame to scroll- * @param aPoint the point scroll to+ * @param aPoint the point scroll to (in dev pixels) */ static void ScrollFrameToPoint(nsIFrame* aScrollableFrame, nsIFrame* aFrame,- const nsIntPoint& aPoint);+ const mozilla::LayoutDeviceIntPoint& aPoint); /** * Converts scroll type constant defined in nsIAccessibleScrollType to@@ -186,7 +187,7 @@ * * @param aNode the DOM node hosted in the window. */- static nsIntPoint GetScreenCoordsForWindow(nsINode* aNode);+ static mozilla::LayoutDeviceIntPoint GetScreenCoordsForWindow(nsINode* aNode); /** * Return document shell for the given DOM node.@@ -318,6 +319,7 @@ static void DispatchAccEvent(RefPtr<nsIAccessibleEvent> aEvent); static bool IsDisplayContents(nsIContent* aContent);+ static bool CanCreateAccessibleWithoutFrame(nsIContent* aContent); /** * Return whether the document and all its in-process ancestors are visible in
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Type Safety Issue] [accessible/base/nsCoreUtils.h] [Lines 167-170] [Old Code] static void ScrollFrameToPoint(nsIFrame* aScrollableFrame, nsIFrame* aFrame, const nsIntPoint& aPoint); [Fixed Code] static void ScrollFrameToPoint(nsIFrame* aScrollableFrame, nsIFrame* aFrame, const mozilla::LayoutDeviceIntPoint& aPoint); 2. Vulnerability Existed: not sure [Potential Type Safety Issue] [accessible/base/nsCoreUtils.h] [Lines 186-187] [Old Code] static nsIntPoint GetScreenCoordsForWindow(nsINode* aNode); [Fixed Code] static mozilla::LayoutDeviceIntPoint GetScreenCoordsForWindow(nsINode* aNode); Additional Details: - The changes involve replacing `nsIntPoint` with `mozilla::LayoutDeviceIntPoint` in two method signatures. - While this appears to be a type safety improvement (using device pixels instead of abstract points), there's no clear evidence this was fixing a specific security vulnerability. - The changes might be related to better coordinate system handling or preventing potential integer overflow/underflow issues, but this is speculative. - The added include "Units.h" suggests these changes are part of a larger refactoring to use more specific unit types. - The new method `CanCreateAccessibleWithoutFrame` doesn't appear to be security-related.
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/feature-policy/reporting/generic-sensor-reporting.https.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/feature-policy/reporting/generic-sensor-reporting.https.html@@ -24,7 +24,7 @@ assert_false(sensor_features_verified[report.body.featureId]); // Validate the remainder of the report- assert_equals(report.type, "feature-policy-violation");+ assert_equals(report.type, "permissions-policy-violation"); assert_equals(report.url, document.location.href); assert_equals(report.body.sourceFile, document.location.href); assert_equals(typeof report.body.lineNumber, "number");@@ -44,7 +44,7 @@ async_test(t => { new ReportingObserver(t.step_func(check_report_format),- {types: ['feature-policy-violation']}).observe();+ {types: ['permissions-policy-violation']}).observe(); assert_throws_dom("SecurityError", () => new Accelerometer(), "Constructing sensors should be blocked by policy"); assert_throws_dom("SecurityError", () => new AmbientLightSensor(), "Constructing sensors should be blocked by policy"); assert_throws_dom("SecurityError", () => new Gyroscope(), "Constructing sensors should be blocked by policy");
Here's the analysis following the requested format: Vulnerability Existed: not sure [Feature Policy to Permissions Policy Renaming] [testing/web-platform/tests/feature-policy/reporting/generic-sensor-reporting.https.html] [Lines 24, 44] [Old Code] assert_equals(report.type, "feature-policy-violation"); [Fixed Code] assert_equals(report.type, "permissions-policy-violation"); Additional Details: This appears to be a change reflecting the renaming of "Feature Policy" to "Permissions Policy" in the web standards. While this isn't a direct security vulnerability fix, it's updating the code to match current specifications. The change ensures proper handling of policy violation reports under the new naming convention. Note: The diff shows two instances of this change (lines 24 and 44), both following the same pattern of updating from "feature-policy-violation" to "permissions-policy-violation". This appears to be a standards-compliance update rather than a security vulnerability fix.
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-values/ch-unit-008.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-values/ch-unit-008.html@@ -8,7 +8,6 @@ <link rel="help" href="https://www.w3.org/TR/css-values-3/#font-relative-lengths"> <link rel="match" href="reference/ch-unit-008-ref.html">- <meta name="flags" content=""> <style> div
Looking at the provided code diff, I don't see any security-related changes. The diff only shows the removal of an empty meta tag with a "flags" attribute, which appears to be a test configuration change rather than a security fix. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/css/css-values/ch-unit-008.html] [Lines 8] [Old Code] <meta name="flags" content=""> [Fixed Code] (removed line) Additional notes: 1. The change appears to be removing an unused/empty meta tag from a test file 2. There's no indication of any security vulnerability being fixed 3. This looks like a minor cleanup change rather than a security patch 4. The file is a test file (html) for CSS unit testing, not production code No other vulnerabilities were identified 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/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.fontface.notinpage.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'); var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); let fonts = (self.fonts ? self.fonts : document.fonts);@@ -26,10 +26,10 @@ ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#0f0'; ctx.fillText('AA', 0, 50);- _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255", 2); }).then(t_pass, t_fail); });
Based on the provided diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and corresponding updates to the variable name in the assertions. There are no security-related changes in the code logic or functionality. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [File] [Lines 13-26] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixelApprox(canvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2); The changes are purely cosmetic/refactoring with no security implications. The functionality remains exactly 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/fill-and-stroke-styles/2d.fillStyle.parse.hsla-clamp-6.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.fillStyle.parse.hsla-clamp-6.html@@ -17,14 +17,14 @@ }); 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.fillStyle = 'hsla(120, 100%, 0%, -2)'; ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0");+_assertPixel(canvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0"); t.done(); });
Based on the provided code diff, here's the analysis: Vulnerability Existed: no No security vulnerability found [File] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(offscreenCanvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsla(120, 100%, 0%, -2)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0"); The changes appear to be purely cosmetic/refactoring (variable name change from `offscreenCanvas` to `canvas`), with no security implications. The test continues to check the same functionality (color parsing and clamping behavior) with the same parameters. No security vulnerabilities were fixed in this change.
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/neqo-http3/src/headers_checks.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/neqo-http3/src/headers_checks.rs@@ -4,53 +4,83 @@ // option. This file may not be copied, modified, or distributed // except according to those terms.+#![allow(clippy::expl_impl_clone_on_copy)] // see https://github.com/Lymia/enumset/issues/28+ use crate::{Error, MessageType, Res};+use enumset::{enum_set, EnumSet, EnumSetType}; use neqo_common::Header;+use std::convert::TryFrom;-const PSEUDO_HEADER_STATUS: u8 = 0x1;-const PSEUDO_HEADER_METHOD: u8 = 0x2;-const PSEUDO_HEADER_SCHEME: u8 = 0x4;-const PSEUDO_HEADER_AUTHORITY: u8 = 0x8;-const PSEUDO_HEADER_PATH: u8 = 0x10;-const PSEUDO_HEADER_PROTOCOL: u8 = 0x20;-const REGULAR_HEADER: u8 = 0x80;+#[derive(EnumSetType, Debug)]+enum PseudoHeaderState {+ Status,+ Method,+ Scheme,+ Authority,+ Path,+ Protocol,+ Regular,+}++impl PseudoHeaderState {+ fn is_pseudo(self) -> bool {+ self != Self::Regular+ }+}++impl TryFrom<(MessageType, &str)> for PseudoHeaderState {+ type Error = Error;++ fn try_from(v: (MessageType, &str)) -> Res<Self> {+ match v {+ (MessageType::Response, ":status") => Ok(Self::Status),+ (MessageType::Request, ":method") => Ok(Self::Method),+ (MessageType::Request, ":scheme") => Ok(Self::Scheme),+ (MessageType::Request, ":authority") => Ok(Self::Authority),+ (MessageType::Request, ":path") => Ok(Self::Path),+ (MessageType::Request, ":protocol") => Ok(Self::Protocol),+ (_, _) => Err(Error::InvalidHeader),+ }+ }+} /// Check whether the response is informational(1xx). /// # Errors /// Returns an error if response headers do not contain-/// a status header or if the value of the header cannot be parsed.+/// a status header or if the value of the header is 101 or cannot be parsed. pub fn is_interim(headers: &[Header]) -> Res<bool> { let status = headers.iter().take(1).find(|h| h.name() == ":status"); if let Some(h) = status { #[allow(clippy::map_err_ignore)] let status_code = h.value().parse::<i32>().map_err(|_| Error::InvalidHeader)?;- Ok((100..200).contains(&status_code))+ if status_code == 101 {+ // https://datatracker.ietf.org/doc/html/draft-ietf-quic-http#section-4.3+ Err(Error::InvalidHeader)+ } else {+ Ok((100..200).contains(&status_code))+ } } else { Err(Error::InvalidHeader) } }-fn track_pseudo(name: &str, state: &mut u8, message_type: MessageType) -> Res<bool> {- let (pseudo, bit) = if name.starts_with(':') {- if *state & REGULAR_HEADER != 0 {+fn track_pseudo(+ name: &str,+ result_state: &mut EnumSet<PseudoHeaderState>,+ message_type: MessageType,+) -> Res<bool> {+ let new_state = if name.starts_with(':') {+ if result_state.contains(PseudoHeaderState::Regular) { return Err(Error::InvalidHeader); }- let bit = match (message_type, name) {- (MessageType::Response, ":status") => PSEUDO_HEADER_STATUS,- (MessageType::Request, ":method") => PSEUDO_HEADER_METHOD,- (MessageType::Request, ":scheme") => PSEUDO_HEADER_SCHEME,- (MessageType::Request, ":authority") => PSEUDO_HEADER_AUTHORITY,- (MessageType::Request, ":path") => PSEUDO_HEADER_PATH,- (MessageType::Request, ":protocol") => PSEUDO_HEADER_PROTOCOL,- (_, _) => return Err(Error::InvalidHeader),- };- (true, bit)+ PseudoHeaderState::try_from((message_type, name))? } else {- (false, REGULAR_HEADER)+ PseudoHeaderState::Regular };- if *state & bit == 0 || !pseudo {- *state |= bit;+ let pseudo = new_state.is_pseudo();+ if *result_state & new_state == EnumSet::empty() || !pseudo {+ *result_state |= new_state; Ok(pseudo) } else { Err(Error::InvalidHeader)@@ -63,7 +93,7 @@ /// Returns an error if headers are not well formed. pub fn headers_valid(headers: &[Header], message_type: MessageType) -> Res<()> { let mut method_value: Option<&str> = None;- let mut pseudo_state = 0;+ let mut pseudo_state = EnumSet::new(); for header in headers { let is_pseudo = track_pseudo(header.name(), &mut pseudo_state, message_type)?;@@ -80,20 +110,20 @@ } } // Clear the regular header bit, since we only check pseudo headers below.- pseudo_state &= !REGULAR_HEADER;+ pseudo_state.remove(PseudoHeaderState::Regular); let pseudo_header_mask = match message_type {- MessageType::Response => PSEUDO_HEADER_STATUS,+ MessageType::Response => enum_set!(PseudoHeaderState::Status), MessageType::Request => { if method_value == Some(&"CONNECT".to_string()) {- PSEUDO_HEADER_METHOD | PSEUDO_HEADER_AUTHORITY+ PseudoHeaderState::Method | PseudoHeaderState::Authority } else {- PSEUDO_HEADER_METHOD | PSEUDO_HEADER_SCHEME | PSEUDO_HEADER_PATH+ PseudoHeaderState::Method | PseudoHeaderState::Scheme | PseudoHeaderState::Path } } }; if (MessageType::Request == message_type)- && ((pseudo_state & PSEUDO_HEADER_PROTOCOL) > 0)+ && pseudo_state.contains(PseudoHeaderState::Protocol) && method_value != Some(&"CONNECT".to_string()) { return Err(Error::InvalidHeader);
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes HTTP/3 Pseudo-Header Validation [third_party/rust/neqo-http3/src/headers_checks.rs] [Lines 4-83] [Old Code] const PSEUDO_HEADER_STATUS: u8 = 0x1; const PSEUDO_HEADER_METHOD: u8 = 0x2; const PSEUDO_HEADER_SCHEME: u8 = 0x4; const PSEUDO_HEADER_AUTHORITY: u8 = 0x8; const PSEUDO_HEADER_PATH: u8 = 0x10; const PSEUDO_HEADER_PROTOCOL: u8 = 0x20; const REGULAR_HEADER: u8 = 0x80; [Fixed Code] #[derive(EnumSetType, Debug)] enum PseudoHeaderState { Status, Method, Scheme, Authority, Path, Protocol, Regular, } // ... (with proper state tracking implementation) 2. Vulnerability Existed: yes HTTP Status Code 101 Validation [third_party/rust/neqo-http3/src/headers_checks.rs] [Lines 47-53] [Old Code] let status_code = h.value().parse::<i32>().map_err(|_| Error::InvalidHeader)?; Ok((100..200).contains(&status_code)) [Fixed Code] let status_code = h.value().parse::<i32>().map_err(|_| Error::InvalidHeader)?; if status_code == 101 { Err(Error::InvalidHeader) } else { Ok((100..200).contains(&status_code)) } 3. Vulnerability Existed: yes HTTP Pseudo-Header Order Enforcement [third_party/rust/neqo-http3/src/headers_checks.rs] [Lines 62-84] [Old Code] if *state & bit == 0 || !pseudo { *state |= bit; Ok(pseudo) } [Fixed Code] if *result_state & new_state == EnumSet::empty() || !pseudo { *result_state |= new_state; Ok(pseudo) } The changes indicate: 1. A more robust pseudo-header validation system using enum types instead of bit flags 2. Explicit rejection of status code 101 (Switching Protocols) which is not allowed in HTTP/3 3. Stronger enforcement of pseudo-header ordering rules in HTTP/3 These changes appear to address potential security issues related to HTTP/3 header validation, particularly around: - Proper pseudo-header handling - Prevention of protocol downgrade attacks (status code 101) - Enforcement of HTTP/3 header ordering requirements
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/ash/src/extensions/khr/win32_surface.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/ash/src/extensions/khr/win32_surface.rs@@ -1,29 +1,23 @@ use crate::prelude::*; use crate::vk; use crate::RawPtr;-use crate::{EntryCustom, Instance};+use crate::{Entry, Instance}; use std::ffi::CStr; use std::mem; #[derive(Clone)] pub struct Win32Surface { handle: vk::Instance,- win32_surface_fn: vk::KhrWin32SurfaceFn,+ fp: vk::KhrWin32SurfaceFn, } impl Win32Surface {- pub fn new<L>(entry: &EntryCustom<L>, instance: &Instance) -> Self {- let surface_fn = vk::KhrWin32SurfaceFn::load(|name| unsafe {- mem::transmute(entry.get_instance_proc_addr(instance.handle(), name.as_ptr()))+ pub fn new(entry: &Entry, instance: &Instance) -> Self {+ let handle = instance.handle();+ let fp = vk::KhrWin32SurfaceFn::load(|name| unsafe {+ mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) });- Self {- handle: instance.handle(),- win32_surface_fn: surface_fn,- }- }-- pub fn name() -> &'static CStr {- vk::KhrWin32SurfaceFn::name()+ Self { handle, fp } } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateWin32SurfaceKHR.html>"]@@ -33,7 +27,7 @@ allocation_callbacks: Option<&vk::AllocationCallbacks>, ) -> VkResult<vk::SurfaceKHR> { let mut surface = mem::zeroed();- self.win32_surface_fn+ self.fp .create_win32_surface_khr( self.handle, create_info,@@ -49,18 +43,20 @@ physical_device: vk::PhysicalDevice, queue_family_index: u32, ) -> bool {- let b = self- .win32_surface_fn- .get_physical_device_win32_presentation_support_khr(- physical_device,- queue_family_index,- );+ let b = self.fp.get_physical_device_win32_presentation_support_khr(+ physical_device,+ queue_family_index,+ ); b > 0 }+ pub fn name() -> &'static CStr {+ vk::KhrWin32SurfaceFn::name()+ }+ pub fn fp(&self) -> &vk::KhrWin32SurfaceFn {- &self.win32_surface_fn+ &self.fp } pub fn instance(&self) -> vk::Instance {
Based on the provided diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [File] third_party/rust/ash/src/extensions/khr/win32_surface.rs [Old Code] The previous implementation using EntryCustom and separate field name win32_surface_fn [Fixed Code] Simplified implementation using Entry and renamed field to fp This appears to be primarily a code refactoring/cleanup change rather than a security fix. The main changes are: 1. Changed from EntryCustom<L> to Entry 2. Renamed win32_surface_fn to fp 3. Reorganized some method implementations 4. Simplified the new() constructor No actual security vulnerabilities appear to be addressed in this diff. The changes seem focused on code organization and API consistency rather than patching security issues. The most significant change is the removal of the generic parameter L from EntryCustom, but this doesn't appear to be security-related - it's more likely simplifying the API surface. The unsafe block remains the same in both versions for loading the function pointers.
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/taskcluster/ci/test/test-sets.yml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/taskcluster/ci/test/test-sets.yml@@ -25,9 +25,6 @@ web-platform-tests-backlog: - web-platform-tests-backlog - web-platform-tests-reftest-backlog--web-platform-tests-wdspec-headless:- - web-platform-tests-wdspec-headless mochitest-devtools-chrome: - mochitest-devtools-chrome@@ -116,14 +113,8 @@ - test-coverage - test-coverage-wpt-mochitest-headless:- - mochitest-plain-headless- mochitest-valgrind: - mochitest-valgrind--marionette-headless:- - marionette-headless desktop-screenshot-capture: - browser-screenshots@@ -242,12 +233,6 @@ - web-platform-tests-print-reftest - web-platform-tests-reftest - web-platform-tests-wdspec--windows10-64-2004-failure-tests:- - mochitest-browser-chrome-failures--windows10-32-2004-failure-tests:- - xpcshell-failures mingwclang-tests-debug: - cppunit@@ -475,3 +460,12 @@ - web-platform-tests - web-platform-tests-reftest - xpcshell++domstreams-tests:+ - crashtest+ - mochitest-plain+ - test-verify+ - test-verify-wpt+ - web-platform-tests+ - web-platform-tests-crashtest+ - xpcshell
After analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily organizational or related to test configuration management rather than security fixes. Here's my analysis: 1. Vulnerability Existed: no Test Configuration Changes [File] taskcluster/ci/test/test-sets.yml [Lines various] [Old Code] Various test set configurations [Fixed Code] Removed/modified test set configurations The changes include: - Removal of several test sets (web-platform-tests-wdspec-headless, mochitest-headless, marionette-headless, windows10-64-2004-failure-tests, windows10-32-2004-failure-tests) - Addition of a new test set (domstreams-tests) - Reorganization of existing test sets These changes appear to be routine maintenance of test configurations rather than security fixes. No specific vulnerabilities are being addressed in this diff. The modifications are more likely related to test suite optimization or feature changes in the Firefox release cycle.
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/text/2d.text.draw.align.right.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.align.right.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'); var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); let fonts = (self.fonts ? self.fonts : document.fonts);@@ -27,12 +27,12 @@ ctx.fillStyle = '#0f0'; ctx.textAlign = 'right'; ctx.fillText('DD', 100, 37.5);- _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 5,45, 0,255,0,255, "5,45", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 95,45, 0,255,0,255, "95,45", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 5,45, 0,255,0,255, "5,45", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 95,45, 0,255,0,255, "95,45", "0,255,0,255", 2); }).then(t_pass, t_fail); });
After analyzing the provided code diff, I don't find any security vulnerabilities. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and the corresponding updates to function calls using this variable. Here's the analysis: 1. Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.align.right.worker.js Lines: 13-14, 27-32 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 cosmetic/refactoring in nature and don't affect the security of the code. The functionality remains exactly the same, only the variable name has been changed for consistency or clarity.
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/uriloader/exthandler/tests/unit/test_handlerService_store.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/uriloader/exthandler/tests/unit/test_handlerService_store.js@@ -578,28 +578,11 @@ function assertAllHandlerInfosMatchDefaultHandlers() { let handlerInfos = HandlerServiceTestUtils.getAllHandlerInfos();- for (let type of ["irc", "ircs"]) {- HandlerServiceTestUtils.assertHandlerInfoMatches(handlerInfos.shift(), {- type,- preferredActionOSDependent: true,- possibleApplicationHandlers: [- {- name: "Mibbit",- uriTemplate: "https://www.mibbit.com/?url=%s",- },- ],- });- }- HandlerServiceTestUtils.assertHandlerInfoMatches(handlerInfos.shift(), { type: "mailto", preferredActionOSDependent: true, possibleApplicationHandlers: [ {- name: "Yahoo! Mail",- uriTemplate: "https://compose.mail.yahoo.com/?To=%s",- },- { name: "Gmail", uriTemplate: "https://mail.google.com/mail/?extsrc=mailto&url=%s", },@@ -612,63 +595,49 @@ /** * Tests the default protocol handlers imported from the locale-specific data. */-add_task(async function test_default_protocol_handlers() {- if (- !Services.prefs.getPrefType("gecko.handlerService.defaultHandlersVersion")- ) {- info("This platform or locale does not have default handlers.");- return;- }-- // This will inject the default protocol handlers for the current locale.- await deleteHandlerStore();-- await assertAllHandlerInfosMatchDefaultHandlers();-});+add_task(+ { skip_if: () => AppConstants.MOZ_APP_NAME == "thunderbird" },+ async function test_default_protocol_handlers() {+ if (+ !Services.prefs.getPrefType("gecko.handlerService.defaultHandlersVersion")+ ) {+ info("This platform or locale does not have default handlers.");+ return;+ }++ // This will inject the default protocol handlers for the current locale.+ await deleteHandlerStore();++ await assertAllHandlerInfosMatchDefaultHandlers();+ }+); /** * Tests that the default protocol handlers are not imported again from the * locale-specific data if they already exist. */-add_task(async function test_default_protocol_handlers_no_duplicates() {- if (- !Services.prefs.getPrefType("gecko.handlerService.defaultHandlersVersion")- ) {- info("This platform or locale does not have default handlers.");- return;- }-- // This will inject the default protocol handlers for the current locale.- await deleteHandlerStore();-- // Remove the "irc" handler so we can verify that the injection is repeated.- let ircHandlerInfo = HandlerServiceTestUtils.getHandlerInfo("irc");- gHandlerService.remove(ircHandlerInfo);-- let originalDefaultHandlersVersion = Services.prefs.getComplexValue(- "gecko.handlerService.defaultHandlersVersion",- Ci.nsIPrefLocalizedString- );-- // Set the preference to an arbitrarily high number to force injecting again.- Services.prefs.setStringPref(- "gecko.handlerService.defaultHandlersVersion",- "999"- );-- await unloadHandlerStore();-- // Check that "irc" exists to make sure that the injection was repeated.- Assert.ok(gHandlerService.exists(ircHandlerInfo));-- // There should be no duplicate handlers in the protocols.- await assertAllHandlerInfosMatchDefaultHandlers();-- Services.prefs.setStringPref(- "gecko.handlerService.defaultHandlersVersion",- originalDefaultHandlersVersion- );-});+add_task(+ { skip_if: () => AppConstants.MOZ_APP_NAME == "thunderbird" },+ async function test_default_protocol_handlers_no_duplicates() {+ if (+ !Services.prefs.getPrefType("gecko.handlerService.defaultHandlersVersion")+ ) {+ info("This platform or locale does not have default handlers.");+ return;+ }++ // This will inject the default protocol handlers for the current locale.+ await deleteHandlerStore();++ // Clear the preference to force injecting again.+ Services.prefs.clearUserPref("gecko.handlerService.defaultHandlersVersion");++ await unloadHandlerStore();++ // There should be no duplicate handlers in the protocols.+ assertAllHandlerInfosMatchDefaultHandlers();+ }+); /** * Ensures forward compatibility by checking that the "store" method preserves
Let me analyze the code diff for potential security fixes: 1. Vulnerability Existed: yes [Removal of Insecure Default Handlers] [uriloader/exthandler/tests/unit/test_handlerService_store.js] [Lines 578-595] Old Code: ```javascript for (let type of ["irc", "ircs"]) { HandlerServiceTestUtils.assertHandlerInfoMatches(handlerInfos.shift(), { type, preferredActionOSDependent: true, possibleApplicationHandlers: [ { name: "Mibbit", uriTemplate: "https://www.mibbit.com/?url=%s", }, ], }); } ``` Fixed Code: (completely removed the IRC/IRCS handlers) 2. Vulnerability Existed: yes [Removal of Insecure Mail Handler] [uriloader/exthandler/tests/unit/test_handlerService_store.js] [Lines 582-585] Old Code: ```javascript { name: "Yahoo! Mail", uriTemplate: "https://compose.mail.yahoo.com/?To=%s", }, ``` Fixed Code: (removed Yahoo Mail handler) 3. Vulnerability Existed: not sure [Test Case Modification] [uriloader/exthandler/tests/unit/test_handlerService_store.js] [Lines 612-643] Old Code: (complex test case manipulating version numbers and checking IRC handler) Fixed Code: ```javascript // Clear the preference to force injecting again. Services.prefs.clearUserPref("gecko.handlerService.defaultHandlersVersion"); ``` (Simplified test case that no longer manipulates version numbers or checks specific handlers) The main security fixes appear to be: 1. Removal of potentially insecure default handlers (IRC/IRCS protocols and Mibbit service) 2. Removal of Yahoo Mail handler which might have security implications 3. Simplification of test cases to avoid potentially dangerous version manipulation These changes appear to be hardening the default handler configuration by removing less secure options. The IRC protocol handlers in particular have historically been associated with security risks.
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/compositing/2d.composite.uncovered.nocontext.source-out.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.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 = 'rgba(0, 255, 255, 0.5)';@@ -22,7 +22,7 @@ ctx.globalCompositeOperation = 'source-out'; var offscreenCanvas2 = new OffscreenCanvas(100, 50); ctx.drawImage(offscreenCanvas2, 0, 0);-_assertPixelApprox(offscreenCanvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0", 5);+_assertPixelApprox(canvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0", 5); t.done(); });
Based on the provided diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming and don't affect security. Here's the analysis following your format: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.nocontext.source-out.worker.js] [Lines 13-22] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixelApprox(offscreenCanvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0", 5); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixelApprox(canvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0", 5); The changes simply rename the variable from `offscreenCanvas` to `canvas` for consistency or clarity, without any security implications. No known vulnerability patterns are present in either the old or new code.
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/media/webrtc/transport/nr_socket_prsock.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/media/webrtc/transport/nr_socket_prsock.cpp@@ -1504,8 +1504,7 @@ /* addressReuse = */ false, /* loopback = */ false, /* recv buffer size */ minBuffSize,- /* send buffer size */ minBuffSize,- /* mainThreadEventTarget */ nullptr))) {+ /* send buffer size */ minBuffSize))) { err_ = true; MOZ_ASSERT(false, "Failed to create UDP socket"); mon.NotifyAll();
Let me analyze the provided code diff for security fixes. Vulnerability Existed: not sure [Potential Resource Initialization Issue] [dom/media/webrtc/transport/nr_socket_prsock.cpp] [Lines 1504-1509] [Old Code] /* recv buffer size */ minBuffSize, /* send buffer size */ minBuffSize, /* mainThreadEventTarget */ nullptr))) { [Fixed Code] /* recv buffer size */ minBuffSize, /* send buffer size */ minBuffSize))) { Additional Details: The main change is the removal of a nullptr parameter for 'mainThreadEventTarget'. While this doesn't appear to be a direct security vulnerability, it could potentially relate to resource initialization or thread safety. Without more context about how this parameter is used elsewhere in the codebase, it's difficult to determine if this could have led to security issues. The change suggests the parameter was unnecessary or potentially problematic when null.
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/pin-project-internal/.cargo-checksum.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/pin-project-internal/.cargo-checksum.json@@ -1 +1 @@-{"files":{"Cargo.toml":"6691c704de55962c48e8e34a109ae4948427fdb453836f7bdd62ac9c9fb50992","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","build.rs":"ff90cd6a515a5eab716f63f3af90db47c411ac3a1629800731fb73de832495aa","src/lib.rs":"57267f77a182d4baf651b3495eb89cb326bebb17c2f2f69a5e351bf1529d775b","src/pin_project/attribute.rs":"6601b126a642b25a4c0a5fbb2bbeb2bdc59ecb28eb678ef40595fc28001e5433","src/pin_project/derive.rs":"f97503dcdd13c15f27bfc24a557701fc9790218041ada1491cfc96b8dce67762","src/pin_project/mod.rs":"149bda261825c80b1043ce1a26f944f69d939d86e5fc37fd1f71969469202b2f","src/pinned_drop.rs":"1feb86175c035c2cbe5e5a0a43d18d2502d764d930644c5456d0ae249b4bbc2c","src/project.rs":"c1fe5164374317ada25ce0a26945c2fd2484d611de60b8ce05adc15013d768b2","src/utils.rs":"120e4c49164a1cbaf5e9f6632f29d88ab9821acb34355758c6b1566233a2fccc"},"package":"3be26700300be6d9d23264c73211d8190e755b6b5ca7a1b28230025511b52a5e"}+{"files":{"Cargo.toml":"5258b88a2b398ff9c68a822446c6d524ac475545f38d39140ba17e54277f82e5","LICENSE-APACHE":"cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","build.rs":"ff90cd6a515a5eab716f63f3af90db47c411ac3a1629800731fb73de832495aa","src/lib.rs":"e3e8f00f9c9ada23bb4783ff964b08e24dd2d6e3e159ec2b0b788370b38a50a7","src/pin_project/attribute.rs":"4bf467e46315e87a181ad4ef99c8a9f1936505c4f3d72d57ab737244bf957fd7","src/pin_project/derive.rs":"caae2a40a61e556f75718d80338f550610c21c36876e3e6b42ccfa1b88f28c2d","src/pin_project/mod.rs":"149bda261825c80b1043ce1a26f944f69d939d86e5fc37fd1f71969469202b2f","src/pinned_drop.rs":"cd028eb8f588dbfe3239ef1287a655de17c224cfdc19b9803b795d231e2f10e3","src/project.rs":"bebfed7481d93661d5af28fcadf8919ec90bdfd9e588cbe2955165a2b2e00ce4","src/utils.rs":"637418e3b2df45427c5047caa57e4bb65a632d5d78d03b300d3e4b9e1125df41"},"package":"044964427019eed9d49d9d5bbce6047ef18f37100ea400912a9fa4a3523ab12a"}=========dom/base/FuzzingFunctions.cpp========--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/base/FuzzingFunctions.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/base/FuzzingFunctions.cpp@@ -24,14 +24,12 @@ /* static */ void FuzzingFunctions::GarbageCollect(const GlobalObject&) { nsJSContext::GarbageCollectNow(JS::GCReason::COMPONENT_UTILS,- nsJSContext::NonIncrementalGC, nsJSContext::NonShrinkingGC); } /* static */ void FuzzingFunctions::GarbageCollectCompacting(const GlobalObject&) { nsJSContext::GarbageCollectNow(JS::GCReason::COMPONENT_UTILS,- nsJSContext::NonIncrementalGC, nsJSContext::ShrinkingGC); }
Analyzing the provided code diff for security fixes: 1. For the rust/pin-project-internal/.cargo-checksum.json file: Vulnerability Existed: not sure [No specific vulnerability name] [third_party/rust/pin-project-internal/.cargo-checksum.json] [Entire file] [Old checksums and package hash] [New checksums and package hash] Note: This appears to be a routine checksum update for dependency files. Without seeing the actual code changes in the referenced files, we cannot determine if there were security fixes. 2. For dom/base/FuzzingFunctions.cpp: Vulnerability Existed: not sure [No specific vulnerability name] [dom/base/FuzzingFunctions.cpp] [Lines 24-30] [Old code with NonIncrementalGC parameter] [New code without NonIncrementalGC parameter] Note: The change removes the NonIncrementalGC parameter from garbage collection calls. While this might relate to performance or memory management, there's no clear indication of a security vulnerability being fixed. The change could potentially affect memory safety, but we can't confirm this from the diff alone. No clear security vulnerabilities were identified in the provided diff, though there are changes that could potentially relate to memory management and dependency updates.
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/layout/build/nsLayoutStatics.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/build/nsLayoutStatics.cpp@@ -47,7 +47,6 @@ #include "nsHtml5Module.h" #include "nsHTMLTags.h" #include "nsFocusManager.h"-#include "nsListControlFrame.h" #include "mozilla/dom/HTMLDNSPrefetch.h" #include "mozilla/dom/HTMLInputElement.h" #include "mozilla/dom/SVGElementFactory.h"@@ -356,7 +355,6 @@ ShutdownJSEnvironment(); nsGlobalWindowInner::ShutDown(); nsGlobalWindowOuter::ShutDown();- nsListControlFrame::Shutdown(); CubebUtils::ShutdownLibrary(); WebAudioUtils::Shutdown();
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Dead Code/Unused Dependency] [File: layout/build/nsLayoutStatics.cpp] [Lines: ~47, ~356] [Old Code] #include "nsListControlFrame.h" ... nsListControlFrame::Shutdown(); [Fixed Code] (Removed both the include and shutdown call) Notes: - The diff shows removal of nsListControlFrame-related code (both include and shutdown call) - Without more context, it's unclear if this was a security fix or just code cleanup - Possible reasons could be: * The functionality was moved elsewhere (not a security issue) * The code was unused (not a security issue) * There was a vulnerability in the shutdown sequence (possible but not confirmed) - Since this is part of Firefox's layout engine shutdown sequence, improper cleanup could theoretically lead to memory-related issues, but there's no clear evidence of a specific vulnerability being fixed here No specific vulnerability name can be identified from this change alone. The modification appears to be more about code organization/cleanup rather than a direct security fix.
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/layout/forms/test/test_select_key_navigation_bug1498769.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/forms/test/test_select_key_navigation_bug1498769.html@@ -19,18 +19,19 @@ SimpleTest.waitForFocus(function() { [...document.querySelectorAll('select')].forEach(function(e) { e.focus();- is(e.selectedIndex, 1, "the 'selected' attribute is respected");+ const description = ` (size ${e.size})`;+ is(e.selectedIndex, 1, "the 'selected' attribute is respected" + description); if (kIsMac && e.size == "1") { // On OSX, UP/DOWN opens the dropdown menu rather than changing // the value so we skip the rest of this test there in this case. return; } synthesizeKey("VK_DOWN", {});- is(e.selectedIndex, 2, "VK_DOWN selected the first option below");+ is(e.selectedIndex, 2, "VK_DOWN selected the first option below" + description); synthesizeKey("VK_UP", {});- is(e.selectedIndex, 0, "VK_UP skips the display:none/contents option");+ is(e.selectedIndex, 0, "VK_UP skips the display:none/contents option" + description); synthesizeKey("VK_DOWN", {});- is(e.selectedIndex, 2, "VK_DOWN skips the display:none/contents option");+ is(e.selectedIndex, 2, "VK_DOWN skips the display:none/contents option" + description); }); SimpleTest.finish(); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely related to test improvements by adding more descriptive error messages. Here's the analysis: 1. Vulnerability Existed: no No security vulnerability [layout/forms/test/test_select_key_navigation_bug1498769.html] [Lines 19-33] Old Code: Various test assertions without size context Fixed Code: Same assertions with added size context in error messages The changes simply add more descriptive error messages to the test cases by including the select element's size in the assertion messages. This helps with debugging test failures but doesn't address any security issues. The modifications are: 1. Adding `const description = ` (size ${e.size})`;` 2. Appending this description to all test assertion messages These changes are test quality improvements 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/testing/web-platform/tests/css/css-values/calc-margin-block-1.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-values/calc-margin-block-1.html@@ -5,7 +5,6 @@ <link rel="author" title="L. David Baron" href="https://dbaron.org/"> <link rel="help" href="http://www.w3.org/TR/css3-values/#calc-notation"> <link rel="match" href="calc-margin-block-1-ref.html">- <meta name="flags" content=""> <style type="text/css"> div { border: medium solid green; width: 500px }
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 5] [Old Code] <meta name="flags" content=""> [Fixed Code] (line removed) Additional Details: - The diff shows only the removal of an empty meta tag with name="flags" - This appears to be a test file cleanup rather than a security fix - No actual security vulnerability is being addressed in this change - The change is likely related to test infrastructure or metadata cleanup No security vulnerabilities were identified in this diff. The change is minor and doesn't affect security functionality.
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.