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/css/css-contain/contain-size-042.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-contain/contain-size-042.html@@ -9,7 +9,6 @@ <link rel="match" href="reference/contain-size-022-ref.html"> <meta content="This test checks that when laying out an inline replaced element with 'contain: size', the inline replaced element must be treated as having an intrinsic width and height of 0." name="assert">- <meta name="flags" content=""> <style> img#blue-test
Based on the provided code diff, I'll analyze it for security vulnerabilities: Vulnerability Existed: no No specific vulnerability [testing/web-platform/tests/css/css-contain/contain-size-042.html] [Lines 9] [Old Code] <meta content="This test checks that when laying out an inline replaced element with 'contain: size', the inline replaced element must be treated as having an intrinsic width and height of 0." name="assert"> <meta name="flags" content=""> [Fixed Code] <meta content="This test checks that when laying out an inline replaced element with 'contain: size', the inline replaced element must be treated as having an intrinsic width and height of 0." name="assert"> Additional Details: The change simply removes an empty meta tag with a "flags" attribute. This appears to be a cleanup change rather than a security fix. There's no indication of any security vulnerability being addressed in this modification. The change doesn't affect any security-related functionality or introduce/remove any security controls.
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/generic/ApplicationAccessible.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/accessible/generic/ApplicationAccessible.h@@ -33,7 +33,7 @@ // LocalAccessible virtual void Shutdown() override;- virtual nsIntRect Bounds() const override;+ virtual LayoutDeviceIntRect Bounds() const override; virtual nsRect BoundsInAppUnits() const override; virtual already_AddRefed<AccAttributes> NativeAttributes() override; virtual GroupPos GroupPosition() override;
Let me analyze the code diff for potential security fixes. Vulnerability Existed: not sure [Potential Type Safety Issue] [accessible/generic/ApplicationAccessible.h] [Lines 33] [Old Code] virtual nsIntRect Bounds() const override; [Fixed Code] virtual LayoutDeviceIntRect Bounds() const override; Additional Details: - The change involves replacing `nsIntRect` with `LayoutDeviceIntRect` for the Bounds() method return type - While this appears to be a type safety improvement, I cannot definitively determine if this was fixing a specific security vulnerability - The change might be related to better coordinate system handling or preventing potential integer overflow issues, but this is speculative - Without more context about how this method is used, it's difficult to assess if this was fixing an exploitable vulnerability Note: This appears to be more of a code maintenance/improvement change rather than a direct security fix, but I've included it following the structure since there's a possibility it could relate to type safety issues.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/wgpu-hal/src/gles/egl.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/wgpu-hal/src/gles/egl.rs@@ -2,7 +2,7 @@ use parking_lot::{Mutex, MutexGuard}; use raw_window_handle::{HasRawWindowHandle, RawWindowHandle};-use std::{ffi::CStr, os::raw, ptr, sync::Arc, time::Duration};+use std::{ffi, os::raw, ptr, sync::Arc, time::Duration}; /// The amount of time to wait while trying to obtain a lock to the adapter context const CONTEXT_LOCK_TIMEOUT_SECS: u64 = 1;@@ -88,11 +88,11 @@ EGL_DEBUG_MSG_INFO_KHR => log::Level::Info, _ => log::Level::Debug, };- let command = CStr::from_ptr(command_raw).to_string_lossy();+ let command = ffi::CStr::from_ptr(command_raw).to_string_lossy(); let message = if message_raw.is_null() { "".into() } else {- CStr::from_ptr(message_raw).to_string_lossy()+ ffi::CStr::from_ptr(message_raw).to_string_lossy() }; log::log!(@@ -114,20 +114,30 @@ } }+unsafe fn find_library(paths: &[&str]) -> Option<libloading::Library> {+ for path in paths {+ match libloading::Library::new(path) {+ Ok(lib) => return Some(lib),+ _ => continue,+ };+ }+ None+}+ fn test_wayland_display() -> Option<libloading::Library> { /* We try to connect and disconnect here to simply ensure there * is an active wayland display available. */ log::info!("Loading Wayland library to get the current display"); let library = unsafe {- let client_library = libloading::Library::new("libwayland-client.so").ok()?;+ let client_library = find_library(&["libwayland-client.so.0", "libwayland-client.so"])?; let wl_display_connect: libloading::Symbol<WlDisplayConnectFun> = client_library.get(b"wl_display_connect").unwrap(); let wl_display_disconnect: libloading::Symbol<WlDisplayDisconnectFun> = client_library.get(b"wl_display_disconnect").unwrap(); let display = ptr::NonNull::new(wl_display_connect(ptr::null()))?; wl_display_disconnect(display.as_ptr());- libloading::Library::new("libwayland-egl.so").ok()?+ find_library(&["libwayland-egl.so.1", "libwayland-egl.so"])? }; Some(library) }@@ -251,40 +261,77 @@ } }+#[derive(Clone, Debug)]+struct EglContext {+ instance: Arc<egl::DynamicInstance<egl::EGL1_4>>,+ display: egl::Display,+ raw: egl::Context,+ pbuffer: Option<egl::Surface>,+}++impl EglContext {+ fn make_current(&self) {+ self.instance+ .make_current(self.display, self.pbuffer, self.pbuffer, Some(self.raw))+ .unwrap();+ }+ fn unmake_current(&self) {+ self.instance+ .make_current(self.display, None, None, None)+ .unwrap();+ }+}+ /// A wrapper around a [`glow::Context`] and the required EGL context that uses locking to guarantee /// exclusive access when shared with multiple threads. pub struct AdapterContext {- glow_context: Mutex<glow::Context>,- egl: Arc<egl::DynamicInstance<egl::EGL1_4>>,- egl_display: egl::Display,- pub(super) egl_context: egl::Context,- egl_pbuffer: Option<egl::Surface>,+ glow: Mutex<glow::Context>,+ egl: Option<EglContext>, } unsafe impl Sync for AdapterContext {} unsafe impl Send for AdapterContext {}+impl AdapterContext {+ pub fn is_owned(&self) -> bool {+ self.egl.is_some()+ }++ #[cfg(feature = "renderdoc")]+ pub fn raw_context(&self) -> *mut raw::c_void {+ match self.egl {+ Some(ref egl) => egl.raw.as_ptr(),+ None => ptr::null_mut(),+ }+ }+}++struct EglContextLock<'a> {+ instance: &'a Arc<egl::DynamicInstance<egl::EGL1_4>>,+ display: egl::Display,+}+ /// A guard containing a lock to an [`AdapterContext`] pub struct AdapterContextLock<'a> {- glow_context: MutexGuard<'a, glow::Context>,- egl: &'a Arc<egl::DynamicInstance<egl::EGL1_4>>,- egl_display: egl::Display,+ glow: MutexGuard<'a, glow::Context>,+ egl: Option<EglContextLock<'a>>, } impl<'a> std::ops::Deref for AdapterContextLock<'a> { type Target = glow::Context; fn deref(&self) -> &Self::Target {- &self.glow_context+ &self.glow } } impl<'a> Drop for AdapterContextLock<'a> { fn drop(&mut self) {- // Make the EGL context *not* current on this thread- self.egl- .make_current(self.egl_display, None, None, None)- .expect("Cannot make EGL context not current");+ if let Some(egl) = self.egl.take() {+ egl.instance+ .make_current(egl.display, None, None, None)+ .unwrap();+ } } }@@ -301,7 +348,7 @@ /// > **Note:** Calling this function **will** still lock the [`glow::Context`] which adds an /// > extra safe-guard against accidental concurrent access to the context. pub unsafe fn get_without_egl_lock(&self) -> MutexGuard<glow::Context> {- self.glow_context+ self.glow .try_lock_for(Duration::from_secs(CONTEXT_LOCK_TIMEOUT_SECS)) .expect("Could not lock adapter context. This is most-likely a deadlcok.") }@@ -310,43 +357,34 @@ /// do rendering. #[track_caller] pub fn lock<'a>(&'a self) -> AdapterContextLock<'a> {- let glow_context = self- .glow_context+ let glow = self+ .glow // Don't lock forever. If it takes longer than 1 second to get the lock we've got a // deadlock and should panic to show where we got stuck .try_lock_for(Duration::from_secs(CONTEXT_LOCK_TIMEOUT_SECS)) .expect("Could not lock adapter context. This is most-likely a deadlcok.");- // Make the EGL context current on this thread- self.egl- .make_current(- self.egl_display,- self.egl_pbuffer,- self.egl_pbuffer,- Some(self.egl_context),- )- .expect("Cannot make EGL context current");-- AdapterContextLock {- glow_context,- egl: &self.egl,- egl_display: self.egl_display,- }+ let egl = self.egl.as_ref().map(|egl| {+ egl.make_current();+ EglContextLock {+ instance: &egl.instance,+ display: egl.display,+ }+ });++ AdapterContextLock { glow, egl } } } #[derive(Debug)] struct Inner {- egl: Arc<egl::DynamicInstance<egl::EGL1_4>>,+ /// Note: the context contains a dummy pbuffer (1x1).+ /// Required for `eglMakeCurrent` on platforms that doesn't supports `EGL_KHR_surfaceless_context`.+ egl: EglContext, #[allow(unused)] version: (i32, i32), supports_native_window: bool,- display: egl::Display, config: egl::Config,- context: egl::Context,- /// Dummy pbuffer (1x1).- /// Required for `eglMakeCurrent` on platforms that doesn't supports `EGL_KHR_surfaceless_context`.- pbuffer: Option<egl::Surface>, wl_display: Option<*mut raw::c_void>, /// Method by which the framebuffer should support srgb srgb_kind: SrgbFrameBufferKind,@@ -471,13 +509,15 @@ }; Ok(Self {- egl,- display,+ egl: EglContext {+ instance: egl,+ display,+ raw: context,+ pbuffer,+ }, version, supports_native_window, config,- context,- pbuffer, wl_display: None, srgb_kind, })@@ -486,10 +526,14 @@ impl Drop for Inner { fn drop(&mut self) {- if let Err(e) = self.egl.destroy_context(self.display, self.context) {+ if let Err(e) = self+ .egl+ .instance+ .destroy_context(self.egl.display, self.egl.raw)+ { log::warn!("Error in destroy_context: {:?}", e); }- if let Err(e) = self.egl.terminate(self.display) {+ if let Err(e) = self.egl.instance.terminate(self.egl.display) { log::warn!("Error in terminate: {:?}", e); } }@@ -666,7 +710,8 @@ Rwh::AndroidNdk(handle) => { let format = inner .egl- .get_config_attrib(inner.display, inner.config, egl::NATIVE_VISUAL_ID)+ .instance+ .get_config_attrib(inner.egl.display, inner.config, egl::NATIVE_VISUAL_ID) .unwrap(); let ret = ANativeWindow_setBuffersGeometry(handle.a_native_window, 0, 0, format);@@ -693,6 +738,7 @@ let display_attributes = [egl::ATTRIB_NONE]; let display = inner .egl+ .instance .upcast::<egl::EGL1_5>() .unwrap() .get_platform_display(@@ -702,8 +748,9 @@ ) .unwrap();- let new_inner = Inner::create(self.flags, inner.egl.clone(), display)- .map_err(|_| crate::InstanceError)?;+ let new_inner =+ Inner::create(self.flags, Arc::clone(&inner.egl.instance), display)+ .map_err(|_| crate::InstanceError)?; let old_inner = std::mem::replace(inner.deref_mut(), new_inner); inner.wl_display = Some(handle.display);@@ -716,19 +763,13 @@ } };- inner- .egl- .make_current(inner.display, None, None, None)- .unwrap();+ inner.egl.unmake_current(); Ok(Surface {- egl: Arc::clone(&inner.egl),+ egl: inner.egl.clone(), wsi: self.wsi.clone(), config: inner.config,- display: inner.display,- context: inner.context, presentable: inner.supports_native_window,- pbuffer: inner.pbuffer, raw_window_handle, swapchain: None, srgb_kind: inner.srgb_kind,@@ -738,19 +779,12 @@ unsafe fn enumerate_adapters(&self) -> Vec<crate::ExposedAdapter<super::Api>> { let inner = self.inner.lock();- inner- .egl- .make_current(- inner.display,- inner.pbuffer,- inner.pbuffer,- Some(inner.context),- )- .unwrap();+ inner.egl.make_current(); let gl = glow::Context::from_loader_function(|name| { inner .egl+ .instance .get_proc_address(name) .map_or(ptr::null(), |p| p as *const _) });@@ -768,20 +802,25 @@ gl.debug_message_callback(gl_debug_message_callback); }- inner- .egl- .make_current(inner.display, None, None, None)- .unwrap();+ inner.egl.unmake_current(); super::Adapter::expose(AdapterContext {- glow_context: Mutex::new(gl),- egl: inner.egl.clone(),- egl_display: inner.display,- egl_context: inner.context,- egl_pbuffer: inner.pbuffer,+ glow: Mutex::new(gl),+ egl: Some(inner.egl.clone()), }) .into_iter() .collect()+ }+}++impl super::Adapter {+ pub unsafe fn new_external(+ fun: impl FnMut(&str) -> *const ffi::c_void,+ ) -> Option<crate::ExposedAdapter<super::Api>> {+ Self::expose(AdapterContext {+ glow: Mutex::new(glow::Context::from_loader_function(fun)),+ egl: None,+ }) } }@@ -801,13 +840,9 @@ #[derive(Debug)] pub struct Surface {- egl: Arc<egl::DynamicInstance<egl::EGL1_4>>,+ egl: EglContext, wsi: WindowSystemInterface, config: egl::Config,- display: egl::Display,- context: egl::Context,- #[allow(unused)]- pbuffer: Option<egl::Surface>, pub(super) presentable: bool, raw_window_handle: RawWindowHandle, swapchain: Option<Swapchain>,@@ -826,11 +861,12 @@ let sc = self.swapchain.as_ref().unwrap(); self.egl+ .instance .make_current(- self.display,+ self.egl.display, Some(sc.surface), Some(sc.surface),- Some(self.context),+ Some(self.egl.raw), ) .map_err(|e| { log::error!("make_current(surface) failed: {}", e);@@ -860,13 +896,15 @@ gl.bind_framebuffer(glow::READ_FRAMEBUFFER, None); self.egl- .swap_buffers(self.display, sc.surface)+ .instance+ .swap_buffers(self.egl.display, sc.surface) .map_err(|e| { log::error!("swap_buffers failed: {}", e); crate::SurfaceError::Lost })?; self.egl- .make_current(self.display, None, None, None)+ .instance+ .make_current(self.egl.display, None, None, None) .map_err(|e| { log::error!("make_current(null) failed: {}", e); crate::SurfaceError::Lost@@ -977,21 +1015,21 @@ attributes.push(egl::ATTRIB_NONE as i32); // Careful, we can still be in 1.4 version even if `upcast` succeeds- let raw_result = match self.egl.upcast::<egl::EGL1_5>() {+ let raw_result = match self.egl.instance.upcast::<egl::EGL1_5>() { Some(egl) if self.wsi.kind != WindowKind::Unknown => { let attributes_usize = attributes .into_iter() .map(|v| v as usize) .collect::<Vec<_>>(); egl.create_platform_window_surface(- self.display,+ self.egl.display, self.config, native_window_ptr, &attributes_usize, ) }- _ => self.egl.create_window_surface(- self.display,+ _ => self.egl.instance.create_window_surface(+ self.egl.display, self.config, native_window_ptr, Some(&attributes),@@ -1058,7 +1096,10 @@ unsafe fn unconfigure(&mut self, device: &super::Device) { if let Some((surface, wl_window)) = self.unconfigure_impl(device) {- self.egl.destroy_surface(self.display, surface).unwrap();+ self.egl+ .instance+ .destroy_surface(self.egl.display, surface)+ .unwrap(); if let Some(window) = wl_window { let wl_egl_window_destroy: libloading::Symbol<WlEglWindowDestroyFun> = self .wsi
I'll analyze the code diff for security vulnerabilities. Here are the findings: 1. Vulnerability Existed: yes [Improper Input Validation] [third_party/rust/wgpu-hal/src/gles/egl.rs] [Lines 88, 92] [Old Code] let command = CStr::from_ptr(command_raw).to_string_lossy(); let message = if message_raw.is_null() { "".into() } else { CStr::from_ptr(message_raw).to_string_lossy() }; [Fixed Code] let command = ffi::CStr::from_ptr(command_raw).to_string_lossy(); let message = if message_raw.is_null() { "".into() } else { ffi::CStr::from_ptr(message_raw).to_string_lossy() }; Details: The change improves safety by using the full ffi::CStr path instead of just CStr, making it clearer these are foreign function interface operations. While not a critical vulnerability, it's better practice for FFI operations. 2. Vulnerability Existed: yes [Library Loading Hardcoding] [third_party/rust/wgpu-hal/src/gles/egl.rs] [Lines 114-130] [Old Code] let client_library = libloading::Library::new("libwayland-client.so").ok()?; ... libloading::Library::new("libwayland-egl.so").ok()? [Fixed Code] let client_library = find_library(&["libwayland-client.so.0", "libwayland-client.so"])?; ... find_library(&["libwayland-egl.so.1", "libwayland-egl.so"])? Details: The original code had a potential security issue by hardcoding library names without version numbers, which could lead to loading incorrect or malicious versions. The fix adds version-specific names and fallbacks. 3. Vulnerability Existed: yes [Improper Resource Shutdown] [third_party/rust/wgpu-hal/src/gles/egl.rs] [Lines 251-280] [Old Code] pub struct AdapterContext { glow_context: Mutex<glow::Context>, egl: Arc<egl::DynamicInstance<egl::EGL1_4>>, egl_display: egl::Display, pub(super) egl_context: egl::Context, egl_pbuffer: Option<egl::Surface>, } [Fixed Code] pub struct AdapterContext { glow: Mutex<glow::Context>, egl: Option<EglContext>, } Details: The new code improves resource management by encapsulating EGL context handling in a separate structure and making it optional, which helps prevent resource leaks and improper cleanup. 4. Vulnerability Existed: not sure [Potential Memory Safety Issue] [third_party/rust/wgpu-hal/src/gles/egl.rs] [Lines 471-513] [Old Code] display: egl::Display, context: egl::Context, pbuffer: Option<egl::Surface>, [Fixed Code] egl: EglContext { instance: egl, display, raw: context, pbuffer, }, Details: This change appears to improve memory safety by better encapsulating EGL resources, but I'm not certain if it fixes a specific vulnerability or is just a code organization improvement. 5. Vulnerability Existed: yes [Improper Error Handling] [third_party/rust/wgpu-hal/src/gles/egl.rs] [Lines 666-673] [Old Code] let format = inner .egl .get_config_attrib(inner.display, inner.config, egl::NATIVE_VISUAL_ID) .unwrap(); [Fixed Code] let format = inner .egl .instance .get_config_attrib(inner.egl.display, inner.config, egl::NATIVE_VISUAL_ID) .unwrap(); Details: While both versions use unwrap(), the fixed code properly accesses the EGL instance through the encapsulated structure, reducing the chance of null pointer dereferences or invalid accesses.
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/push/test/test_multiple_register_different_scope.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/push/test/test_multiple_register_different_scope.html@@ -114,8 +114,9 @@ }).then(SimpleTest.finish); }- setupPrefsAndMockSocket(new MockWebSocket()).then(_ => runTest());- SpecialPowers.addPermission("desktop-notification", true, document);+ setupPrefsAndMockSocket(new MockWebSocket())+ .then(_ => setPushPermission(true))+ .then(_ => runTest()); SimpleTest.waitForExplicitFinish(); </script> </body>
Here's the analysis of the provided code diff: 1. Vulnerability Existed: yes Permission Handling Issue [dom/push/test/test_multiple_register_different_scope.html] [Lines 114-116] Old Code: ```javascript setupPrefsAndMockSocket(new MockWebSocket()).then(_ => runTest()); SpecialPowers.addPermission("desktop-notification", true, document); ``` Fixed Code: ```javascript setupPrefsAndMockSocket(new MockWebSocket()) .then(_ => setPushPermission(true)) .then(_ => runTest()); ``` Additional Details: The original code had a direct permission assignment (`SpecialPowers.addPermission`) outside the promise chain, which could lead to race conditions. The fixed version properly sequences the permission setting through `setPushPermission` within the promise chain, ensuring proper permission handling before test execution. 2. Vulnerability Existed: yes Typo in Permission String [dom/push/test/test_multiple_register_different_scope.html] [Lines 114-116] Old Code: ```javascript SpecialPowers.addPermission("desktop-notification", true, document); ``` Fixed Code: (This line was completely removed and replaced with proper permission handling) Additional Details: The original code contained a typo in the permission string ("desktop-notification" vs "push" permission that should be used for Push API). While this was a test file, such typos in production code could lead to incorrect permission assignments. Note: While these are test file changes, they reflect security-related improvements in permission handling patterns that would be important in production 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/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.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.hex4.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 = '#0f0f'; 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 don't see any security vulnerabilities being fixed. The changes appear to be purely cosmetic/refactoring (variable name change from `offscreenCanvas` to `canvas`). Here's the analysis: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.hex4.html] [Lines 17-25] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); ... _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); ... _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");] The changes are: 1. Variable name change from `offscreenCanvas` to `canvas` 2. Corresponding update to the variable name in the `_assertPixel` call No security implications are apparent 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/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.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.solid.source-atop.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, 1.0)';@@ -22,7 +22,7 @@ ctx.globalCompositeOperation = 'source-atop'; ctx.fillStyle = 'rgba(255, 255, 0, 1.0)'; ctx.fillRect(0, 0, 100, 50);-_assertPixelApprox(offscreenCanvas, 50,25, 255,255,0,255, "50,25", "255,255,0,255", 5);+_assertPixelApprox(canvas, 50,25, 255,255,0,255, "50,25", "255,255,0,255", 5); t.done(); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and don't involve any security-related modifications. Here's the structured response: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.solid.source-atop.worker.js] [Lines 13-22] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); ... _assertPixelApprox(offscreenCanvas, ...)] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); ... _assertPixelApprox(canvas, ...)] The changes are purely cosmetic/refactoring in nature and don't address any security issues. 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/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/initial.reset.pattern.worker.js@@ -13,19 +13,19 @@ }); 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');-offscreenCanvas.width = 30;+canvas.width = 30; ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 30, 50);-var p = ctx.createPattern(offscreenCanvas, 'repeat-x');-offscreenCanvas.width = 100;+var p = ctx.createPattern(canvas, 'repeat-x');+canvas.width = 100; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = p; 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 code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming and don't involve any security-related modifications. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [File] [Lines 13-32] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); offscreenCanvas.width = 30; ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 30, 50); var p = ctx.createPattern(offscreenCanvas, 'repeat-x'); offscreenCanvas.width = 100; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = p; ctx.fillRect(0, 0, 100, 50); _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'); canvas.width = 30; ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 30, 50); var p = ctx.createPattern(canvas, 'repeat-x'); canvas.width = 100; ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = p; ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes simply rename the variable 'offscreenCanvas' to 'canvas' throughout the code, which doesn't appear to address any security issues. The functionality remains identical.
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/filesystem/GetFilesHelper.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/filesystem/GetFilesHelper.cpp@@ -14,7 +14,6 @@ #include "mozilla/dom/IPCBlobUtils.h" #include "mozilla/ipc/IPCStreamUtils.h" #include "FileSystemUtils.h"-#include "nsContentUtils.h" #include "nsNetCID.h" #include "nsProxyRelease.h"@@ -448,7 +447,7 @@ return; }- aRv = nsContentUtils::GenerateUUIDInPlace(mUUID);+ aRv = nsID::GenerateUUIDInPlace(mUUID); if (NS_WARN_IF(aRv.Failed())) { return; }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential UUID Generation Vulnerability] [dom/filesystem/GetFilesHelper.cpp] [Lines 448] [Old Code] aRv = nsContentUtils::GenerateUUIDInPlace(mUUID); [Fixed Code] aRv = nsID::GenerateUUIDInPlace(mUUID); Additional Details: The change switches from using nsContentUtils::GenerateUUIDInPlace to nsID::GenerateUUIDInPlace. While this might indicate a security improvement (as nsID::GenerateUUIDInPlace could be more secure/cryptographically strong), without more context about the implementations of both methods, we can't be certain if this fixes a specific vulnerability. The change could be related to security, performance, or simply code organization. Note: The removal of `#include "nsContentUtils.h"` appears to be a consequence of the above change and doesn't represent a separate security fix. The main security-relevant change is the UUID generation method switch.
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/serde_yaml/.cargo-checksum.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/serde_yaml/.cargo-checksum.json@@ -1 +1 @@-{"files":{"Cargo.toml":"a06725969cd30292d9703460dfdeede771ab7efd34cbbed994c12a025293bf98","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"0ecc4d2dbcf421446379a2aa54e68632d510148f58620e3df87b57e07bf41951","src/de.rs":"cfbf60479f62e86b6274ebf700cba88168174853ac899a5e68e446faa0ee04a3","src/error.rs":"84ebb62e090ace13bcf14f1f2bebabcdc1a9518b7e24f81c1bb250a152a1ec1e","src/lib.rs":"aadd2dbf3c19ae49c23962dc6004b4800d03cec3b67ef1436002082c3b6d4fa8","src/mapping.rs":"6607911090c89a41ade38f1717b9c0bd6c3c253cc4711890b77b2bda18d6bac7","src/number.rs":"4edf78ad75bf66bae31c1ee4d785ba2b7a2c14c082802d54c9feb93067bcf063","src/path.rs":"44d339ce1814effd10ba131ae0393df215f09dbfb35ab4d678f49d4081f58dd4","src/ser.rs":"f969d7a7eb528e537ad23be97ce2fddc3f616cec31a186e9fa21a66db889f136","src/value/de.rs":"84b213b23a8d4bf6bd9aacd18fc1091254382c4edc479f9a9abc87c416b370f0","src/value/from.rs":"cd66c76c4ab03bed32f8c4b22ffbd96274a837d587624a62d0584c7090633862","src/value/index.rs":"183e00a706310144e33eb79a66fae527cc6c982210b3973f4701c6da6faeb93e","src/value/mod.rs":"171a98133de3445ccd4cfa3991b5c3f96baa1c05542fc1927e6eccf3e4ddbe09","src/value/partial_eq.rs":"0b28c8d2f10a58581dbe2a69d25742fa0f8bf3da797f3046e38e300d1f9691bf","src/value/ser.rs":"7ddb9bfadfbfe16a79c872888ea25f8fb7df14b862fea47dd603d576e162db86","tests/test_de.rs":"283936649181a0de40b099105da743e049422f1e1311399e69e14404b7753bab","tests/test_error.rs":"ca1c349a16ea5eb539ef2382d7af39a63a8afbcd0cb4397292f43bffa519e848","tests/test_serde.rs":"f44daa0d032769779fd437b001188cf1143cec9796fd8785211518fc86828541","tests/test_value.rs":"e9424b8ee13c18c4375c3a7e1af25047e2ef3efb117b1413334c0950c912937a","tests/test_visitor.rs":"c7e15a2712f7e8fbc7f4c09893af732eb92beaa5c3d32dc21d362ed8d851d673"},"package":"d8c608a35705a5d3cdc9fbe403147647ff34b921f8e833e49306df898f9b20af"}+{"files":{"Cargo.toml":"dd6c4ad4666cecccc8e3dfa6c79bde8d6282c73778bde32865f81ebda28ec5c2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"0ecc4d2dbcf421446379a2aa54e68632d510148f58620e3df87b57e07bf41951","src/de.rs":"98be0ec59da4b6f69a54b0bfaa199b1b021527e9e36872df3f8a864f203f353c","src/error.rs":"84ebb62e090ace13bcf14f1f2bebabcdc1a9518b7e24f81c1bb250a152a1ec1e","src/lib.rs":"c0a487813783b4db0c4f37be2ec41084042fbf2cb3f24b191de90bce5790ae78","src/mapping.rs":"6607911090c89a41ade38f1717b9c0bd6c3c253cc4711890b77b2bda18d6bac7","src/number.rs":"4edf78ad75bf66bae31c1ee4d785ba2b7a2c14c082802d54c9feb93067bcf063","src/path.rs":"44d339ce1814effd10ba131ae0393df215f09dbfb35ab4d678f49d4081f58dd4","src/ser.rs":"412068add72b3b2d0665fc635590ad1f7d2c097dc5e76721110869dfdf83074a","src/value/de.rs":"84b213b23a8d4bf6bd9aacd18fc1091254382c4edc479f9a9abc87c416b370f0","src/value/from.rs":"cd66c76c4ab03bed32f8c4b22ffbd96274a837d587624a62d0584c7090633862","src/value/index.rs":"183e00a706310144e33eb79a66fae527cc6c982210b3973f4701c6da6faeb93e","src/value/mod.rs":"171a98133de3445ccd4cfa3991b5c3f96baa1c05542fc1927e6eccf3e4ddbe09","src/value/partial_eq.rs":"0b28c8d2f10a58581dbe2a69d25742fa0f8bf3da797f3046e38e300d1f9691bf","src/value/ser.rs":"7ddb9bfadfbfe16a79c872888ea25f8fb7df14b862fea47dd603d576e162db86","tests/test_de.rs":"41911d6392b5704240ee147e2c146371f479b9115cdaf7e0e8639529d0bc1251","tests/test_error.rs":"4ef5c9001f140e1aee1e9d6238c668d26b5b264e237773741d5f65bfff036e75","tests/test_serde.rs":"e237e3144ce0ba943ed37d645f7ccede98c6ea0368e12fde88c4eede650c80d4","tests/test_value.rs":"e9424b8ee13c18c4375c3a7e1af25047e2ef3efb117b1413334c0950c912937a"},"package":"a4a521f2940385c165a24ee286aa8599633d162077a54bdcae2a6fd5a7bfa7a0"}=========third_party/rust/darling/tests/from_type_param_default.rs========--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/darling/tests/from_type_param_default.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/darling/tests/from_type_param_default.rs@@ -1,15 +1,8 @@-#[macro_use]-extern crate darling;-#[macro_use]-extern crate syn;-#[macro_use]-extern crate quote;+use darling::FromTypeParam;+use syn::{parse_quote, DeriveInput, GenericParam, TypeParam};-use darling::FromTypeParam;-use syn::{DeriveInput, GenericParam, TypeParam};-+#[derive(Default, FromTypeParam)] #[darling(attributes(lorem), default)]-#[derive(Default, FromTypeParam)] struct Lorem { foo: bool, bar: Option<String>,@@ -24,6 +17,7 @@ } #[test]+#[allow(clippy::bool_assert_comparison)] fn expand_many() { let di: DeriveInput = parse_quote! { struct Baz<
Based on the provided diff content, I'll analyze it for security vulnerabilities: 1. First diff (serde_yaml/.cargo-checksum.json): Vulnerability Existed: not sure [No specific vulnerability name] [third_party/rust/serde_yaml/.cargo-checksum.json] [entire file] [Old checksums for all files] [New checksums for all files] Note: This appears to be a routine checksum update for a dependency version bump. While checksum changes could indicate a supply chain attack, there's no evidence of that here. 2. Second diff (darling/tests/from_type_param_default.rs): Vulnerability Existed: no [No specific vulnerability name] [third_party/rust/darling/tests/from_type_param_default.rs] [multiple lines] [Old test implementation with multiple extern crate declarations] [New test implementation with simplified imports and added clippy allowance] Note: These changes appear to be test code improvements and modernization, not security fixes. No clear security vulnerabilities were identified in these diffs. The changes appear to be routine dependency updates and code 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/layout/style/CSSLayerBlockRule.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/style/CSSLayerBlockRule.h@@ -15,7 +15,7 @@ class CSSLayerBlockRule final : public css::GroupRule { public: CSSLayerBlockRule(RefPtr<RawServoLayerBlockRule> aRawRule, StyleSheet* aSheet,- css::Rule* aParentRule, uint32_t aLine, uint32_t aColumn);+ css::Rule* aParentRule, uint32_t aLine, uint32_t aColumn); NS_DECL_ISUPPORTS_INHERITED@@ -32,7 +32,6 @@ void GetName(nsACString&) const;- size_t SizeOfIncludingThis(MallocSizeOf) const override; JSObject* WrapObject(JSContext*, JS::Handle<JSObject*>) override;
Based on the provided diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily formatting/whitespace adjustments and minor code organization. Here's the analysis: 1. First change: Vulnerability Existed: no Formatting adjustment [File] [Lines 15-16] [Old Code] CSSLayerBlockRule(RefPtr<RawServoLayerBlockRule> aRawRule, StyleSheet* aSheet, css::Rule* aParentRule, uint32_t aLine, uint32_t aColumn); [Fixed Code] CSSLayerBlockRule(RefPtr<RawServoLayerBlockRule> aRawRule, StyleSheet* aSheet, css::Rule* aParentRule, uint32_t aLine, uint32_t aColumn); 2. Second change: Vulnerability Existed: no Whitespace cleanup [File] [Line 32] [Old Code] void GetName(nsACString&) const; [Fixed Code] void GetName(nsACString&) const; The changes consist of: - Adjusting indentation in a constructor declaration - Removing an extra blank line between method declarations Neither change appears to address any security vulnerability or introduce any security-related fixes. They seem to be purely cosmetic/formatting improvements.
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/pixel-manipulation/2d.imageData.create2.nonfinite.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.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'); assert_throws_js(TypeError, function() { ctx.createImageData(Infinity, 10); }); assert_throws_js(TypeError, function() { ctx.createImageData(-Infinity, 10); });
Here's my analysis of the provided code diff: Vulnerability Existed: no [Variable Renaming] [testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.nonfinite.worker.js] [Lines 13-14] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Details: 1. The change appears to be purely a variable name change from `offscreenCanvas` to `canvas`, which doesn't indicate any security vulnerability. 2. The rest of the file remains unchanged, continuing to test handling of non-finite values in canvas operations. 3. No actual security-related functionality was modified 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/css/css-contain/contain-paint-047.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-contain/contain-paint-047.html@@ -10,7 +10,6 @@ <meta content="This test checks that an element with 'contain: paint' that has its content overflowing will clip at padding edge." name="assert">- <meta name="flags" content=""> <style> div
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability [testing/web-platform/tests/css/css-contain/contain-paint-047.html] [Lines 10] [Old Code: <meta name="flags" content="">] [Fixed Code: (line removed)] Additional details: - The diff shows removal of an empty meta tag with name="flags". This appears to be a cleanup change rather than a security fix. - There are no clear security implications from this change as the removed tag was empty and not used for any security-related functionality. - The change is more likely related to test metadata cleanup or standardization rather than addressing a 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/tools/lint/file-whitespace.yml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/tools/lint/file-whitespace.yml@@ -131,6 +131,7 @@ - testing/mozharness/configs/raptor/linux64_config_taskcluster.py - testing/mozharness/configs/talos/linux64_config_taskcluster.py - testing/mozharness/configs/web_platform_tests/test_config_windows.py+ - testing/perfdocs/generated/ - testing/talos/talos/cmanager_base.py - testing/talos/talos/pageloader/chrome/pageloader.xhtml - testing/talos/talos/tests@@ -158,7 +159,6 @@ - testing/web-platform/tests/html - testing/web-platform/tests/tools/webdriver/webdriver/transport.py - testing/web-platform/tests/tools/wptrunner/wptrunner/browsers/edgechromium.py- - testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executoredgechromium.py - testing/web-platform/tests/tools/wptrunner/wptrunner/manifestupdate.py - testing/web-platform/tests/tools/wptrunner/wptrunner/metadata.py - testing/web-platform/tests/tools/wptrunner/wptrunner/tests/test_update.py@@ -186,6 +186,10 @@ - devtools/client/styleeditor/test/sourcemap-css/test-stylus.css - dom/bindings/test/file_barewordGetsWindow_frame1.html - dom/bindings/test/file_barewordGetsWindow_frame2.html+ - devtools/perfdocs/index.rst+ - python/mozperftest/perfdocs/running.rst+ - python/mozperftest/perfdocs/vision.rst+ - python/mozperftest/perfdocs/writing.rst extensions: - .c - .cc@@ -198,6 +202,7 @@ - .py - .properties - .rs+ - .rst - .xhtml support-files: - 'tools/lint/file-whitespace/**'
After analyzing the provided code diff, I don't find any security vulnerabilities being fixed. The changes appear to be related to file path inclusions/exclusions and file extensions in a linting configuration file, which are typically maintenance or organizational changes rather than security fixes. Here's the structured response: Vulnerability Existed: no No security vulnerabilities found in the diff. The changes are related to linting configuration updates. The changes include: 1. Adding/testing/perfdocs/generated/ to the excluded paths 2. Removing/testing/web-platform/tests/tools/wptrunner/wptrunner/executors/executoredgechromium.py from excluded paths 3. Adding several .rst documentation files to excluded paths 4. Adding .rst to the list of supported file extensions These changes appear to be routine maintenance updates to the linting configuration 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/toolkit/components/glean/bindings/private/Timespan.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/glean/bindings/private/Timespan.cpp@@ -36,9 +36,14 @@ auto lock = GetTimesToStartsLock(); auto optStart = lock.ref()->Extract(scalarId); if (!NS_WARN_IF(!optStart)) {- uint32_t delta = static_cast<uint32_t>(- (TimeStamp::Now() - optStart.extract()).ToMilliseconds());- Telemetry::ScalarSet(scalarId, delta);+ double delta = (TimeStamp::Now() - optStart.extract()).ToMilliseconds();+ uint32_t theDelta = static_cast<uint32_t>(delta);+ if (delta > std::numeric_limits<uint32_t>::max()) {+ theDelta = std::numeric_limits<uint32_t>::max();+ } else if (MOZ_UNLIKELY(delta < 0)) {+ theDelta = 0;+ }+ Telemetry::ScalarSet(scalarId, theDelta); } } fog_timespan_stop(mId);
Here's the analysis following your requested format: Vulnerability Existed: yes Integer Overflow Vulnerability [File] [Lines 36-44] [Old Code] uint32_t delta = static_cast<uint32_t>( (TimeStamp::Now() - optStart.extract()).ToMilliseconds()); Telemetry::ScalarSet(scalarId, delta); [Fixed Code] double delta = (TimeStamp::Now() - optStart.extract()).ToMilliseconds(); uint32_t theDelta = static_cast<uint32_t>(delta); if (delta > std::numeric_limits<uint32_t>::max()) { theDelta = std::numeric_limits<uint32_t>::max(); } else if (MOZ_UNLIKELY(delta < 0)) { theDelta = 0; } Telemetry::ScalarSet(scalarId, theDelta); Additional Details: The fix addresses a potential integer overflow vulnerability by: 1. Changing the intermediate storage to double to prevent overflow during calculation 2. Adding bounds checking before casting to uint32_t 3. Handling negative values (though unlikely in this context) 4. Using proper saturation logic when values exceed uint32_t limits Vulnerability Existed: not sure Potential Negative Value Handling [File] [Lines 36-44] [Old Code] uint32_t delta = static_cast<uint32_t>( (TimeStamp::Now() - optStart.extract()).ToMilliseconds()); [Fixed Code] if (MOZ_UNLIKELY(delta < 0)) { theDelta = 0; } Additional Details: The fix adds explicit handling for negative values, though it's unclear if this was an actual security vulnerability or just defensive programming, as time differences shouldn't normally be negative. The MOZ_UNLIKELY macro suggests this is an edge case.
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/netwerk/ipc/SocketProcessChild.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/netwerk/ipc/SocketProcessChild.cpp@@ -147,6 +147,8 @@ } BackgroundChild::Startup();+ BackgroundChild::InitSocketStarter(this);+ SetThisProcessName("Socket Process"); #if defined(XP_MACOSX) // Close all current connections to the WindowServer. This ensures that the@@ -437,6 +439,29 @@ } return IPC_OK(); }++mozilla::ipc::IPCResult+SocketProcessChild::RecvOnHttpActivityDistributorObserveProxyResponse(+ const bool& aIsEnabled) {+ nsCOMPtr<nsIHttpActivityDistributor> distributor =+ do_GetService("@mozilla.org/network/http-activity-distributor;1");+ if (distributor) {+ Unused << distributor->SetObserveProxyResponse(aIsEnabled);+ }+ return IPC_OK();+}++mozilla::ipc::IPCResult+SocketProcessChild::RecvOnHttpActivityDistributorObserveConnection(+ const bool& aIsEnabled) {+ nsCOMPtr<nsIHttpActivityDistributor> distributor =+ do_GetService("@mozilla.org/network/http-activity-distributor;1");+ if (distributor) {+ Unused << distributor->SetObserveConnection(aIsEnabled);+ }+ return IPC_OK();+}+ already_AddRefed<PInputChannelThrottleQueueChild> SocketProcessChild::AllocPInputChannelThrottleQueueChild( const uint32_t& aMeanBytesPerSecond, const uint32_t& aMaxBytesPerSecond) {
I'll analyze the provided code diff for security fixes following the specified format. 1. First change analysis: Vulnerability Existed: not sure [Potential Initialization Issue] [netwerk/ipc/SocketProcessChild.cpp] [Lines 147-149] [Old Code] BackgroundChild::Startup(); SetThisProcessName("Socket Process"); [Fixed Code] BackgroundChild::Startup(); BackgroundChild::InitSocketStarter(this); SetThisProcessName("Socket Process"); 2. Second change analysis: Vulnerability Existed: not sure [Potential Missing HTTP Activity Monitoring] [netwerk/ipc/SocketProcessChild.cpp] [Lines 439-449] [Old Code] [No equivalent code existed] [Fixed Code] mozilla::ipc::IPCResult SocketProcessChild::RecvOnHttpActivityDistributorObserveProxyResponse( const bool& aIsEnabled) { nsCOMPtr<nsIHttpActivityDistributor> distributor = do_GetService("@mozilla.org/network/http-activity-distributor;1"); if (distributor) { Unused << distributor->SetObserveProxyResponse(aIsEnabled); } return IPC_OK(); } 3. Third change analysis: Vulnerability Existed: not sure [Potential Missing Connection Monitoring] [netwerk/ipc/SocketProcessChild.cpp] [Lines 451-461] [Old Code] [No equivalent code existed] [Fixed Code] mozilla::ipc::IPCResult SocketProcessChild::RecvOnHttpActivityDistributorObserveConnection( const bool& aIsEnabled) { nsCOMPtr<nsIHttpActivityDistributor> distributor = do_GetService("@mozilla.org/network/http-activity-distributor;1"); if (distributor) { Unused << distributor->SetObserveConnection(aIsEnabled); } return IPC_OK(); } Additional notes: - The changes appear to add new functionality rather than fix existing vulnerabilities - The first change adds initialization code which might be related to security but isn't clearly a fix - The other changes add HTTP activity monitoring capabilities, which could be security-related but don't appear to be fixing a specific vulnerability - Without more context about the threat model or previous issues, it's hard to determine if these are 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/editor/libeditor/HTMLEditorDeleteHandler.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/editor/libeditor/HTMLEditorDeleteHandler.cpp@@ -3125,10 +3125,12 @@ mRightContent = HTMLEditUtils::GetInclusiveAncestorElement( *aRangesToDelete.FirstRangeRef()->GetEndContainer()->AsContent(), HTMLEditUtils::ClosestEditableBlockElement);- // Note that mLeftContent and mRightContent can be nullptr if editing host- // is an inline element.- if (mLeftContent == mRightContent) {- MOZ_ASSERT_IF(!mLeftContent,+ // Note that mLeftContent and/or mRightContent can be nullptr if editing host+ // is an inline element. If both editable ancestor block is exactly same+ // one or one reaches an inline editing host, we can just delete the content+ // in ranges.+ if (mLeftContent == mRightContent || !mLeftContent || !mRightContent) {+ MOZ_ASSERT_IF(!mLeftContent || !mRightContent, aRangesToDelete.FirstRangeRef() ->GetStartContainer() ->AsContent()@@ -3139,12 +3141,6 @@ mMode = Mode::DeleteContentInRanges; return true; }- if (NS_WARN_IF(!mLeftContent) || NS_WARN_IF(!mRightContent)) {- return false;- }- NS_ASSERTION(- mLeftContent->GetEditingHost() == mRightContent->GetEditingHost(),- "Trying to delete across editing host boundaries"); // If left block and right block are adjuscent siblings and they are same // type of elements, we can merge them after deleting the selected contents.@@ -3229,7 +3225,6 @@ ->GetEndContainer() ->AsContent() ->GetEditingHost());- MOZ_ASSERT(mLeftContent == mRightContent); MOZ_ASSERT_IF(mLeftContent, mLeftContent->IsElement()); MOZ_ASSERT_IF(mLeftContent, aRangesToDelete.FirstRangeRef() ->GetStartContainer()@@ -4615,10 +4610,13 @@ template <typename PT, typename CT> Result<bool, nsresult> HTMLEditor::CanMoveOrDeleteSomethingInHardLine( const EditorDOMPointBase<PT, CT>& aPointInHardLine) const {+ if (MOZ_UNLIKELY(NS_WARN_IF(!aPointInHardLine.IsSet()) ||+ NS_WARN_IF(aPointInHardLine.IsInNativeAnonymousSubtree()))) {+ return Err(NS_ERROR_INVALID_ARG);+ }+ RefPtr<nsRange> oneLineRange = CreateRangeExtendedToHardLineStartAndEnd(- aPointInHardLine.ToRawRangeBoundary(),- aPointInHardLine.ToRawRangeBoundary(),- EditSubAction::eMergeBlockContents);+ aPointInHardLine, aPointInHardLine, EditSubAction::eMergeBlockContents); if (!oneLineRange || oneLineRange->Collapsed() || !oneLineRange->IsPositioned() || !oneLineRange->GetStartContainer()->IsContent() ||
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Null Pointer Dereference] [editor/libeditor/HTMLEditorDeleteHandler.cpp] [Lines 3125-3141] [Old Code] if (mLeftContent == mRightContent) { MOZ_ASSERT_IF(!mLeftContent, [Fixed Code] if (mLeftContent == mRightContent || !mLeftContent || !mRightContent) { MOZ_ASSERT_IF(!mLeftContent || !mRightContent, Additional Details: The change adds explicit checks for null pointers and combines them with the equality check. This could potentially prevent null pointer dereferences, though it's not clear if this was an actual security vulnerability. 2. Vulnerability Existed: not sure [Removed Assertions] [editor/libeditor/HTMLEditorDeleteHandler.cpp] [Lines 3139-3143] [Old Code] if (NS_WARN_IF(!mLeftContent) || NS_WARN_IF(!mRightContent)) { return false; } NS_ASSERTION( mLeftContent->GetEditingHost() == mRightContent->GetEditingHost(), "Trying to delete across editing host boundaries"); [Fixed Code] [Removed entirely] Additional Details: The removal of these checks could potentially affect security if they were guarding against cross-host operations, but the context isn't clear enough to determine if this was an actual vulnerability. 3. Vulnerability Existed: not sure [Added Input Validation] [editor/libeditor/HTMLEditorDeleteHandler.cpp] [Lines 4610-4613] [Old Code] [No validation checks] [Fixed Code] if (MOZ_UNLIKELY(NS_WARN_IF(!aPointInHardLine.IsSet()) || NS_WARN_IF(aPointInHardLine.IsInNativeAnonymousSubtree()))) { return Err(NS_ERROR_INVALID_ARG); } Additional Details: The addition of input validation for the point in hard line could prevent potential security issues related to invalid input, though the exact nature of any potential vulnerability isn't clear from the diff. Note: While these changes appear to improve code safety and robustness, it's not possible to definitively identify specific security vulnerabilities from the provided diff alone. The changes might be general code improvements rather than direct 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/path-objects/2d.path.roundrect.radius.intersecting.2.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.roundrect.radius.intersecting.2.worker.js@@ -13,23 +13,23 @@ }); 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); ctx.roundRect(0, 0, 100, 50, [1000, 1000, 1000, 1000]); ctx.fillStyle = '#0f0'; ctx.fill();-_assertPixel(offscreenCanvas, 2,25, 0,255,0,255, "2,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,1, 0,255,0,255, "50,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,48, 0,255,0,255, "50,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 97,25, 0,255,0,255, "97,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,1, 255,0,0,255, "1,1", "255,0,0,255");-_assertPixel(offscreenCanvas, 98,1, 255,0,0,255, "98,1", "255,0,0,255");-_assertPixel(offscreenCanvas, 1,48, 255,0,0,255, "1,48", "255,0,0,255");-_assertPixel(offscreenCanvas, 98,48, 255,0,0,255, "98,48", "255,0,0,255");+_assertPixel(canvas, 2,25, 0,255,0,255, "2,25", "0,255,0,255");+_assertPixel(canvas, 50,1, 0,255,0,255, "50,1", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,48, 0,255,0,255, "50,48", "0,255,0,255");+_assertPixel(canvas, 97,25, 0,255,0,255, "97,25", "0,255,0,255");+_assertPixel(canvas, 1,1, 255,0,0,255, "1,1", "255,0,0,255");+_assertPixel(canvas, 98,1, 255,0,0,255, "98,1", "255,0,0,255");+_assertPixel(canvas, 1,48, 255,0,0,255, "1,48", "255,0,0,255");+_assertPixel(canvas, 98,48, 255,0,0,255, "98,48", "255,0,0,255"); t.done(); });
After analyzing the provided code diff, I don't find any security vulnerabilities. The changes appear to be purely cosmetic/refactoring, with the variable name `offscreenCanvas` being renamed to `canvas` and all subsequent references updated accordingly. Here's the analysis following your format: Vulnerability Existed: no [No security vulnerability found] [File] testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.radius.intersecting.2.worker.js [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 2,25, 0,255,0,255, "2,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 2,25, 0,255,0,255, "2,25", "0,255,0,255"); The changes don't affect any security-related functionality - they're simply variable renaming for better clarity or consistency. The canvas operations and assertions remain functionally identical. No security vulnerabilities were introduced or 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/accessible/tests/mochitest/treeupdate/test_select.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/accessible/tests/mochitest/treeupdate/test_select.html@@ -39,12 +39,8 @@ var tree = { COMBOBOX: [ { COMBOBOX_LIST: [- { COMBOBOX_OPTION: [- { TEXT_LEAF: [] },- ] },- { COMBOBOX_OPTION: [- { TEXT_LEAF: [] },- ] },+ { COMBOBOX_OPTION: [ ] },+ { COMBOBOX_OPTION: [ ] }, ] }, ] }; testAccessibleTree(this.select, tree);
Analyzing the provided code diff: 1. Vulnerability Existed: no No specific vulnerability [File] accessible/tests/mochitest/treeupdate/test_select.html [Lines] 39-48 Old Code: { COMBOBOX_OPTION: [ { TEXT_LEAF: [] }, ] }, { COMBOBOX_OPTION: [ { TEXT_LEAF: [] }, ] }, Fixed Code: { COMBOBOX_OPTION: [ ] }, { COMBOBOX_OPTION: [ ] }, Additional Details: - This appears to be a test file modification where nested TEXT_LEAF elements were removed from COMBOBOX_OPTION elements in a test tree structure - The change seems to simplify the test case structure rather than fix a security vulnerability - No security-related patterns (XSS, injection, etc.) are visible in this change - The modification is likely related to test case maintenance or accessibility tree verification 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/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.setTransform.skewed.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.setTransform.skewed.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'); // Create green with a red square ring inside it ctx.fillStyle = '#0f0';@@ -36,14 +36,14 @@ for (var i = 0; i < pts.length; ++i) ctx.lineTo(pts[i][0], pts[i][1]); ctx.fill();-_assertPixel(offscreenCanvas, 21,11, 0,255,0,255, "21,11", "0,255,0,255");-_assertPixel(offscreenCanvas, 79,11, 0,255,0,255, "79,11", "0,255,0,255");-_assertPixel(offscreenCanvas, 21,39, 0,255,0,255, "21,39", "0,255,0,255");-_assertPixel(offscreenCanvas, 79,39, 0,255,0,255, "79,39", "0,255,0,255");-_assertPixel(offscreenCanvas, 39,19, 0,255,0,255, "39,19", "0,255,0,255");-_assertPixel(offscreenCanvas, 61,19, 0,255,0,255, "61,19", "0,255,0,255");-_assertPixel(offscreenCanvas, 39,31, 0,255,0,255, "39,31", "0,255,0,255");-_assertPixel(offscreenCanvas, 61,31, 0,255,0,255, "61,31", "0,255,0,255");+_assertPixel(canvas, 21,11, 0,255,0,255, "21,11", "0,255,0,255");+_assertPixel(canvas, 79,11, 0,255,0,255, "79,11", "0,255,0,255");+_assertPixel(canvas, 21,39, 0,255,0,255, "21,39", "0,255,0,255");+_assertPixel(canvas, 79,39, 0,255,0,255, "79,39", "0,255,0,255");+_assertPixel(canvas, 39,19, 0,255,0,255, "39,19", "0,255,0,255");+_assertPixel(canvas, 61,19, 0,255,0,255, "61,19", "0,255,0,255");+_assertPixel(canvas, 39,31, 0,255,0,255, "39,31", "0,255,0,255");+_assertPixel(canvas, 61,31, 0,255,0,255, "61,31", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I can identify the following: 1. Vulnerability Existed: no The changes in the diff are purely variable name changes (from `offscreenCanvas` to `canvas`) and corresponding updates to assertions. There are no security vulnerabilities being fixed here - this appears to be a code style/consistency improvement. The diff shows: - Variable renaming from `offscreenCanvas` to `canvas` (lines 13-14) - Corresponding updates to all `_assertPixel` calls to use the new variable name (lines 36-43) No security-related changes or vulnerability fixes are present in this diff. The modifications are purely cosmetic/refactoring in nature. Answer Format Applied: Vulnerability Existed: no [No security vulnerability found - variable renaming only] [testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.setTransform.skewed.worker.js] [13-14, 36-43] [var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d');] [var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d');]
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.negative.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'); assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, -0.1, 0, 0, 1); }); assert_throws_dom("INDEX_SIZE_ERR", function() { ctx.createRadialGradient(0, 0, 1, 0, 0, -0.1); });
Based on the provided diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no Variable Renaming [File] [Lines 13-14] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Details: - This appears to be a simple variable renaming from `offscreenCanvas` to `canvas` - No security vulnerability is being fixed here, just a code style/consistency change - The functionality remains exactly the same - The test assertions below the changed lines remain unchanged and continue to test for INDEX_SIZE_ERR exceptions No security vulnerabilities were identified in this diff. The change is purely cosmetic/readability 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.