Shared security patch analysis results
AI Used: DEEPSEEK deepseek-chat--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/jpeg-xl/lib/jxl/enc_cache.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/jpeg-xl/lib/jxl/enc_cache.h@@ -73,10 +73,11 @@ // Initialize per-frame information. class ModularFrameEncoder;-void InitializePassesEncoder(const Image3F& opsin, ThreadPool* pool,- PassesEncoderState* passes_enc_state,- ModularFrameEncoder* modular_frame_encoder,- AuxOut* aux_out);+Status InitializePassesEncoder(const Image3F& opsin, const JxlCmsInterface& cms,+ ThreadPool* pool,+ PassesEncoderState* passes_enc_state,+ ModularFrameEncoder* modular_frame_encoder,+ AuxOut* aux_out); // Working area for ComputeCoefficients (per-group!) struct EncCache {
Let me analyze this code diff for potential security issues. Vulnerability Existed: not sure [Potential Error Handling Improvement] [third_party/jpeg-xl/lib/jxl/enc_cache.h] [Lines 73-78] [Old Code] void InitializePassesEncoder(const Image3F& opsin, ThreadPool* pool, PassesEncoderState* passes_enc_state, ModularFrameEncoder* modular_frame_encoder, AuxOut* aux_out); [Fixed Code] Status InitializePassesEncoder(const Image3F& opsin, const JxlCmsInterface& cms, ThreadPool* pool, PassesEncoderState* passes_enc_state, ModularFrameEncoder* modular_frame_encoder, AuxOut* aux_out); Additional Details: 1. The function signature changed from void to Status return type, indicating better error handling 2. A new parameter (JxlCmsInterface& cms) was added for color management 3. No specific vulnerability name applies, but the change improves robustness 4. The modification could potentially prevent undefined behavior if errors occur during execution Note: While this doesn't fix a specific known vulnerability, it represents a defensive programming improvement that could prevent potential issues. The change from void to Status return type suggests the function may now properly report errors instead of silently failing.
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-tables/subpixel-table-width-001.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-tables/subpixel-table-width-001.html@@ -2,7 +2,6 @@ <link rel="author" title="David Grogan" href="mailto:[email protected]"> <link rel="help" href="https://www.w3.org/TR/CSS22/syndata.html#value-def-percentage"> <link rel="match" href="subpixel-table-width-001-ref.html">-<meta name="flags" content="" /> <meta name="assert" content="A table with width:100% has same actual width as its parent's actual width." /> <style>
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: no Meta Tag Removal [File] [Lines 2-7] [Old Code] <meta name="flags" content="" /> [Fixed Code] (line removed) Additional Details: - The change simply removes an empty meta tag that wasn't serving any purpose - No security implications are apparent in this change - The modification appears to be a cleanup rather than a security fix - No known vulnerability is associated with this change Note: Since this is a test file and the change is minimal, there are no clear security vulnerabilities being addressed. The removal of an unused meta tag doesn't appear to relate to any security issue.
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/futures-util/src/compat/compat01as03.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/futures-util/src/compat/compat01as03.rs@@ -351,8 +351,6 @@ #[cfg_attr(docsrs, doc(cfg(feature = "io-compat")))] mod io { use super::*;- #[cfg(feature = "read-initializer")]- use futures_io::Initializer; use futures_io::{AsyncRead as AsyncRead03, AsyncWrite as AsyncWrite03}; use std::io::Error; use tokio_io::{AsyncRead as AsyncRead01, AsyncWrite as AsyncWrite01};@@ -416,16 +414,6 @@ impl<W: AsyncWrite01> AsyncWrite01CompatExt for W {} impl<R: AsyncRead01> AsyncRead03 for Compat01As03<R> {- #[cfg(feature = "read-initializer")]- unsafe fn initializer(&self) -> Initializer {- // check if `prepare_uninitialized_buffer` needs zeroing- if self.inner.get_ref().prepare_uninitialized_buffer(&mut [1]) {- Initializer::zeroing()- } else {- Initializer::nop()- }- }- fn poll_read( mut self: Pin<&mut Self>, cx: &mut Context<'_>,
Based on the provided diff, I'll analyze the changes for potential security vulnerabilities: 1. Vulnerability Existed: not sure [Removal of read-initializer feature] [third_party/rust/futures-util/src/compat/compat01as03.rs] [Lines 351-416] [Old Code] ```rust #[cfg(feature = "read-initializer")] use futures_io::Initializer; ... #[cfg(feature = "read-initializer")] unsafe fn initializer(&self) -> Initializer { // check if `prepare_uninitialized_buffer` needs zeroing if self.inner.get_ref().prepare_uninitialized_buffer(&mut [1]) { Initializer::zeroing() } else { Initializer::nop() } } ``` [Fixed Code] ```rust // Entire feature and related code removed ``` Additional Details: - The diff shows removal of code related to the "read-initializer" feature, which was responsible for handling uninitialized memory buffers during async reads. - The removed code contained unsafe operations (memory initialization) which could potentially be security-sensitive. - Without more context about why this was removed, I can't be certain if this was fixing a vulnerability or just removing unused functionality. - The removal of unsafe memory handling code could potentially be security-related, but might also just be cleanup of deprecated features.
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.invalid.css-color-4-rgba-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/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-rgba-1.worker.js@@ -13,14 +13,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 = '#0f0'; try { ctx.fillStyle = 'rgba(255, 0, 0 / 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does 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 potential security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability was fixed in this diff. The changes appear to be: - Variable name change from `offscreenCanvas` to `canvas` - Corresponding update in the `_assertPixel` call - No security-related changes were made 2. Vulnerability Existed: not sure Potential CSS Color Parsing Issue [File] [Lines 13-21] The code deals with CSS color parsing (specifically rgba format), but: - The test is explicitly checking invalid CSS color syntax (`rgba(255, 0, 0 / 1)`) - The change doesn't modify the security-relevant part (the color parsing) - This might relate to potential CSS injection if this were user-controlled input, but in this test context it's not security-relevant The diff primarily shows a variable renaming and doesn't appear to address any specific security vulnerability. The test case continues to check color parsing behavior, but this seems to be a functional test 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/testing/web-platform/tests/css/css-values/ch-unit-012.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-values/ch-unit-012.html@@ -8,7 +8,6 @@ <link rel="help" href="https://www.w3.org/TR/css-values-3/#font-relative-lengths"> <link rel="match" href="reference/ch-unit-009-ref.html">- <meta name="flags" content=""> <meta name="assert" content="In this test, the ch unit is the advance width measure of the 0 (ZERO, U+0030) glyph."> <style>
Analyzing the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/css/css-values/ch-unit-012.html [Lines] 8 [Old Code] `<meta name="flags" content="">` [Fixed Code] (line removed) Additional Details: - The change simply removes an empty meta tag for "flags", which doesn't appear to be security-related - This appears to be a cleanup change rather than a security fix - No known vulnerability patterns or security issues are addressed by this change The diff shows only this single change, which doesn't appear to be security-related. The removal of an empty meta tag is likely just code cleanup or test file maintenance.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.html+++ /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/size.attributes.parse.percent.html@@ -17,10 +17,10 @@ }); 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() { offscreenCanvas.width = '100%'; });+assert_throws_js(TypeError, function() { canvas.width = '100%'; }); t.done(); });
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.percent.html [Lines] 17-20 Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); assert_throws_js(TypeError, function() { offscreenCanvas.width = '100%'; }); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); assert_throws_js(TypeError, function() { canvas.width = '100%'; }); Additional Notes: - The changes appear to be primarily variable renaming (from `offscreenCanvas` to `canvas`) rather than security fixes - The test continues to verify that setting width with percentage values throws a TypeError, which is correct behavior - No actual security vulnerability appears to have been addressed in this diff
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompoint.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.4.radii.4.dompoint.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,15 +23,15 @@ ctx.fill(); // bottom-left corner-_assertPixel(offscreenCanvas, 20,48, 255,0,0,255, "20,48", "255,0,0,255");-_assertPixel(offscreenCanvas, 41,48, 0,255,0,255, "41,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,39, 255,0,0,255, "1,39", "255,0,0,255");-_assertPixel(offscreenCanvas, 1,28, 0,255,0,255, "1,28", "0,255,0,255");+_assertPixel(canvas, 20,48, 255,0,0,255, "20,48", "255,0,0,255");+_assertPixel(canvas, 41,48, 0,255,0,255, "41,48", "0,255,0,255");+_assertPixel(canvas, 1,39, 255,0,0,255, "1,39", "255,0,0,255");+_assertPixel(canvas, 1,28, 0,255,0,255, "1,28", "0,255,0,255"); // other corners-_assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 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, 98,48, 0,255,0,255, "98,48", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't see any security-related changes. The changes appear to be purely cosmetic/refactoring, renaming a variable from `offscreenCanvas` to `canvas` and updating all references to it. There are no security vulnerabilities being fixed here. Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.4.dompoint.worker.js Lines: Various Old Code: Used variable name 'offscreenCanvas' Fixed Code: Changed variable name to 'canvas' Note: This is a refactoring change, not 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/gfx/wr/webrender/src/gamma_lut.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/gfx/wr/webrender/src/gamma_lut.rs@@ -399,11 +399,11 @@ let preblend_result = over(dst, src, preblend as u32); let true_result = ((overf(lin_dst, lin_src, alpha as f32) / 255.).powf(1. / g) * 255.) as u32; let diff = absdiff(preblend_result, true_result);- //println!("{} -- {} {} = {}", alpha, preblend_result, true_result, diff);+ //debug!("{} -- {} {} = {}", alpha, preblend_result, true_result, diff); max_diff = max(max_diff, diff); }- //println!("{} {} max {}", src, dst, max_diff);+ //debug!("{} {} max {}", src, dst, max_diff); assert!(max_diff <= 33); dst += 1;
Here's the analysis of the provided code diff: 1. Vulnerability Existed: no Logging Change [gfx/wr/webrender/src/gamma_lut.rs] [Lines 399, 404] Old Code: ``` //println!("{} -- {} {} = {}", alpha, preblend_result, true_result, diff); ``` Fixed Code: ``` //debug!("{} -- {} {} = {}", alpha, preblend_result, true_result, diff); ``` 2. Vulnerability Existed: no Logging Change [gfx/wr/webrender/src/gamma_lut.rs] [Lines 404] Old Code: ``` //println!("{} {} max {}", src, dst, max_diff); ``` Fixed Code: ``` //debug!("{} {} max {}", src, dst, max_diff); ``` The changes in this diff appear to be related to logging functionality, switching from `println!` to `debug!` macro for debug output. There doesn't appear to be any security vulnerability being fixed here - this seems to be more of a code quality/maintainability improvement, as `debug!` is more appropriate than `println!` for debug logging in Rust applications. No actual security vulnerabilities were identified in this diff. The changes are related to logging verbosity and don't affect the security of the application.
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/extensions/test/browser/browser_ext_themes_ntp_colors.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/extensions/test/browser/browser_ext_themes_ntp_colors.js@@ -163,6 +163,9 @@ // from the newtab background colors, but we hard-code the light styles // on this test. ["layout.css.prefers-color-scheme.content-override", 2],+ // Override the system color scheme to light so this test passes on+ // machines with dark system color scheme.+ ["ui.systemUsesDarkTheme", 0], ], }); NewTabPagePreloading.removePreloadedBrowser(window);
Let me analyze the diff for potential security vulnerabilities. Vulnerability Existed: no [Color Scheme Preference Override] [toolkit/components/extensions/test/browser/browser_ext_themes_ntp_colors.js] [Lines 163-166] [Old Code] ["layout.css.prefers-color-scheme.content-override", 2], ], }); [Fixed Code] ["layout.css.prefers-color-scheme.content-override", 2], // Override the system color scheme to light so this test passes on // machines with dark system color scheme. ["ui.systemUsesDarkTheme", 0], ], }); Analysis: 1. This appears to be a test-related change that adds an additional preference override to ensure consistent test behavior across different system color schemes. 2. The change is adding a configuration setting rather than fixing a security issue. 3. The modification is in a test file and doesn't affect production code. 4. No known vulnerability is being addressed here - it's purely a test reliability improvement.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.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.pattern.paint.repeatx.coord1.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50);@@ -39,12 +39,12 @@ ctx.fillRect(0, -16, 100, 50); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 16);- _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,25, 0,255,0,255, "1,25", "0,255,0,255");- _assertPixel(offscreenCanvas, 98,25, 0,255,0,255, "98,25", "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,25, 0,255,0,255, "1,25", "0,255,0,255");+ _assertPixel(canvas, 98,25, 0,255,0,255, "98,25", "0,255,0,255");+ _assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+ _assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255"); }, t_fail); }).then(t_pass, t_fail);
Analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No security vulnerability found in this diff. The changes are purely variable renaming (from `offscreenCanvas` to `canvas`) and corresponding updates to the variable name in the assertions. This appears to be a code style/readability improvement rather than a security fix. For completeness, here's the structured analysis even though no vulnerability was found: Vulnerability Existed: no [No vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.paint.repeatx.coord1.html] [Lines 17-39] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); and related assertions] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); and updated assertions] The changes don't indicate any security fixes or vulnerability patches, just a variable name refactoring. No CVE or known vulnerability patterns are present 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/media/libwebp/src/dsp/lossless_sse2.c+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/media/libwebp/src/dsp/lossless_sse2.c@@ -138,42 +138,51 @@ return output; }-static uint32_t Predictor5_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = Average3_SSE2(left, top[0], top[1]);- return pred;-}-static uint32_t Predictor6_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = Average2_SSE2(left, top[-1]);- return pred;-}-static uint32_t Predictor7_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = Average2_SSE2(left, top[0]);- return pred;-}-static uint32_t Predictor8_SSE2(uint32_t left, const uint32_t* const top) {+static uint32_t Predictor5_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = Average3_SSE2(*left, top[0], top[1]);+ return pred;+}+static uint32_t Predictor6_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = Average2_SSE2(*left, top[-1]);+ return pred;+}+static uint32_t Predictor7_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = Average2_SSE2(*left, top[0]);+ return pred;+}+static uint32_t Predictor8_SSE2(const uint32_t* const left,+ const uint32_t* const top) { const uint32_t pred = Average2_SSE2(top[-1], top[0]); (void)left; return pred; }-static uint32_t Predictor9_SSE2(uint32_t left, const uint32_t* const top) {+static uint32_t Predictor9_SSE2(const uint32_t* const left,+ const uint32_t* const top) { const uint32_t pred = Average2_SSE2(top[0], top[1]); (void)left; return pred; }-static uint32_t Predictor10_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = Average4_SSE2(left, top[-1], top[0], top[1]);- return pred;-}-static uint32_t Predictor11_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = Select_SSE2(top[0], left, top[-1]);- return pred;-}-static uint32_t Predictor12_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = ClampedAddSubtractFull_SSE2(left, top[0], top[-1]);- return pred;-}-static uint32_t Predictor13_SSE2(uint32_t left, const uint32_t* const top) {- const uint32_t pred = ClampedAddSubtractHalf_SSE2(left, top[0], top[-1]);+static uint32_t Predictor10_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = Average4_SSE2(*left, top[-1], top[0], top[1]);+ return pred;+}+static uint32_t Predictor11_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = Select_SSE2(top[0], *left, top[-1]);+ return pred;+}+static uint32_t Predictor12_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = ClampedAddSubtractFull_SSE2(*left, top[0], top[-1]);+ return pred;+}+static uint32_t Predictor13_SSE2(const uint32_t* const left,+ const uint32_t* const top) {+ const uint32_t pred = ClampedAddSubtractHalf_SSE2(*left, top[0], top[-1]); return pred; }
Let me analyze the provided code diff for security fixes. Vulnerability Existed: not sure Potential Integer Overflow/Underflow Vulnerability [File] [Lines 138-191] [Old Code] Various predictor functions taking `uint32_t left` directly as parameter [Fixed Code] Same functions now taking `const uint32_t* const left` and dereferencing it The main change is that all predictor functions now take a pointer to `left` rather than the value itself. While this could potentially be a security fix to prevent integer overflows/underflows by ensuring proper memory access, I cannot be certain without more context about how these functions are used. The change might also be purely for consistency or performance reasons. There doesn't appear to be any clear, specific vulnerability being fixed here (like buffer overflow, etc.), but the change in parameter passing could be related to memory safety. Without seeing the calling context or commit message, I can't definitively identify a specific vulnerability.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/pointerevents/pointerevent_constructor.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/pointerevents/pointerevent_constructor.html@@ -38,13 +38,13 @@ ["getCoalescedEvents()[" + i + "].isPrimary", coalescedEvent.isPrimary, event.isPrimary], ["getCoalescedEvents()[" + i + "].getCoalescedEvents().length", coalescedEvent.getCoalescedEvents().length, 0], ["getCoalescedEvents()[" + i + "].getPredictedEvents().length", coalescedEvent.getPredictedEvents().length, 0],- ["getCoalescedEvents()[" + i + "].target", coalescedEvent.target, target0],+ ["getCoalescedEvents()[" + i + "].target", coalescedEvent.target, null], ["getCoalescedEvents()[" + i + "].currentTarget", coalescedEvent.currentTarget, null], ["getCoalescedEvents()[" + i + "].eventPhase", coalescedEvent.eventPhase, Event.NONE], ["getCoalescedEvents()[" + i + "].cancelable", coalescedEvent.cancelable, false], ["getCoalescedEvents()[" + i + "].bubbles", coalescedEvent.bubbles, false],- ["getCoalescedEvents()[" + i + "].offsetX", coalescedEvent.offsetX, event.offsetX + (i==0?-10:0)],- ["getCoalescedEvents()[" + i + "].offsetY", coalescedEvent.offsetY, event.offsetY],+ ["getCoalescedEvents()[" + i + "].offsetX", coalescedEvent.offsetX, 310 + (i==0?-10:0)],+ ["getCoalescedEvents()[" + i + "].offsetY", coalescedEvent.offsetY, 0], ]); } for (var i=0; i<event.getPredictedEvents().length; i++) {@@ -55,13 +55,13 @@ ["getPredictedEvents()[" + i + "].isPrimary", predictedEvent.isPrimary, event.isPrimary], ["getPredictedEvents()[" + i + "].getCoalescedEvents().length", predictedEvent.getCoalescedEvents().length, 0], ["getPredictedEvents()[" + i + "].getPredictedEvents().length", predictedEvent.getPredictedEvents().length, 0],- ["getPredictedEvents()[" + i + "].target", predictedEvent.target, target0],+ ["getPredictedEvents()[" + i + "].target", predictedEvent.target, null], ["getPredictedEvents()[" + i + "].currentTarget", predictedEvent.currentTarget, null], ["getPredictedEvents()[" + i + "].eventPhase", predictedEvent.eventPhase, Event.NONE], ["getPredictedEvents()[" + i + "].cancelable", predictedEvent.cancelable, false], ["getPredictedEvents()[" + i + "].bubbles", predictedEvent.bubbles, false],- ["getPredictedEvents()[" + i + "].offsetX", predictedEvent.offsetX, event.offsetX + (i==0?10:20)],- ["getPredictedEvents()[" + i + "].offsetY", predictedEvent.offsetY, event.offsetY],+ ["getPredictedEvents()[" + i + "].offsetX", predictedEvent.offsetX, 310 + (i==0?10:20)],+ ["getPredictedEvents()[" + i + "].offsetY", predictedEvent.offsetY, 0], ]); } }));
Here's the analysis of the provided code diff following the specified format: 1. Vulnerability Existed: not sure [Potential Information Leak] [testing/web-platform/tests/pointerevents/pointerevent_constructor.html] [Lines 38-55] [Old Code] `["getCoalescedEvents()[" + i + "].target", coalescedEvent.target, target0],` `["getPredictedEvents()[" + i + "].target", predictedEvent.target, target0],` [Fixed Code] `["getCoalescedEvents()[" + i + "].target", coalescedEvent.target, null],` `["getPredictedEvents()[" + i + "].target", predictedEvent.target, null],` Additional Details: The change from using `target0` to `null` for event targets might indicate a fix for potential information leakage or incorrect event target references, but without more context, it's unclear if this was an actual security vulnerability. 2. Vulnerability Existed: not sure [Potential Coordinate Manipulation] [testing/web-platform/tests/pointerevents/pointerevent_constructor.html] [Lines 38-55] [Old Code] `["getCoalescedEvents()[" + i + "].offsetX", coalescedEvent.offsetX, event.offsetX + (i==0?-10:0)],` `["getCoalescedEvents()[" + i + "].offsetY", coalescedEvent.offsetY, event.offsetY],` `["getPredictedEvents()[" + i + "].offsetX", predictedEvent.offsetX, event.offsetX + (i==0?10:20)],` `["getPredictedEvents()[" + i + "].offsetY", predictedEvent.offsetY, event.offsetY],` [Fixed Code] `["getCoalescedEvents()[" + i + "].offsetX", coalescedEvent.offsetX, 310 + (i==0?-10:0)],` `["getCoalescedEvents()[" + i + "].offsetY", coalescedEvent.offsetY, 0],` `["getPredictedEvents()[" + i + "].offsetX", predictedEvent.offsetX, 310 + (i==0?10:20)],` `["getPredictedEvents()[" + i + "].offsetY", predictedEvent.offsetY, 0],` Additional Details: The change from using dynamic values based on `event.offsetX/Y` to fixed values might indicate a fix for potential coordinate manipulation or inconsistency issues, but again, without more context, it's unclear if this was an actual security vulnerability. Note: The changes appear to be more about test consistency and reliability rather than addressing clear security vulnerabilities. The modifications primarily involve making test expectations more explicit and less dependent on dynamic event properties.
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/wrench/src/reftest.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/gfx/wr/wrench/src/reftest.rs@@ -3,8 +3,6 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use crate::{WindowWrapper, NotifierEvent};-use base64;-use semver; use image::load as load_piston_image; use image::png::PNGEncoder; use image::{ColorType, ImageFormat};@@ -207,12 +205,10 @@ if is_failing { println!(- "{} | {} | {}: {}, {}: {} | {}",- "REFTEST TEST-UNEXPECTED-FAIL",+ "REFTEST TEST-UNEXPECTED-FAIL | {} | \+ image comparison, max difference: {}, number of differing pixels: {} | {}", self,- "image comparison, max difference", max_difference,- "number of differing pixels", count_different, fail_text, );@@ -342,7 +338,7 @@ fn new(manifest: &Path, environment: &ReftestEnvironment, options: &ReftestOptions) -> ReftestManifest { let dir = manifest.parent().unwrap(); let f =- File::open(manifest).expect(&format!("couldn't open manifest: {}", manifest.display()));+ File::open(manifest).unwrap_or_else(|_| panic!("couldn't open manifest: {}", manifest.display())); let file = BufReader::new(&f); let mut reftests = Vec::new();@@ -384,12 +380,12 @@ } let num_range = args.len() / 2; for range in 0..num_range {- let mut max = args[range * 2 + 0];+ let mut max = args[range * 2 ]; let mut num = args[range * 2 + 1]; if max.starts_with("<=") { // trim_start_matches would allow <=<=123 max = &max[2..]; }- if num.starts_with("*") {+ if num.starts_with('*') { num = &num[1..]; } let max_difference = max.parse().unwrap();@@ -440,7 +436,7 @@ } _ => return false, }- return true;+ true }; let mut paths = vec![];@@ -488,13 +484,11 @@ } // Don't try to add tests for include lines.- let op = match op {- Some(op) => op,- None => {- assert!(paths.is_empty(), "paths = {:?}", paths);- continue;- }- };+ if op.is_none() {+ assert!(paths.is_empty(), "paths = {:?}", paths);+ continue;+ }+ let op = op.unwrap(); // The reference is the last path provided. If multiple paths are // passed for the test, they render sequentially before being@@ -550,7 +544,7 @@ }); }- ReftestManifest { reftests: reftests }+ ReftestManifest { reftests } } fn find(&self, prefix: &Path) -> Vec<&Reftest> {@@ -587,14 +581,11 @@ if self.platform == condition || self.mode == condition { return true; }- match (&self.version, &semver::VersionReq::parse(condition)) {- (Some(v), Ok(r)) => {- if r.matches(v) {- return true;- }- },- _ => (),- };+ if let (Some(v), Ok(r)) = (&self.version, &semver::VersionReq::parse(condition)) {+ if r.matches(v) {+ return true;+ }+ } let envkey = format!("WRENCH_REFTEST_CONDITION_{}", condition.to_uppercase()); env::var(envkey).is_ok() }@@ -638,7 +629,7 @@ version_string.push_str(".0"); } Some(semver::Version::parse(&version_string)- .expect(&format!("Failed to parse macOS version {}", version_string)))+ .unwrap_or_else(|_| panic!("Failed to parse macOS version {}", version_string))) } else { None }@@ -742,15 +733,8 @@ DebugCommand::ClearCaches(ClearCache::all()) );- let quality_settings = match t.force_subpixel_aa_where_possible {- Some(force_subpixel_aa_where_possible) => {- QualitySettings {- force_subpixel_aa_where_possible,- }- }- None => {- QualitySettings::default()- }+ let quality_settings = QualitySettings {+ force_subpixel_aa_where_possible: t.force_subpixel_aa_where_possible.unwrap_or_default(), }; self.wrench.set_quality_settings(quality_settings);@@ -786,7 +770,7 @@ // For equality tests, render each test image and store result for filename in t.test.iter() { let output = self.render_yaml(- &filename,+ filename, test_size, t.font_render_mode, t.allow_mipmaps,@@ -829,24 +813,21 @@ } }- let reference = match reference_image {- Some(image) => {- let save_all_png = false; // flip to true to update all the tests!- if save_all_png {- let img = images.last().unwrap();- save_flipped(&t.reference, img.data.clone(), img.size);- }- image- }- None => {- let output = self.render_yaml(- &t.reference,- test_size,- t.font_render_mode,- t.allow_mipmaps,- );- output.image- }+ let reference = if let Some(image) = reference_image {+ let save_all_png = false; // flip to true to update all the tests!+ if save_all_png {+ let img = images.last().unwrap();+ save_flipped(&t.reference, img.data.clone(), img.size);+ }+ image+ } else {+ let output = self.render_yaml(+ &t.reference,+ test_size,+ t.font_render_mode,+ t.allow_mipmaps,+ );+ output.image }; if t.disable_dual_source_blending {
Here's the security analysis following the requested format: 1. Vulnerability Existed: yes Unsafe Error Handling [gfx/wr/wrench/src/reftest.rs] [Lines 342-343] [Old Code] File::open(manifest).expect(&format!("couldn't open manifest: {}", manifest.display())); [Fixed Code] File::open(manifest).unwrap_or_else(|_| panic!("couldn't open manifest: {}", manifest.display())); 2. Vulnerability Existed: yes Unsafe Error Handling [gfx/wr/wrench/src/reftest.rs] [Lines 629-630] [Old Code] Some(semver::Version::parse(&version_string).expect(&format!("Failed to parse macOS version {}", version_string))) [Fixed Code] Some(semver::Version::parse(&version_string).unwrap_or_else(|_| panic!("Failed to parse macOS version {}", version_string))) 3. Vulnerability Existed: not sure Potential String Comparison Issue [gfx/wr/wrench/src/reftest.rs] [Line 385] [Old Code] if num.starts_with("*") { [Fixed Code] if num.starts_with('*') { 4. Vulnerability Existed: not sure Potential Information Leak [gfx/wr/wrench/src/reftest.rs] [Lines 207-215] [Old Code] println!( "{} | {} | {}: {}, {}: {} | {}", "REFTEST TEST-UNEXPECTED-FAIL", self, "image comparison, max difference", max_difference, "number of differing pixels", count_different, fail_text, ); [Fixed Code] println!( "REFTEST TEST-UNEXPECTED-FAIL | {} | \ image comparison, max difference: {}, number of differing pixels: {} | {}", self, max_difference, count_different, fail_text, ); Notes: 1. The first two vulnerabilities involve replacing `expect` with `unwrap_or_else` which provides better error handling and prevents potential panics from exposing sensitive information. 2. The third change improves string comparison safety by using character literal instead of string literal. 3. The fourth change modifies error output format, which might affect information disclosure, though it's unclear if this was a security fix or just code cleanup. The other changes appear to be code quality improvements rather than security fixes, such as: - Removing unused imports (base64, semver) - Simplifying match expressions - Using more idiomatic Rust patterns - Code 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/shadows/2d.shadow.alpha.2.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.2.html@@ -17,15 +17,15 @@ }); 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.shadowColor = 'rgba(0, 0, 255, 0.5)'; ctx.shadowOffsetY = 50; ctx.fillRect(0, -50, 100, 50);-_assertPixelApprox(offscreenCanvas, 50,25, 127,0,127,255, "50,25", "127,0,127,255", 2);+_assertPixelApprox(canvas, 50,25, 127,0,127,255, "50,25", "127,0,127,255", 2); t.done(); });
Based on the provided diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming and don't involve any security-sensitive operations. Here's the analysis: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.alpha.2.html] [Lines 17-25] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); ... _assertPixelApprox(offscreenCanvas, ...)] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); ... _assertPixelApprox(canvas, ...)] The changes are: 1. Renaming variable `offscreenCanvas` to `canvas` 2. Updating the variable name in the assertion call 3. No security-related changes were made to the canvas operations or shadow properties
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/context.unrecognised.badsuffix.html+++ /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/context.unrecognised.badsuffix.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'); var offscreenCanvas2 = new OffscreenCanvas(100, 50); assert_throws_js(TypeError, function() { offscreenCanvas2.getContext("2d#"); });
Analyzing the provided code diff, here's the security analysis: 1. Vulnerability Existed: no The diff shows only variable renaming and no security-related changes. The main change is renaming `offscreenCanvas` to `canvas` for better clarity. The test case for invalid context type ("2d#") remains unchanged and is not related to a security fix. Additional Details: - The change appears to be purely cosmetic/readability improvement - The test still checks for proper error handling when invalid context types are provided - No actual security vulnerability is being addressed in this diff Since there are no security-related changes, no vulnerability entries need to be created. The diff represents a minor code refactoring without security implications.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-1.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.css-color-4-hsla-1.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 = 'hsl(120 100.0% 50.0%)'; 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-sensitive modifications. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [File] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; 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'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsl(120 100.0% 50.0%)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes are: 1. Renaming variable `offscreenCanvas` to `canvas` 2. Updating the variable name in the `_assertPixel` call 3. No security-related changes were made
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/actions/pause/mapFrames.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/debugger/src/actions/pause/mapFrames.js@@ -2,24 +2,38 @@ * 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 { getFrames, getSource, getSelectedFrame } from "../../selectors";+import {+ getFrames,+ getBlackBoxRanges,+ getSource,+ getSelectedFrame,+} from "../../selectors";++import { isFrameBlackBoxed } from "../../utils/source"; import assert from "../../utils/assert"; import { isGeneratedId } from "devtools-source-map";-function isFrameBlackboxed(state, frame) {- const source = getSource(state, frame.location.sourceId);- return !!source?.isBlackBoxed;-}- function getSelectedFrameId(state, thread, frames) { let selectedFrame = getSelectedFrame(state, thread);- if (selectedFrame && !isFrameBlackboxed(state, selectedFrame)) {+ const blackboxedRanges = getBlackBoxRanges(state);++ if (+ selectedFrame &&+ !isFrameBlackBoxed(+ selectedFrame,+ getSource(state, selectedFrame.location.sourceId),+ blackboxedRanges+ )+ ) { return selectedFrame.id; }- selectedFrame = frames.find(frame => !isFrameBlackboxed(state, frame));+ selectedFrame = frames.find(frame => {+ const frameSource = getSource(state, frame.location.sourceId);+ return !isFrameBlackBoxed(frame, frameSource, blackboxedRanges);+ }); return selectedFrame?.id; }
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Logic Flaw/Inconsistent Blackboxing Check] [devtools/client/debugger/src/actions/pause/mapFrames.js] [Lines modified in diff] [Old Code] ```javascript function isFrameBlackboxed(state, frame) { const source = getSource(state, frame.location.sourceId); return !!source?.isBlackBoxed; } ``` [Fixed Code] ```javascript // Uses isFrameBlackBoxed utility function with additional blackboxedRanges check const blackboxedRanges = getBlackBoxRanges(state); !isFrameBlackBoxed( selectedFrame, getSource(state, selectedFrame.location.sourceId), blackboxedRanges ) ``` 2. Vulnerability Existed: not sure [Potential Information Leak/Incomplete Frame Filtering] [devtools/client/debugger/src/actions/pause/mapFrames.js] [Lines modified in diff] [Old Code] ```javascript selectedFrame = frames.find(frame => !isFrameBlackboxed(state, frame)); ``` [Fixed Code] ```javascript selectedFrame = frames.find(frame => { const frameSource = getSource(state, frame.location.sourceId); return !isFrameBlackBoxed(frame, frameSource, blackboxedRanges); }); ``` The changes appear to be more about improving the accuracy of blackboxed frame detection rather than fixing clear security vulnerabilities. The modifications: 1. Replace a simple source-based blackbox check with a more comprehensive check using blackbox ranges 2. Make the frame selection logic more robust by properly checking blackbox status with all relevant parameters While these changes improve the reliability of frame selection, I can't identify any specific security vulnerabilities that were fixed. The changes seem to be functional improvements rather than security patches.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/js/src/jit/x86-shared/BaseAssembler-x86-shared.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/jit/x86-shared/BaseAssembler-x86-shared.h@@ -3834,11 +3834,19 @@ mask, src1, src0, dst); }- void pblendvb_rr(XMMRegisterID other, XMMRegisterID dst) {- spew("%-11s%s, %s", "pblendvb", XMMRegName(other), XMMRegName(dst));- m_formatter.legacySSEPrefix(VEX_PD);- m_formatter.threeByteOp(OP3_PBLENDVB_VdqWdq, ESCAPE_38, (RegisterID)other,- dst);+ void vpblendvb_rr(XMMRegisterID mask, XMMRegisterID src1, XMMRegisterID src0,+ XMMRegisterID dst) {+ if (useLegacySSEEncodingForVblendv(mask, src0, dst)) {+ spew("%-11s%s, %s", "pblendvb", XMMRegName(src1), XMMRegName(dst));+ m_formatter.legacySSEPrefix(VEX_PD);+ m_formatter.threeByteOp(OP3_PBLENDVB_VdqWdq, ESCAPE_38, (RegisterID)src1,+ dst);+ return;+ }+ spew("vpblendvb %s, %s, %s, %s", XMMRegName(mask), XMMRegName(src1),+ XMMRegName(src0), XMMRegName(dst));+ m_formatter.vblendvOpVex(VEX_PD, OP3_VPBLENDVB_VdqWdq, ESCAPE_3A, mask,+ (RegisterID)src1, src0, dst); } void vpinsrb_irr(unsigned lane, RegisterID src1, XMMRegisterID src0,@@ -4269,6 +4277,72 @@ } void vpsubq_rr(XMMRegisterID src1, XMMRegisterID src0, XMMRegisterID dst) { twoByteOpSimd("vpsubq", VEX_PD, OP2_PSUBQ_VdqWdq, src1, src0, dst);+ }++ void vbroadcastb_rr(XMMRegisterID src, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastb", VEX_PD, OP3_VBROADCASTB_VxWx, ESCAPE_38, src,+ invalid_xmm, dst);+ }+ void vbroadcastb_mr(int32_t offset, RegisterID base, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastb", VEX_PD, OP3_VBROADCASTB_VxWx, ESCAPE_38,+ offset, base, invalid_xmm, dst);+ }+ void vbroadcastb_mr(int32_t offset, RegisterID base, RegisterID index,+ int32_t scale, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastb", VEX_PD, OP3_VBROADCASTB_VxWx, ESCAPE_38,+ offset, base, index, scale, invalid_xmm, dst);+ }+ void vbroadcastw_rr(XMMRegisterID src, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastw", VEX_PD, OP3_VBROADCASTW_VxWx, ESCAPE_38, src,+ invalid_xmm, dst);+ }+ void vbroadcastw_mr(int32_t offset, RegisterID base, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastw", VEX_PD, OP3_VBROADCASTW_VxWx, ESCAPE_38,+ offset, base, invalid_xmm, dst);+ }+ void vbroadcastw_mr(int32_t offset, RegisterID base, RegisterID index,+ int32_t scale, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastw", VEX_PD, OP3_VBROADCASTW_VxWx, ESCAPE_38,+ offset, base, index, scale, invalid_xmm, dst);+ }+ void vbroadcastd_rr(XMMRegisterID src, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastd", VEX_PD, OP3_VBROADCASTD_VxWx, ESCAPE_38, src,+ invalid_xmm, dst);+ }+ void vbroadcastd_mr(int32_t offset, RegisterID base, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastd", VEX_PD, OP3_VBROADCASTD_VxWx, ESCAPE_38,+ offset, base, invalid_xmm, dst);+ }+ void vbroadcastd_mr(int32_t offset, RegisterID base, RegisterID index,+ int32_t scale, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastd", VEX_PD, OP3_VBROADCASTD_VxWx, ESCAPE_38,+ offset, base, index, scale, invalid_xmm, dst);+ }+ void vbroadcastq_rr(XMMRegisterID src, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastq", VEX_PD, OP3_VBROADCASTQ_VxWx, ESCAPE_38, src,+ invalid_xmm, dst);+ }+ void vbroadcastq_mr(int32_t offset, RegisterID base, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastq", VEX_PD, OP3_VBROADCASTQ_VxWx, ESCAPE_38,+ offset, base, invalid_xmm, dst);+ }+ void vbroadcastq_mr(int32_t offset, RegisterID base, RegisterID index,+ int32_t scale, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastq", VEX_PD, OP3_VBROADCASTQ_VxWx, ESCAPE_38,+ offset, base, index, scale, invalid_xmm, dst);+ }+ void vbroadcastss_rr(XMMRegisterID src, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastss", VEX_PD, OP3_VBROADCASTSS_VxWd, ESCAPE_38,+ src, invalid_xmm, dst);+ }+ void vbroadcastss_mr(int32_t offset, RegisterID base, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastss", VEX_PD, OP3_VBROADCASTSS_VxWd, ESCAPE_38,+ offset, base, invalid_xmm, dst);+ }+ void vbroadcastss_mr(int32_t offset, RegisterID base, RegisterID index,+ int32_t scale, XMMRegisterID dst) {+ threeByteOpSimd("vbroadcastss", VEX_PD, OP3_VBROADCASTSS_VxWd, ESCAPE_38,+ offset, base, index, scale, invalid_xmm, dst); } // BMI instructions:@@ -5634,6 +5708,27 @@ } threeOpVex(ty, r, x, b, m, w, v, l, opcode); memoryModRM(address, reg);+ }++ void threeByteRipOpVex(VexOperandType ty, ThreeByteOpcodeID opcode,+ ThreeByteEscape escape, int ripOffset,+ XMMRegisterID src0, int reg) {+ int r = (reg >> 3), x = 0, b = 0;+ int m = 0;+ switch (escape) {+ case ESCAPE_38:+ m = 2;+ break;+ case ESCAPE_3A:+ m = 3;+ break;+ default:+ MOZ_CRASH("unexpected escape");+ }+ int w = 0, v = src0, l = 0;+ threeOpVex(ty, r, x, b, m, w, v, l, opcode);+ putModRm(ModRmMemoryNoDisp, noBase, reg);+ m_buffer.putIntUnchecked(ripOffset); } void vblendvOpVex(VexOperandType ty, ThreeByteOpcodeID opcode,
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Instruction Set Encoding Issue] [js/src/jit/x86-shared/BaseAssembler-x86-shared.h] [Lines 3834-3846] [Old Code] void pblendvb_rr(XMMRegisterID other, XMMRegisterID dst) { spew("%-11s%s, %s", "pblendvb", XMMRegName(other), XMMRegName(dst)); m_formatter.legacySSEPrefix(VEX_PD); m_formatter.threeByteOp(OP3_PBLENDVB_VdqWdq, ESCAPE_38, (RegisterID)other, dst); } [Fixed Code] void vpblendvb_rr(XMMRegisterID mask, XMMRegisterID src1, XMMRegisterID src0, XMMRegisterID dst) { if (useLegacySSEEncodingForVblendv(mask, src0, dst)) { spew("%-11s%s, %s", "pblendvb", XMMRegName(src1), XMMRegName(dst)); m_formatter.legacySSEPrefix(VEX_PD); m_formatter.threeByteOp(OP3_PBLENDVB_VdqWdq, ESCAPE_38, (RegisterID)src1, dst); return; } spew("vpblendvb %s, %s, %s, %s", XMMRegName(mask), XMMRegName(src1), XMMRegName(src0), XMMRegName(dst)); m_formatter.vblendvOpVex(VEX_PD, OP3_VPBLENDVB_VdqWdq, ESCAPE_3A, mask, (RegisterID)src1, src0, dst); } 2. Vulnerability Existed: not sure [Potential Memory Access Issue] [js/src/jit/x86-shared/BaseAssembler-x86-shared.h] [Lines 5634-5728] [Old Code] (No previous implementation of threeByteRipOpVex existed) [Fixed Code] void threeByteRipOpVex(VexOperandType ty, ThreeByteOpcodeID opcode, ThreeByteEscape escape, int ripOffset, XMMRegisterID src0, int reg) { int r = (reg >> 3), x = 0, b = 0; int m = 0; switch (escape) { case ESCAPE_38: m = 2; break; case ESCAPE_3A: m = 3; break; default: MOZ_CRASH("unexpected escape"); } int w = 0, v = src0, l = 0; threeOpVex(ty, r, x, b, m, w, v, l, opcode); putModRm(ModRmMemoryNoDisp, noBase, reg); m_buffer.putIntUnchecked(ripOffset); } Additional notes: 1. The first change appears to modify the implementation of the pblendvb instruction to handle both legacy SSE and newer AVX encodings, which could potentially relate to security if the previous implementation had incorrect instruction encoding that could lead to undefined behavior or side-channel vulnerabilities. 2. The second change adds support for RIP-relative addressing with VEX-encoded instructions, which could be security-related if the previous lack of this functionality could lead to incorrect memory accesses or potential memory safety issues. 3. The diff also adds several new broadcast instructions (vbroadcastb, vbroadcastw, vbroadcastd, vbroadcastq, vbroadcastss) which appear to be new functionality rather than security fixes. Without more context about the specific security issues being addressed, it's difficult to definitively identify the vulnerabilities, but these changes appear to be related to proper instruction encoding and memory addressing which could have security implications.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.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.fillStyle.parse.invalid.name-4.worker.js@@ -13,14 +13,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 = '#0f0'; try { ctx.fillStyle = '"red"'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does 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(); });
Analyzing the provided code diff, I don't see any security-related fixes. The changes appear to be purely cosmetic/refactoring changes where a variable name was changed from `offscreenCanvas` to `canvas` for consistency or readability. The functionality remains the same. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-4.worker.js] [Lines 13-21] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#0f0'; try { ctx.fillStyle = '"red"'; } catch (e) { } 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'); ctx.fillStyle = '#0f0'; try { ctx.fillStyle = '"red"'; } catch (e) { } ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes don't address any security vulnerability but rather improve code consistency by using a shorter variable name. The test logic and assertions remain 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/media/MediaStreamError.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/media/MediaStreamError.h@@ -71,7 +71,7 @@ NS_DECL_THREADSAFE_ISUPPORTS- void Reject(dom::Promise* aPromise);+ void Reject(dom::Promise* aPromise) const; private: ~MediaMgrError() = default;
Let me analyze the code diff for security fixes: Vulnerability Existed: not sure [Potential Thread Safety Issue] [dom/media/MediaStreamError.h] [Lines 71] [Old Code] void Reject(dom::Promise* aPromise); [Fixed Code] void Reject(dom::Promise* aPromise) const; Additional Details: The change adds a 'const' qualifier to the Reject method. While this isn't directly fixing a known vulnerability, it could potentially address thread safety concerns by making it clear the method doesn't modify the object's state. This could prevent race conditions in multi-threaded scenarios where the method is called. However, without more context about how this method is used, I can't be certain if this was fixing an actual security issue 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.