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/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.rect.end.2.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.rect.end.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.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -29,10 +29,10 @@ ctx.rect(150, 150, 2000, 2000); ctx.lineTo(160, 160); ctx.stroke();-_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.done(); });
After analyzing the provided code diff, here's my assessment: 1. Vulnerability Existed: no The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and don't indicate any security fixes. The functionality remains the same, just with a different variable name. 2. Vulnerability Existed: no The changes in the `_assertPixel` calls are also just variable name updates to match the renamed variable. No security implications are present in these changes. The diff shows no security-related fixes - it's purely a refactoring of variable names for better consistency or readability. No known vulnerabilities are being addressed here, and the test's behavior remains identical before and after the 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/testing/web-platform/tests/css/css-values/calc-width-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-width-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-width-block-1-ref.html">- <meta name="flags" content=""> <style type="text/css"> body { width: 500px }
Based on the provided diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no [No specific vulnerability] [testing/web-platform/tests/css/css-values/calc-width-block-1.html] [Lines 5] [Old Code: <meta name="flags" content="">] [Fixed Code: (line removed)] Additional Details: - The change simply removes an empty meta tag with a "flags" attribute, which appears to be test-related metadata rather than security-related code. - There's no indication of any security vulnerability being fixed here - this appears to be a minor cleanup or test configuration change. - The "flags" meta tag was commonly used in web platform tests to specify test requirements but wasn't related to security. No security vulnerabilities were identified in this diff. The change appears to be a benign removal of unused test metadata.
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/drawing-images-to-the-canvas/2d.drawImage.broken.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.broken.worker.js@@ -14,8 +14,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 promise = new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest();@@ -31,7 +31,7 @@ ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); ctx.drawImage(bitmap, 0, 0);- _assertPixelApprox(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2); }, t_fail); }).then(t_pass, t_fail);
Here's the analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File: testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.broken.worker.js] [Lines: 14-15, 31] Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [...] _assertPixelApprox(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); [...] _assertPixelApprox(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255", 2); Additional Details: The changes appear to be purely variable renaming (from 'offscreenCanvas' to 'canvas') with no security implications. The functionality remains identical, and there's no indication of any security vulnerability being fixed. This seems to be a code style/consistency improvement rather than a 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/security/nss/cmd/sdbthreadtst/sdbthreadtst.c+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/security/nss/cmd/sdbthreadtst/sdbthreadtst.c@@ -196,13 +196,17 @@ if (status != PR_SUCCESS) { ERROR++; fprintf(stderr,- "PR_CreateThread filed iteration %d, %s]n", i,+ "PR_CreateThread filed iteration %d, %s\n", i, PORT_ErrorToString(PORT_GetError())); }+ }+ if (NSS_Shutdown() != SECSuccess) {+ ERROR++;+ fprintf(stderr, "NSS_Shutdown failed: %s\n",+ PORT_ErrorToString(PORT_GetError())); } printf("%d failures and %d errors found\n", FAILED, ERROR); /* clean up */- NSS_Shutdown(); if (FAILED) { exit(1); }
Here's the analysis of the provided code diff following the specified format: Vulnerability Existed: not sure Potential Resource Leak Vulnerability [File] [Lines 196-206] [Old Code] ```c if (status != PR_SUCCESS) { ERROR++; fprintf(stderr, "PR_CreateThread filed iteration %d, %s]n", i, PORT_ErrorToString(PORT_GetError())); } } printf("%d failures and %d errors found\n", FAILED, ERROR); /* clean up */ NSS_Shutdown(); if (FAILED) { exit(1); } ``` [Fixed Code] ```c if (status != PR_SUCCESS) { ERROR++; fprintf(stderr, "PR_CreateThread filed iteration %d, %s\n", i, PORT_ErrorToString(PORT_GetError())); } } if (NSS_Shutdown() != SECSuccess) { ERROR++; fprintf(stderr, "NSS_Shutdown failed: %s\n", PORT_ErrorToString(PORT_GetError())); } printf("%d failures and %d errors found\n", FAILED, ERROR); /* clean up */ if (FAILED) { exit(1); } ``` Key changes: 1. Fixed a typo in the error message (']n' -> '\n') 2. Moved NSS_Shutdown() before the printf statement and added error checking 3. The change ensures proper cleanup is performed and errors are properly reported While this doesn't appear to fix a specific named vulnerability, it improves error handling and resource cleanup, which could potentially prevent resource leaks or undefined behavior in error conditions. The changes make the code more robust but don't clearly address a known security 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/third_party/rust/crossbeam-channel/tests/never.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/crossbeam-channel/tests/never.rs@@ -65,8 +65,8 @@ fn len_empty_full() { let r = never::<i32>(); assert_eq!(r.len(), 0);- assert_eq!(r.is_empty(), true);- assert_eq!(r.is_full(), true);+ assert!(r.is_empty());+ assert!(r.is_full()); } #[test]
Let me analyze the provided code diff for security fixes. Vulnerability Existed: no [Test Assertion Improvement] [third_party/rust/crossbeam-channel/tests/never.rs] [Lines 67-68] [Old Code] assert_eq!(r.is_empty(), true); assert_eq!(r.is_full(), true); [Fixed Code] assert!(r.is_empty()); assert!(r.is_full()); Additional Details: - This appears to be a test improvement rather than a security fix - The change replaces `assert_eq!(bool_value, true)` with the more idiomatic `assert!(bool_value)` - No actual security vulnerability is being addressed here - The modification is purely stylistic/readability improvement in test assertions No other vulnerabilities or changes 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/gfx/wr/webrender_api/src/font.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/gfx/wr/webrender_api/src/font.rs@@ -359,6 +359,7 @@ #[derive(Deserialize, MallocSizeOf, Serialize, PeekPoke)] pub struct FontInstanceFlags: u32 { // Common flags+ // Use native synthetic bold, if supported. const SYNTHETIC_BOLD = 1 << 1; const EMBEDDED_BITMAPS = 1 << 2; const SUBPIXEL_BGR = 1 << 3;@@ -367,6 +368,8 @@ const FLIP_Y = 1 << 6; const SUBPIXEL_POSITION = 1 << 7; const VERTICAL = 1 << 8;+ // Explicitly use multi-strike bold emulation.+ const MULTISTRIKE_BOLD = 1 << 9; // Internal flags const TRANSFORM_GLYPHS = 1 << 12;
Based on the provided diff, here's the analysis: Vulnerability Existed: no [No specific vulnerability found] [gfx/wr/webrender_api/src/font.rs] [Lines 359-368] [Old Code] const SYNTHETIC_BOLD = 1 << 1; const EMBEDDED_BITMAPS = 1 << 2; const SUBPIXEL_BGR = 1 << 3; const TRANSPOSE = 1 << 4; const FIXED_SNAP = 1 << 5; const FLIP_Y = 1 << 6; const SUBPIXEL_POSITION = 1 << 7; const VERTICAL = 1 << 8; [Fixed Code] const SYNTHETIC_BOLD = 1 << 1; const EMBEDDED_BITMAPS = 1 << 2; const SUBPIXEL_BGR = 1 << 3; const TRANSPOSE = 1 << 4; const FIXED_SNAP = 1 << 5; const FLIP_Y = 1 << 6; const SUBPIXEL_POSITION = 1 << 7; const VERTICAL = 1 << 8; const MULTISTRIKE_BOLD = 1 << 9; Additional Details: - The changes appear to be feature additions (adding MULTISTRIKE_BOLD flag) and documentation improvements (comment about native synthetic bold) - No security vulnerabilities are apparent in this diff - The changes are related to font rendering features 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/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgba-percent.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.rgba-percent.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 = 'rgba(0%,100%,0%,0.499)'; ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,127, "50,25", "0,255,0,127");+_assertPixel(canvas, 50,25, 0,255,0,127, "50,25", "0,255,0,127"); t.done(); });
After analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(offscreenCanvas, 50,25, 0,255,0,127, "50,25", "0,255,0,127"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'rgba(0%,100%,0%,0.499)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,127, "50,25", "0,255,0,127"); The changes appear to be purely cosmetic/refactoring (variable name change from `offscreenCanvas` to `canvas`), with no security implications. The functionality remains exactly the same, just with a different variable name. 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/ash/src/extensions/khr/surface.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/ash/src/extensions/khr/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 Surface { handle: vk::Instance,- surface_fn: vk::KhrSurfaceFn,+ fp: vk::KhrSurfaceFn, } impl Surface {- pub fn new<L>(entry: &EntryCustom<L>, instance: &Instance) -> Self {- let surface_fn = vk::KhrSurfaceFn::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::KhrSurfaceFn::load(|name| unsafe {+ mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) });- Self {- handle: instance.handle(),- surface_fn,- }- }-- pub fn name() -> &'static CStr {- vk::KhrSurfaceFn::name()+ Self { handle, fp } } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html>"]@@ -34,7 +28,7 @@ surface: vk::SurfaceKHR, ) -> VkResult<bool> { let mut b = 0;- self.surface_fn+ self.fp .get_physical_device_surface_support_khr( physical_device, queue_family_index,@@ -51,13 +45,12 @@ surface: vk::SurfaceKHR, ) -> VkResult<Vec<vk::PresentModeKHR>> { read_into_uninitialized_vector(|count, data| {- self.surface_fn- .get_physical_device_surface_present_modes_khr(- physical_device,- surface,- count,- data,- )+ self.fp.get_physical_device_surface_present_modes_khr(+ physical_device,+ surface,+ count,+ data,+ ) }) }@@ -68,7 +61,7 @@ surface: vk::SurfaceKHR, ) -> VkResult<vk::SurfaceCapabilitiesKHR> { let mut surface_capabilities = mem::zeroed();- self.surface_fn+ self.fp .get_physical_device_surface_capabilities_khr( physical_device, surface,@@ -84,12 +77,8 @@ surface: vk::SurfaceKHR, ) -> VkResult<Vec<vk::SurfaceFormatKHR>> { read_into_uninitialized_vector(|count, data| {- self.surface_fn.get_physical_device_surface_formats_khr(- physical_device,- surface,- count,- data,- )+ self.fp+ .get_physical_device_surface_formats_khr(physical_device, surface, count, data) }) }@@ -99,15 +88,16 @@ surface: vk::SurfaceKHR, allocation_callbacks: Option<&vk::AllocationCallbacks>, ) {- self.surface_fn.destroy_surface_khr(- self.handle,- surface,- allocation_callbacks.as_raw_ptr(),- );+ self.fp+ .destroy_surface_khr(self.handle, surface, allocation_callbacks.as_raw_ptr());+ }++ pub fn name() -> &'static CStr {+ vk::KhrSurfaceFn::name() } pub fn fp(&self) -> &vk::KhrSurfaceFn {- &self.surface_fn+ &self.fp } pub fn instance(&self) -> vk::Instance {
Analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily structural/refactoring changes rather than security fixes. Here's the analysis: 1. Vulnerability Existed: no Refactoring Changes third_party/rust/ash/src/extensions/khr/surface.rs [1-29,34-99] Old Code: Used EntryCustom<L> and surface_fn naming Fixed Code: Changed to Entry and fp naming, reorganized methods The main changes are: 1. Changed from EntryCustom<L> to Entry (simplifying the type) 2. Renamed surface_fn to fp (likely for consistency) 3. Reorganized some method implementations 4. Moved the name() method to the bottom of the impl block These appear to be code quality/refactoring changes rather than security fixes. No specific vulnerabilities are being addressed in this diff. The unsafe block remains for the Vulkan function pointer loading, but this is expected and necessary for Vulkan interop.
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/docshell/base/nsDocShell.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/docshell/base/nsDocShell.h@@ -731,6 +731,11 @@ nsIPrincipal* aPartitionedPrincipalToInehrit, nsIContentSecurityPolicy* aCsp, bool aFireOnLocationChange, bool aAddToGlobalHistory, bool aCloneSHChildren);++ // If wireframe collection is enabled, will attempt to gather the+ // wireframe for the document and stash it inside of the active history+ // entry.+ void CollectWireframe(); public: // Helper method that is called when a new document (including any@@ -1088,7 +1093,9 @@ // Sets the active entry to the current loading entry. aPersist is used in the // case a new session history entry is added to the session history. // aExpired is true if the relevant nsIChannel has its cache token expired.- void MoveLoadingToActiveEntry(bool aPersist, bool aExpired);+ // aCacheKey is the channel's cache key.+ void MoveLoadingToActiveEntry(bool aPersist, bool aExpired,+ uint32_t aCacheKey); void ActivenessMaybeChanged();@@ -1349,6 +1356,12 @@ // Whether we have a pending encoding autodetection request from the // menu for all encodings. bool mForcedAutodetection : 1;++ /*+ * Set to true if we're checking session history (in the parent process) for+ * a possible history load. Used only with iframes.+ */+ bool mCheckingSessionHistory : 1; }; inline nsISupports* ToSupports(nsDocShell* aDocShell) {
Based on the provided code diff, I'll analyze it for potential security vulnerabilities: 1. First change (adding CollectWireframe method): Vulnerability Existed: not sure [No specific vulnerability name] [docshell/base/nsDocShell.h] [Lines 731-736] [Old Code: No method present] [Fixed Code: Added CollectWireframe() method] Note: This appears to be a new feature addition rather than a security fix. The security implications would depend on how wireframe collection is implemented. 2. Second change (modifying MoveLoadingToActiveEntry): Vulnerability Existed: not sure [No specific vulnerability name] [docshell/base/nsDocShell.h] [Lines 1088-1093] [Old Code: void MoveLoadingToActiveEntry(bool aPersist, bool aExpired);] [Fixed Code: void MoveLoadingToActiveEntry(bool aPersist, bool aExpired, uint32_t aCacheKey);] Note: This appears to be adding a cache key parameter, which might be related to cache validation but doesn't clearly indicate a specific vulnerability being fixed. 3. Third change (adding mCheckingSessionHistory flag): Vulnerability Existed: not sure [No specific vulnerability name] [docshell/base/nsDocShell.h] [Lines 1349-1356] [Old Code: No flag present] [Fixed Code: Added bool mCheckingSessionHistory : 1;] Note: This appears to be adding state tracking for session history checks, possibly related to security but not clearly indicating a specific vulnerability. None of these changes clearly indicate fixes for known vulnerabilities. They appear to be feature additions or modifications to existing functionality. Without more context about how these changes are used in the codebase, it's difficult to identify specific security vulnerabilities that might have been addressed.
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/ext/debug_utils.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/ash/src/extensions/ext/debug_utils.rs@@ -1,28 +1,22 @@ use crate::prelude::*; use crate::{vk, RawPtr};-use crate::{EntryCustom, Instance};+use crate::{Entry, Instance}; use std::ffi::CStr; use std::mem; #[derive(Clone)] pub struct DebugUtils { handle: vk::Instance,- debug_utils_fn: vk::ExtDebugUtilsFn,+ fp: vk::ExtDebugUtilsFn, } impl DebugUtils {- pub fn new<L>(entry: &EntryCustom<L>, instance: &Instance) -> Self {- let debug_utils_fn = vk::ExtDebugUtilsFn::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::ExtDebugUtilsFn::load(|name| unsafe {+ mem::transmute(entry.get_instance_proc_addr(handle, name.as_ptr())) });- Self {- handle: instance.handle(),- debug_utils_fn,- }- }-- pub fn name() -> &'static CStr {- vk::ExtDebugUtilsFn::name()+ Self { handle, fp } } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetDebugUtilsObjectNameEXT.html>"]@@ -31,9 +25,9 @@ device: vk::Device, name_info: &vk::DebugUtilsObjectNameInfoEXT, ) -> VkResult<()> {- self.debug_utils_fn+ self.fp .set_debug_utils_object_name_ext(device, name_info)- .into()+ .result() } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSetDebugUtilsObjectTagEXT.html>"]@@ -42,9 +36,9 @@ device: vk::Device, tag_info: &vk::DebugUtilsObjectTagInfoEXT, ) -> VkResult<()> {- self.debug_utils_fn+ self.fp .set_debug_utils_object_tag_ext(device, tag_info)- .into()+ .result() } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdBeginDebugUtilsLabelEXT.html>"]@@ -53,14 +47,13 @@ command_buffer: vk::CommandBuffer, label: &vk::DebugUtilsLabelEXT, ) {- self.debug_utils_fn+ self.fp .cmd_begin_debug_utils_label_ext(command_buffer, label); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdEndDebugUtilsLabelEXT.html>"] pub unsafe fn cmd_end_debug_utils_label(&self, command_buffer: vk::CommandBuffer) {- self.debug_utils_fn- .cmd_end_debug_utils_label_ext(command_buffer);+ self.fp.cmd_end_debug_utils_label_ext(command_buffer); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCmdInsertDebugUtilsLabelEXT.html>"]@@ -69,7 +62,7 @@ command_buffer: vk::CommandBuffer, label: &vk::DebugUtilsLabelEXT, ) {- self.debug_utils_fn+ self.fp .cmd_insert_debug_utils_label_ext(command_buffer, label); }@@ -79,13 +72,12 @@ queue: vk::Queue, label: &vk::DebugUtilsLabelEXT, ) {- self.debug_utils_fn- .queue_begin_debug_utils_label_ext(queue, label);+ self.fp.queue_begin_debug_utils_label_ext(queue, label); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueEndDebugUtilsLabelEXT.html>"] pub unsafe fn queue_end_debug_utils_label(&self, queue: vk::Queue) {- self.debug_utils_fn.queue_end_debug_utils_label_ext(queue);+ self.fp.queue_end_debug_utils_label_ext(queue); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkQueueInsertDebugUtilsLabelEXT.html>"]@@ -94,8 +86,7 @@ queue: vk::Queue, label: &vk::DebugUtilsLabelEXT, ) {- self.debug_utils_fn- .queue_insert_debug_utils_label_ext(queue, label);+ self.fp.queue_insert_debug_utils_label_ext(queue, label); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkCreateDebugUtilsMessengerEXT.html>"]@@ -105,7 +96,7 @@ allocator: Option<&vk::AllocationCallbacks>, ) -> VkResult<vk::DebugUtilsMessengerEXT> { let mut messenger = mem::zeroed();- self.debug_utils_fn+ self.fp .create_debug_utils_messenger_ext( self.handle, create_info,@@ -121,31 +112,31 @@ messenger: vk::DebugUtilsMessengerEXT, allocator: Option<&vk::AllocationCallbacks>, ) {- self.debug_utils_fn.destroy_debug_utils_messenger_ext(- self.handle,- messenger,- allocator.as_raw_ptr(),- );+ self.fp+ .destroy_debug_utils_messenger_ext(self.handle, messenger, allocator.as_raw_ptr()); } #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/vkSubmitDebugUtilsMessageEXT.html>"] pub unsafe fn submit_debug_utils_message( &self,- instance: vk::Instance, message_severity: vk::DebugUtilsMessageSeverityFlagsEXT, message_types: vk::DebugUtilsMessageTypeFlagsEXT, callback_data: &vk::DebugUtilsMessengerCallbackDataEXT, ) {- self.debug_utils_fn.submit_debug_utils_message_ext(- instance,+ self.fp.submit_debug_utils_message_ext(+ self.handle, message_severity, message_types, callback_data, ); }+ pub fn name() -> &'static CStr {+ vk::ExtDebugUtilsFn::name()+ }+ pub fn fp(&self) -> &vk::ExtDebugUtilsFn {- &self.debug_utils_fn+ &self.fp } pub fn instance(&self) -> vk::Instance {
After analyzing the provided code diff, I don't find any clear security vulnerabilities that were fixed. The changes appear to be primarily refactoring and cleanup: 1. The field name changed from `debug_utils_fn` to `fp` (likely short for "function pointers") 2. The `EntryCustom` type was replaced with `Entry` 3. Some method implementations were simplified 4. The `submit_debug_utils_message` method was modified to use `self.handle` instead of taking an instance parameter None of these changes appear to address security vulnerabilities. They seem to be code quality improvements and API adjustments. Here's the structured response: Vulnerability Existed: no No security vulnerabilities found in the diff. Changes appear to be refactoring and code cleanup. The modifications include: 1. Field renaming (`debug_utils_fn` → `fp`) 2. Type simplification (`EntryCustom` → `Entry`) 3. Method simplifications 4. Parameter adjustment in `submit_debug_utils_message` No CVE or specific vulnerability patterns were identified 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/docs/config.yml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/docs/config.yml@@ -16,6 +16,7 @@ - editor - layout - gfx+ - ipc - devtools - toolkit - js@@ -33,6 +34,7 @@ - tools/profiler - performance - xpcom+ - nspr - security/nss build_doc: - mach@@ -76,6 +78,7 @@ layout/layout: layout gfx/gfx: gfx intl/l10n/l10n: l10n+ ipc/ipc: ipc modules/libpref/libpref: modules/libpref python/mach: mach python/python: python@@ -93,3 +96,5 @@ tools/static-analysis/index.html: code-quality/static-analysis.html xpcom/xpcom: xpcom+fatal warnings:+ - "WARNING: '([^']*)' reference target not found:"
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found in the diff The changes appear to be documentation/config updates adding new components (ipc, nspr) and configuration options (fatal warnings) No old code was removed or modified in a security-relevant way, only additions were made 2. Vulnerability Existed: not sure Potential documentation completeness issue The addition of "fatal warnings" configuration might relate to missing documentation references No old code for this section (new addition) +fatal warnings: + - "WARNING: '([^']*)' reference target not found:" Note: The diff shows only additions to the documentation configuration file (config.yml). These changes appear to be routine updates adding new components to the documentation system rather than security fixes. The "ipc" (Inter-Process Communication) and "nspr" (Netscape Portable Runtime) components were added to the documentation system, but this doesn't indicate they were previously vulnerable - just that they weren't previously documented.
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/client/framework/test/metrics/browser_metrics_webconsole.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/framework/test/metrics/browser_metrics_webconsole.js@@ -39,6 +39,7 @@ "resource://devtools/client/shared/components/menu/MenuButton.js", "resource://devtools/client/shared/components/menu/MenuItem.js", "resource://devtools/client/shared/components/menu/MenuList.js",+ "resource://devtools/client/shared/vendor/fluent-react.js", "resource://devtools/client/shared/vendor/react.js", "resource://devtools/client/shared/vendor/react-dom.js", "resource://devtools/client/shared/vendor/react-prop-types.js",
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The change appears to be simply adding a new resource file to the list. Here's the analysis following your requested format: Vulnerability Existed: no [No security vulnerability found] [devtools/client/framework/test/metrics/browser_metrics_webconsole.js] [Lines 39-47] [Old Code] "resource://devtools/client/shared/components/menu/MenuButton.js", "resource://devtools/client/shared/components/menu/MenuItem.js", "resource://devtools/client/shared/components/menu/MenuList.js", "resource://devtools/client/shared/vendor/react.js", "resource://devtools/client/shared/vendor/react-dom.js", "resource://devtools/client/shared/vendor/react-prop-types.js", [Fixed Code] "resource://devtools/client/shared/components/menu/MenuButton.js", "resource://devtools/client/shared/components/menu/MenuItem.js", "resource://devtools/client/shared/components/menu/MenuList.js", "resource://devtools/client/shared/vendor/fluent-react.js", "resource://devtools/client/shared/vendor/react.js", "resource://devtools/client/shared/vendor/react-dom.js", "resource://devtools/client/shared/vendor/react-prop-types.js", The change simply adds "fluent-react.js" to the list of resources being loaded, which appears to be a normal dependency update rather than a 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/security/manager/ssl/nsNSSCallbacks.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/security/manager/ssl/nsNSSCallbacks.cpp@@ -1107,15 +1107,15 @@ ("HandshakeCallback: couldn't rebuild verified certificate info")); }- RefPtr<nsNSSCertificate> nssc(nsNSSCertificate::Create(cert.get()));+ nsCOMPtr<nsIX509Cert> x509Cert(new nsNSSCertificate(cert.get())); if (rv == Success && evStatus == EVStatus::EV) { MOZ_LOG(gPIPNSSLog, LogLevel::Debug,- ("HandshakeCallback using NEW cert %p (is EV)", nssc.get()));- infoObject->SetServerCert(nssc, EVStatus::EV);+ ("HandshakeCallback using NEW cert (is EV)"));+ infoObject->SetServerCert(x509Cert, EVStatus::EV); } else { MOZ_LOG(gPIPNSSLog, LogLevel::Debug,- ("HandshakeCallback using NEW cert %p (is not EV)", nssc.get()));- infoObject->SetServerCert(nssc, EVStatus::NotEV);+ ("HandshakeCallback using NEW cert (is not EV)"));+ infoObject->SetServerCert(x509Cert, EVStatus::NotEV); } if (rv == Success) {
Analyzing the provided code diff, here's the security analysis: 1. Vulnerability Existed: not sure [Potential Information Leak] [security/manager/ssl/nsNSSCallbacks.cpp] [Lines 1107-1115] [Old Code] RefPtr<nsNSSCertificate> nssc(nsNSSCertificate::Create(cert.get())); if (rv == Success && evStatus == EVStatus::EV) { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("HandshakeCallback using NEW cert %p (is EV)", nssc.get())); infoObject->SetServerCert(nssc, EVStatus::EV); } else { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("HandshakeCallback using NEW cert %p (is not EV)", nssc.get())); infoObject->SetServerCert(nssc, EVStatus::NotEV); } [Fixed Code] nsCOMPtr<nsIX509Cert> x509Cert(new nsNSSCertificate(cert.get())); if (rv == Success && evStatus == EVStatus::EV) { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("HandshakeCallback using NEW cert (is EV)")); infoObject->SetServerCert(x509Cert, EVStatus::EV); } else { MOZ_LOG(gPIPNSSLog, LogLevel::Debug, ("HandshakeCallback using NEW cert (is not EV)")); infoObject->SetServerCert(x509Cert, EVStatus::NotEV); } Additional Details: - The main change is the removal of the memory address logging (%p) in the debug messages and a change from RefPtr to nsCOMPtr - While not a clear security vulnerability, logging memory addresses could potentially leak sensitive information in some contexts - The change to nsCOMPtr might be related to better memory management but doesn't appear to be a direct security fix - Without more context, it's unclear if this was fixing an actual vulnerability or just improving code quality
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/tests/ui/pin_project/unaligned_references.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/pin-project/tests/ui/pin_project/unaligned_references.rs@@ -1,5 +1,4 @@ #![forbid(unaligned_references)]-#![allow(safe_packed_borrows)] // Refs: https://github.com/rust-lang/rust/issues/82523@@ -15,10 +14,8 @@ fn main() { let a = Packed { f: 1 };- &a.f; //~ ERROR reference to packed field is unaligned let _ = &a.f; //~ ERROR reference to packed field is unaligned let b = PackedN { f: 1 };- &b.f; //~ ERROR reference to packed field is unaligned let _ = &b.f; //~ ERROR reference to packed field is unaligned }
Here's the analysis following the specified format: 1. Vulnerability Existed: yes Unaligned References Vulnerability [third_party/rust/pin-project/tests/ui/pin_project/unaligned_references.rs] [Lines 1, 15, 18] Old Code: #![forbid(unaligned_references)] #![allow(safe_packed_borrows)] ... &a.f; //~ ERROR reference to packed field is unaligned ... &b.f; //~ ERROR reference to packed field is unaligned Fixed Code: #![forbid(unaligned_references)] ... // Removed direct references to packed fields let _ = &a.f; //~ ERROR reference to packed field is unaligned ... let _ = &b.f; //~ ERROR reference to packed field is unaligned 2. Vulnerability Existed: yes Safe Packed Borrows Allowance Vulnerability [third_party/rust/pin-project/tests/ui/pin_project/unaligned_references.rs] [Line 1] Old Code: #![allow(safe_packed_borrows)] Fixed Code: [Removed this line entirely] The changes address two related security concerns: 1. Removed direct unaligned references to packed struct fields which could cause undefined behavior 2. Removed the unsafe allowance for packed borrows that could mask potential alignment issues The changes enforce stricter memory safety by: - Removing unsafe packed borrow allowances - Removing direct references to packed fields while keeping the error checks - Maintaining the forbid(unaligned_references) directive
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/browser/components/payments/res/containers/basic-card-form.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/components/payments/res/containers/basic-card-form.js@@ -2,7 +2,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */-/* import-globals-from ../../../../../browser/extensions/formautofill/content/autofillEditForms.js*/+/* import-globals-from /browser/extensions/formautofill/content/autofillEditForms.js*/ import AcceptedCards from "../components/accepted-cards.js"; import BillingAddressPicker from "./billing-address-picker.js"; import CscInput from "../components/csc-input.js";
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: not sure Path Traversal Potential [File] browser/components/payments/res/containers/basic-card-form.js [Lines 2] [Old Code] /* import-globals-from ../../../../../browser/extensions/formautofill/content/autofillEditForms.js*/ [Fixed Code] /* import-globals-from /browser/extensions/formautofill/content/autofillEditForms.js*/ Additional Details: - The change involves modifying an import path from a relative path to an absolute path - While this doesn't directly indicate a security vulnerability, relative paths can sometimes be more vulnerable to path traversal attacks if not properly sanitized - The absolute path specification might be more secure as it removes any ambiguity about the file location - Without more context about how this path is used, I can't definitively say if this was fixing a security issue or just a code cleanup
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/connection_client.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/neqo-http3/src/connection_client.rs@@ -6,7 +6,7 @@ use crate::client_events::{Http3ClientEvent, Http3ClientEvents}; use crate::connection::{Http3Connection, Http3State, RequestDescription};-use crate::hframe::HFrame;+use crate::frames::HFrame; use crate::push_controller::{PushController, RecvPushEvents}; use crate::recv_message::{RecvMessage, RecvMessageInfo}; use crate::request_target::AsRequestTarget;@@ -166,15 +166,25 @@ self.conn.odcid().expect("Client always has odcid") }- /// A resumption token encodes transport and settings parameter as well.- fn create_resumption_token(&mut self, token: &ResumptionToken) {- if let Some(settings) = self.base_handler.get_settings() {+ fn encode_resumption_token(&self, token: &ResumptionToken) -> Option<ResumptionToken> {+ self.base_handler.get_settings().map(|settings| { let mut enc = Encoder::default(); settings.encode_frame_contents(&mut enc); enc.encode(token.as_ref());- self.events- .resumption_token(ResumptionToken::new(enc.into(), token.expiration_time()));- }+ ResumptionToken::new(enc.into(), token.expiration_time())+ })+ }++ /// Get a resumption token. The correct way to obtain a resumption token is+ /// waiting for the `Http3ClientEvent::ResumptionToken` event. However, some+ /// servers don't send `NEW_TOKEN` frames and so that event might be slow in+ /// arriving. This is especially a problem for short-lived connections, where+ /// the connection is closed before any events are released. This retrieves+ /// the token, without waiting for the `NEW_TOKEN` frame to arrive.+ pub fn take_resumption_token(&mut self, now: Instant) -> Option<ResumptionToken> {+ self.conn+ .take_resumption_token(now)+ .and_then(|t| self.encode_resumption_token(&t)) } /// This may be call if an application has a resumption token. This must be called before connection starts.@@ -269,7 +279,6 @@ { let output = self.base_handler.fetch( &mut self.conn,- Http3StreamType::Http, Box::new(self.events.clone()), Box::new(self.events.clone()), Some(Rc::clone(&self.push_handler)),@@ -289,8 +298,8 @@ output }- /// Send an [`PRIORITY_UPDATE`-frame][1] on next [Http3Client::process_output()]-call,- /// returns if the priority got changed+ /// Send an [`PRIORITY_UPDATE`-frame][1] on next `Http3Client::process_output()` call.+ /// Returns if the priority got changed. /// # Errors /// `InvalidStreamId` if the stream does not exist ///@@ -336,7 +345,7 @@ /// To supply a request body this function is called (headers are supplied through the `fetch` function.) /// # Errors- /// `InvalidStreamId` if thee stream does not exist,+ /// `InvalidStreamId` if the stream does not exist, /// `AlreadyClosed` if the stream has already been closed. /// `TransportStreamDoesNotExist` if the transport stream does not exist (this may happen if `process_output` /// has not been called when needed, and HTTP3 layer has not picked up the info that the stream has been closed.)@@ -434,6 +443,22 @@ } } output+ }++ /// Close `WebTransport` cleanly+ /// # Errors+ /// `InvalidStreamId` if the stream does not exist,+ /// `TransportStreamDoesNotExist` if the transport stream does not exist (this may happen if `process_output`+ /// has not been called when needed, and HTTP3 layer has not picked up the info that the stream has been closed.)+ /// `InvalidInput` if an empty buffer has been supplied.+ pub fn webtransport_close_session(+ &mut self,+ session_id: StreamId,+ error: u32,+ message: &str,+ ) -> Res<()> {+ self.base_handler+ .webtransport_close_session(&mut self.conn, session_id, error, message) } /// # Errors@@ -588,7 +613,9 @@ self.push_handler.borrow_mut().handle_zero_rtt_rejected(); } ConnectionEvent::ResumptionToken(token) => {- self.create_resumption_token(&token);+ if let Some(t) = self.encode_resumption_token(&token) {+ self.events.resumption_token(t);+ } } ConnectionEvent::SendStreamComplete { .. } | ConnectionEvent::Datagram { .. }@@ -800,7 +827,7 @@ AuthenticationStatus, Connection, Error, HSettings, Header, Http3Client, Http3ClientEvent, Http3Parameters, Http3State, Rc, RefCell, };- use crate::hframe::{HFrame, H3_FRAME_TYPE_SETTINGS, H3_RESERVED_FRAME_TYPES};+ use crate::frames::{HFrame, H3_FRAME_TYPE_SETTINGS, H3_RESERVED_FRAME_TYPES}; use crate::qpack_encoder_receiver::EncoderRecvStream; use crate::settings::{HSetting, HSettingType, H3_RESERVED_SETTINGS}; use crate::{Http3Server, Priority, RecvStream};@@ -1067,7 +1094,8 @@ } } ConnectionEvent::StateChange(State::Connected) => connected = true,- ConnectionEvent::StateChange(_) => {}+ ConnectionEvent::StateChange(_)+ | ConnectionEvent::SendStreamCreatable { .. } => {} _ => panic!("unexpected event"), } }@@ -6218,7 +6246,7 @@ let push_stream_id = server.conn.stream_create(StreamType::UniDi).unwrap(); let mut d = Encoder::default();- let headers1xx: &[Header] = &[Header::new(":status", "101")];+ let headers1xx: &[Header] = &[Header::new(":status", "100")]; server.encode_headers(push_stream_id, headers1xx, &mut d); let headers200: &[Header] = &[@@ -6713,4 +6741,35 @@ let reset_event = |e| matches!(e, Http3ClientEvent::Reset { stream_id, .. } if stream_id == request_stream_id); assert!(client.events().any(reset_event)); }++ #[test]+ fn response_w_101() {+ let (mut client, mut server, request_stream_id) = connect_and_send_request(true);++ setup_server_side_encoder(&mut client, &mut server);++ let mut d = Encoder::default();+ let headers1xx = &[Header::new(":status", "101")];+ server.encode_headers(request_stream_id, headers1xx, &mut d);++ // Send 101 response.+ server_send_response_and_exchange_packet(+ &mut client,+ &mut server,+ request_stream_id,+ &d,+ false,+ );++ // Stream has been reset because of the 101 response.+ let e = client.events().next().unwrap();+ assert_eq!(+ e,+ Http3ClientEvent::Reset {+ stream_id: request_stream_id,+ error: Error::InvalidHeader.code(),+ local: true,+ }+ );+ } }
I'll analyze the code diff for security fixes following the specified format. 1. Vulnerability Existed: yes Resumption Token Encoding Vulnerability [third_party/rust/neqo-http3/src/connection_client.rs] [Lines 166-178] Old Code: ```rust fn create_resumption_token(&mut self, token: &ResumptionToken) { if let Some(settings) = self.base_handler.get_settings() { let mut enc = Encoder::default(); settings.encode_frame_contents(&mut enc); enc.encode(token.as_ref()); self.events .resumption_token(ResumptionToken::new(enc.into(), token.expiration_time())); } } ``` Fixed Code: ```rust fn encode_resumption_token(&self, token: &ResumptionToken) -> Option<ResumptionToken> { self.base_handler.get_settings().map(|settings| { let mut enc = Encoder::default(); settings.encode_frame_contents(&mut enc); enc.encode(token.as_ref()); ResumptionToken::new(enc.into(), token.expiration_time()) }) } ``` 2. Vulnerability Existed: not sure Potential Header Validation Issue [third_party/rust/neqo-http3/src/connection_client.rs] [Lines 6218, 6246, 6741-6760] Old Code: ```rust let headers1xx: &[Header] = &[Header::new(":status", "101")]; ``` Fixed Code: ```rust let headers1xx: &[Header] = &[Header::new(":status", "100")]; ``` and added test case for 101 status code handling 3. Vulnerability Existed: yes Insecure Resumption Token Handling [third_party/rust/neqo-http3/src/connection_client.rs] [Lines 166-178, 588-592] Old Code: ```rust ConnectionEvent::ResumptionToken(token) => { self.create_resumption_token(&token); } ``` Fixed Code: ```rust ConnectionEvent::ResumptionToken(token) => { if let Some(t) = self.encode_resumption_token(&token) { self.events.resumption_token(t); } } ``` The changes show improvements in security handling: 1. The resumption token creation was refactored to be more secure and explicit about when tokens are created 2. Added explicit handling for HTTP 101 status codes which could be used for protocol switching attacks 3. Made resumption token handling more robust by properly checking for settings before creating tokens The test case addition for 101 status code handling suggests there might have been a vulnerability related to protocol switching or improper status code handling.
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.clip.basic.1.worker.js+++ /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.clip.basic.1.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);@@ -23,7 +23,7 @@ ctx.clip(); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50);-_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(); });
Based on the provided diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.clip.basic.1.worker.js [Lines] 13-23 [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [...] _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); [...] _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) with no security implications. The functionality remains exactly the same, just with a different variable name. There are no security vulnerabilities being fixed 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/python/mozbuild/mozbuild/backend/common.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/python/mozbuild/mozbuild/backend/common.py@@ -594,9 +594,7 @@ """Write out a rust file which includes the generated xpcom rust modules""" topobjdir = self.environment.topobjdir- include_tmpl = (- 'include!(concat!(env!("MOZ_TOPOBJDIR"), "/dist/xpcrs/%s/%s.rs"))'- )+ include_tmpl = 'include!(mozbuild::objdir_path!("dist/xpcrs/%s/%s.rs"))' # Ensure deterministic output files. stems = sorted(manager.idl_stems())
Let me analyze this code diff for potential security vulnerabilities: Vulnerability Existed: not sure [Potential Path Traversal or Insecure Path Construction] [python/mozbuild/mozbuild/backend/common.py] [Lines 594-596] [Old Code] include_tmpl = ( 'include!(concat!(env!("MOZ_TOPOBJDIR"), "/dist/xpcrs/%s/%s.rs"))' ) [Fixed Code] include_tmpl = 'include!(mozbuild::objdir_path!("dist/xpcrs/%s/%s.rs"))' Additional Details: The change appears to be moving from a direct string concatenation using environment variables to a more controlled path construction method. While the old approach could potentially be vulnerable to path traversal if the environment variable was maliciously set, the new version uses a dedicated function (objdir_path!) which likely includes proper path sanitization. However, without seeing the implementation of objdir_path!, I can't be certain if this was specifically addressing a security vulnerability or just improving code quality.
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/mozglue/misc/PreXULSkeletonUI.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/mozglue/misc/PreXULSkeletonUI.cpp@@ -756,7 +756,7 @@ int menubarHeightDevPixels = menubarShown ? CSSToDevPixels(28, sCSSToDevPixelScaling) : 0;- // controlled by css variable urlbarMarginInline in urlbar-searchbar.inc.css+ // defined in urlbar-searchbar.inc.css as --urlbar-margin-inline: 5px int urlbarMargin = CSSToDevPixels(5, sCSSToDevPixelScaling) + horizontalOffset;
Analyzing the provided code diff: 1. Vulnerability Existed: no Comment Clarification [File] [Lines 756-759] [Old Code] // controlled by css variable urlbarMarginInline in urlbar-searchbar.inc.css int urlbarMargin = CSSToDevPixels(5, sCSSToDevPixelScaling) + horizontalOffset; [Fixed Code] // defined in urlbar-searchbar.inc.css as --urlbar-margin-inline: 5px int urlbarMargin = CSSToDevPixels(5, sCSSToDevPixelScaling) + horizontalOffset; Explanation: This change appears to be a documentation/comment improvement rather than a security fix. The actual code logic remains the same, only the comment was updated to be more specific about where the CSS variable is defined. No security vulnerability is being addressed here.
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/client/debugger/src/reducers/ast.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/debugger/src/reducers/ast.js@@ -58,49 +58,4 @@ } }-// NOTE: we'd like to have the app state fully typed-// https://github.com/firefox-devtools/debugger/blob/master/src/reducers/sources.js#L179-L185--export function getSymbols(state, source) {- if (!source) {- return null;- }-- return state.ast.symbols[source.id] || null;-}--export function hasSymbols(state, source) {- const symbols = getSymbols(state, source);-- if (!symbols) {- return false;- }-- return !symbols.loading;-}--export function getFramework(state, source) {- const symbols = getSymbols(state, source);- if (symbols && !symbols.loading) {- return symbols.framework;- }-}--export function isSymbolsLoading(state, source) {- const symbols = getSymbols(state, source);- if (!symbols) {- return false;- }-- return symbols.loading;-}--export function getInScopeLines(state, location) {- return state.ast.inScopeLines[makeBreakpointId(location)];-}--export function hasInScopeLines(state, location) {- return !!getInScopeLines(state, location);-}- export default update;
Based on the provided code diff, I'll analyze it for potential security vulnerabilities. The diff shows the removal of several utility functions related to symbol handling in the debugger. Analysis: 1. The diff removes several functions (`getSymbols`, `hasSymbols`, `getFramework`, `isSymbolsLoading`, `getInScopeLines`, `hasInScopeLines`) but doesn't show any security fixes - it appears to be a code cleanup/refactoring where these functions were moved elsewhere or became unnecessary. 2. There are no obvious security vulnerabilities being fixed in this diff. 3. The removed code doesn't show any clear security issues (like XSS, injection, etc.) in its implementation. Vulnerability Existed: no No specific vulnerability found [devtools/client/debugger/src/reducers/ast.js] [Lines 58-107] [Old Code: Various symbol-related functions removed] [Fixed Code: Functions removed] Note: The diff shows code being removed rather than modified, and there's no indication of security vulnerabilities being addressed. This appears to be a refactoring change rather than a security fix. If these functions were moved to another file, they might need separate security analysis in their new location.
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.