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/netwerk/test/unit/test_httpssvc_retry_with_ech.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/netwerk/test/unit/test_httpssvc_retry_with_ech.js@@ -26,6 +26,7 @@ Services.prefs.setBoolPref("network.dns.use_https_rr_as_altsvc", true); Services.prefs.setBoolPref("network.dns.echconfig.enabled", true); Services.prefs.setBoolPref("network.dns.http3_echconfig.enabled", true);+ Services.prefs.setIntPref("network.http.speculative-parallel-limit", 6); add_tls_server_setup( "EncryptedClientHelloServer",@@ -52,6 +53,7 @@ Services.prefs.clearUserPref("network.dns.echconfig.enabled"); Services.prefs.clearUserPref("network.dns.http3_echconfig.enabled"); Services.prefs.clearUserPref("network.dns.echconfig.fallback_to_origin");+ Services.prefs.clearUserPref("network.http.speculative-parallel-limit"); if (trrServer) { await trrServer.stop(); }@@ -83,11 +85,46 @@ }); }+function ActivityObserver() {}++ActivityObserver.prototype = {+ activites: [],+ observeConnectionActivity(+ aHost,+ aPort,+ aSSL,+ aHasECH,+ aIsHttp3,+ aActivityType,+ aActivitySubtype,+ aTimestamp,+ aExtraStringData+ ) {+ dump(+ "*** Connection Activity 0x" ++ aActivityType.toString(16) ++ " 0x" ++ aActivitySubtype.toString(16) ++ " " ++ aExtraStringData ++ "\n"+ );+ this.activites.push({ host: aHost, subType: aActivitySubtype });+ },+};+ add_task(async function testConnectWithECH() { const ECH_CONFIG_FIXED =- "AEv+CgBHTQAgACCKB1Y5SfrGIyk27W82xPpzWTDs3q72c04xSurDWlb9CgAEAAEAAwBkABZlY2gtcHVibGljLmV4YW1wbGUuY29tAAA=";+ "AEn+DQBFTQAgACCKB1Y5SfrGIyk27W82xPpzWTDs3q72c04xSurDWlb9CgAEAAEAA2QWZWNoLXB1YmxpYy5leGFtcGxlLmNvbQAA"; trrServer = new TRRServer(); await trrServer.start();++ let observerService = Cc[+ "@mozilla.org/network/http-activity-distributor;1"+ ].getService(Ci.nsIHttpActivityDistributor);+ let observer = new ActivityObserver();+ observerService.addObserver(observer);+ observerService.observeConnection = true; Services.prefs.setIntPref("network.trr.mode", 3); Services.prefs.setCharPref(@@ -144,13 +181,39 @@ Assert.ok(securityInfo.isAcceptedEch, "This host should have accepted ECH"); await trrServer.stop();+ observerService.removeObserver(observer);+ observerService.observeConnection = false;++ let filtered = observer.activites.filter(+ activity => activity.host === "ech-private.example.com"+ );+ Assert.equal(filtered.length, 3);+ Assert.equal(+ filtered[0].subType,+ Ci.nsIHttpActivityObserver+ .ACTIVITY_SUBTYPE_SPECULATIVE_DNSANDSOCKET_CREATED,+ "Should have only one speculative DnsAndSock created"+ );+ Assert.equal(+ filtered[1].subType,+ Ci.nsIHttpActivityObserver.ACTIVITY_SUBTYPE_ECH_SET,+ "Should have echConfig"+ );+ Assert.equal(+ filtered[2].subType,+ Ci.nsIHttpActivityObserver.ACTIVITY_SUBTYPE_CONNECTION_CREATED,+ "Should have one connection created"+ ); }); add_task(async function testEchRetry() {+ Services.obs.notifyObservers(null, "net:cancel-all-connections");+ await new Promise(resolve => setTimeout(resolve, 1000));+ dns.clearCache(true); const ECH_CONFIG_TRUSTED_RETRY =- "AEv+CgBHTQAgACCKB1Y5SfrGIyk27W82xPpzWTDs3q72c04xSurDWlb9CgAEAAEAAQBkABZlY2gtcHVibGljLmV4YW1wbGUuY29tAAA=";+ "AEn+DQBFTQAgACCKB1Y5SfrGIyk27W82xPpzWTDs3q72c04xSurDWlb9CgAEAAMAA2QWZWNoLXB1YmxpYy5leGFtcGxlLmNvbQAA"; trrServer = new TRRServer(); await trrServer.start();
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [No specific vulnerability name] [netwerk/test/unit/test_httpssvc_retry_with_ech.js] [Lines 26+] [Old Code: Missing speculative parallel limit setting] [Fixed Code: Added Services.prefs.setIntPref("network.http.speculative-parallel-limit", 6)] Additional Details: This change adds a configuration for speculative connection limits, which could help prevent resource exhaustion attacks, but it's not clear if this was fixing a specific vulnerability. 2. Vulnerability Existed: not sure [No specific vulnerability name] [netwerk/test/unit/test_httpssvc_retry_with_ech.js] [Lines 52+] [Old Code: Missing cleanup of speculative parallel limit preference] [Fixed Code: Added Services.prefs.clearUserPref("network.http.speculative-parallel-limit")] Additional Details: This ensures proper cleanup of test preferences, improving test isolation but not clearly fixing a security vulnerability. 3. Vulnerability Existed: not sure [No specific vulnerability name] [netwerk/test/unit/test_httpssvc_retry_with_ech.js] [Lines 83+] [Old Code: Missing connection activity monitoring] [Fixed Code: Added ActivityObserver and connection monitoring code] Additional Details: This adds better testing instrumentation for ECH (Encrypted Client Hello) connections, but doesn't appear to fix a specific vulnerability. 4. Vulnerability Existed: not sure [No specific vulnerability name] [netwerk/test/unit/test_httpssvc_retry_with_ech.js] [Lines 144+] [Old Code: Missing connection cleanup in test] [Fixed Code: Added connection cleanup with Services.obs.notifyObservers(null, "net:cancel-all-connections")] Additional Details: This improves test cleanup but doesn't clearly address a security vulnerability. 5. Vulnerability Existed: not sure [No specific vulnerability name] [netwerk/test/unit/test_httpssvc_retry_with_ech.js] [Lines 26,52,83+] [Old Code: Old ECH_CONFIG values] [Fixed Code: New ECH_CONFIG values] Additional Details: The ECH_CONFIG values have been updated, which might relate to security improvements in ECH handling, but the exact security impact isn't clear from the diff. Note: The changes appear to be primarily test improvements and better handling of ECH (Encrypted Client Hello) functionality, but without more context about the specific security issues being addressed, it's difficult to identify concrete vulnerabilities that were fixed. The changes do show improved test coverage and cleanup for security-related 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/third_party/rust/thiserror/tests/test_backtrace.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/thiserror/tests/test_backtrace.rs@@ -7,8 +7,15 @@ pub struct Inner; #[cfg(thiserror_nightly_testing)]+#[derive(Error, Debug)]+#[error("...")]+pub struct InnerBacktrace {+ backtrace: std::backtrace::Backtrace,+}++#[cfg(thiserror_nightly_testing)] pub mod structs {- use super::Inner;+ use super::{Inner, InnerBacktrace}; use std::backtrace::Backtrace; use std::error::Error; use std::sync::Arc;@@ -52,6 +59,14 @@ #[derive(Error, Debug)] #[error("...")]+ pub struct CombinedBacktraceFrom {+ #[from]+ #[backtrace]+ source: InnerBacktrace,+ }++ #[derive(Error, Debug)]+ #[error("...")] pub struct OptBacktraceFrom { #[from] source: Inner,@@ -93,6 +108,11 @@ let error = BacktraceFrom::from(Inner); assert!(error.backtrace().is_some());+ let error = CombinedBacktraceFrom::from(InnerBacktrace {+ backtrace: Backtrace::capture(),+ });+ assert!(error.backtrace().is_some());+ let error = OptBacktraceFrom::from(Inner); assert!(error.backtrace().is_some());@@ -103,7 +123,7 @@ #[cfg(thiserror_nightly_testing)] pub mod enums {- use super::Inner;+ use super::{Inner, InnerBacktrace}; use std::backtrace::Backtrace; use std::error::Error; use std::sync::Arc;@@ -154,6 +174,16 @@ } #[derive(Error, Debug)]+ pub enum CombinedBacktraceFrom {+ #[error("...")]+ Test {+ #[from]+ #[backtrace]+ source: InnerBacktrace,+ },+ }++ #[derive(Error, Debug)] pub enum OptBacktraceFrom { #[error("...")] Test {@@ -200,6 +230,11 @@ let error = BacktraceFrom::from(Inner); assert!(error.backtrace().is_some());+ let error = CombinedBacktraceFrom::from(InnerBacktrace {+ backtrace: Backtrace::capture(),+ });+ assert!(error.backtrace().is_some());+ let error = OptBacktraceFrom::from(Inner); assert!(error.backtrace().is_some());
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be adding new functionality (backtrace handling) rather than fixing security issues. Here's the analysis: 1. Vulnerability Existed: no No security vulnerability found [File] third_party/rust/thiserror/tests/test_backtrace.rs [Lines] Various [Old Code] Missing CombinedBacktraceFrom struct and enum implementations [Fixed Code] Added CombinedBacktraceFrom implementations for both struct and enum cases The changes primarily consist of: 1. Adding a new InnerBacktrace struct 2. Adding CombinedBacktraceFrom implementations for both struct and enum cases 3. Adding corresponding test cases These appear to be feature additions rather than security fixes. The code is test code for error handling functionality in the thiserror crate, specifically around backtrace capture and propagation. No security-sensitive operations (like memory management, input validation, or access control) are being modified. If there were any security implications, they would likely be related to backtrace information exposure, but since this is test code and backtraces are a debugging feature, this doesn't appear to be a security concern.
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/darling_macro/.cargo-checksum.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/darling_macro/.cargo-checksum.json@@ -1 +1 @@-{"files":{"Cargo.toml":"cba9ed66876cf99022cd67c7e0aa12ac2b544d92aa83bdfcbe26395c769877b9","LICENSE":"8ea93490d74a5a1b1af3ff71d786271b3f1e5f0bea79ac16e02ec533cef040d6","src/lib.rs":"88141a58dc13b9001a83ca7559b6213ab44641510b6d642a3280c244ad735cec"},"package":"d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"}+{"files":{"Cargo.toml":"d994a96db9e883fc291c9ba002c6097c8455676df562e8a506127ce98f0b45a6","LICENSE":"8ea93490d74a5a1b1af3ff71d786271b3f1e5f0bea79ac16e02ec533cef040d6","src/lib.rs":"1dbd1ed31a7db5ff7995bd1dd494e962645e6ff62b0f88807fe1b6025523f187"},"package":"72c41b3b7352feb3211a0d743dc5700a4e3b60f51bd2b368892d1e0f9a95f44b"}=========testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html========--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.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 = 'rgba(0, 255, 255, 0.5)';@@ -36,8 +36,8 @@ promise.then(function(response) { createImageBitmap(response).then(bitmap => { ctx.drawImage(bitmap, 40, 40, 10, 10, 40, 50, 10, 10);- _assertPixelApprox(offscreenCanvas, 15,15, 0,0,0,0, "15,15", "0,0,0,0", 5);- _assertPixelApprox(offscreenCanvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0", 5);+ _assertPixelApprox(canvas, 15,15, 0,0,0,0, "15,15", "0,0,0,0", 5);+ _assertPixelApprox(canvas, 50,25, 0,0,0,0, "50,25", "0,0,0,0", 5); }, t_fail); }).then(t_pass, t_fail);
I'll analyze the provided code diff for security fixes following the specified format. 1. First diff (darling_macro/.cargo-checksum.json): Vulnerability Existed: not sure [No specific vulnerability name] [third_party/rust/darling_macro/.cargo-checksum.json] [Lines 1] [Old checksums for files] [New checksums for files] Additional Details: This appears to be a routine update of checksums for Rust package files. While checksum changes could indicate a security update, there's no direct evidence of a vulnerability being fixed here. 2. Second diff (canvas test file): Vulnerability Existed: no [No vulnerability] [testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.uncovered.image.destination-in.html] [Lines 17-36] [Old code using 'offscreenCanvas' variable name] [New code using 'canvas' variable name] Additional Details: This change appears to be purely a variable renaming (from 'offscreenCanvas' to 'canvas') for consistency or readability. There's no indication of any security-related fix in this change. No actual security vulnerabilities were identified in these diffs. The changes appear to be either routine maintenance or cosmetic 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/xpcom/ds/nsVariant.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/xpcom/ds/nsVariant.cpp@@ -14,6 +14,7 @@ #include "nsMemory.h" #include "nsString.h" #include "nsCRTGlue.h"+#include "mozilla/FloatingPoint.h" #include "mozilla/IntegerPrintfMacros.h" #include "mozilla/Printf.h"@@ -435,8 +436,9 @@ #define CASE__NUMERIC_CONVERSION_INT32_MIN_MAX(Ctype_, min_, max_) \ case nsIDataType::VTYPE_INT32: { \ int32_t value = tempData.u.mInt32Value; \- if (value < min_ || value > max_) \+ if (value < (min_) || value > (max_)) { \ return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA; \+ } \ *aResult = (Ctype_)value; \ return rv; \ }@@ -446,12 +448,12 @@ *aResult = (Ctype_)tempData.u.mUint32Value; \ return rv;-#define CASE__NUMERIC_CONVERSION_UINT32_MAX(Ctype_, max_) \- case nsIDataType::VTYPE_UINT32: { \- uint32_t value = tempData.u.mUint32Value; \- if (value > max_) return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA; \- *aResult = (Ctype_)value; \- return rv; \+#define CASE__NUMERIC_CONVERSION_UINT32_MAX(Ctype_, max_) \+ case nsIDataType::VTYPE_UINT32: { \+ uint32_t value = tempData.u.mUint32Value; \+ if (value > (max_)) return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA; \+ *aResult = (Ctype_)value; \+ return rv; \ } #define CASE__NUMERIC_CONVERSION_DOUBLE_JUST_CAST(Ctype_) \@@ -459,20 +461,12 @@ *aResult = (Ctype_)tempData.u.mDoubleValue; \ return rv;-#define CASE__NUMERIC_CONVERSION_DOUBLE_MIN_MAX(Ctype_, min_, max_) \- case nsIDataType::VTYPE_DOUBLE: { \- double value = tempData.u.mDoubleValue; \- if (value < min_ || value > max_) \- return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA; \- *aResult = (Ctype_)value; \- return rv; \- }- #define CASE__NUMERIC_CONVERSION_DOUBLE_MIN_MAX_INT(Ctype_, min_, max_) \ case nsIDataType::VTYPE_DOUBLE: { \ double value = tempData.u.mDoubleValue; \- if (value < min_ || value > max_) \+ if (mozilla::IsNaN(value) || value < (min_) || value > (max_)) { \ return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA; \+ } \ *aResult = (Ctype_)value; \ return (0.0 == fmod(value, 1.0)) ? rv \ : NS_SUCCESS_LOSS_OF_INSIGNIFICANT_DATA; \@@ -518,7 +512,7 @@ CASE__NUMERIC_CONVERSION_DOUBLE_MIN_MAX_INT(uint32_t, 0, 4294967295U) NUMERIC_CONVERSION_METHOD_END-// XXX toFloat convertions need to be fixed!+// XXX toFloat conversions need to be fixed! NUMERIC_CONVERSION_METHOD_BEGIN(VTYPE_FLOAT, float, Float) CASE__NUMERIC_CONVERSION_INT32_JUST_CAST(float) CASE__NUMERIC_CONVERSION_UINT32_JUST_CAST(float)@@ -531,19 +525,12 @@ CASE__NUMERIC_CONVERSION_DOUBLE_JUST_CAST(double) NUMERIC_CONVERSION_METHOD_END-// XXX toChar convertions need to be fixed!-NUMERIC_CONVERSION_METHOD_BEGIN(VTYPE_CHAR, char, Char)-CASE__NUMERIC_CONVERSION_INT32_JUST_CAST(char)-CASE__NUMERIC_CONVERSION_UINT32_JUST_CAST(char)-CASE__NUMERIC_CONVERSION_DOUBLE_JUST_CAST(char)-NUMERIC_CONVERSION_METHOD_END--// XXX toWChar convertions need to be fixed!-NUMERIC_CONVERSION_METHOD_BEGIN(VTYPE_WCHAR, char16_t, WChar)-CASE__NUMERIC_CONVERSION_INT32_JUST_CAST(char16_t)-CASE__NUMERIC_CONVERSION_UINT32_JUST_CAST(char16_t)-CASE__NUMERIC_CONVERSION_DOUBLE_JUST_CAST(char16_t)-NUMERIC_CONVERSION_METHOD_END+// XXX toChar conversions need to be fixed!+NUMERIC_CONVERSION_METHOD_NORMAL(VTYPE_CHAR, char, Char, CHAR_MIN, CHAR_MAX)++// XXX toWChar conversions need to be fixed!+NUMERIC_CONVERSION_METHOD_NORMAL(VTYPE_WCHAR, char16_t, WChar, 0,+ std::numeric_limits<char16_t>::max()) #undef NUMERIC_CONVERSION_METHOD_BEGIN #undef CASE__NUMERIC_CONVERSION_INT32_JUST_CAST@@ -570,7 +557,12 @@ if (NS_FAILED(rv)) { return rv; }- *aResult = 0.0 != val;+ // NaN is falsy in JS, so we might as well make it false here.+ if (mozilla::IsNaN(val)) {+ *aResult = false;+ } else {+ *aResult = 0.0 != val;+ } return rv; }@@ -592,10 +584,15 @@ case nsIDataType::VTYPE_UINT32: *aResult = tempData.u.mUint32Value; return rv;- case nsIDataType::VTYPE_DOUBLE:+ case nsIDataType::VTYPE_DOUBLE: {+ double value = tempData.u.mDoubleValue;+ if (mozilla::IsNaN(value)) {+ return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA;+ } // XXX should check for data loss here!- *aResult = tempData.u.mDoubleValue;+ *aResult = value; return rv;+ } default: NS_ERROR("bad type returned from ToManageableNumber"); return NS_ERROR_CANNOT_CONVERT_DATA;
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes Integer Overflow/Underflow Vulnerability [xpcom/ds/nsVariant.cpp] [Lines 435-448] Old Code: ```c if (value < min_ || value > max_) ``` Fixed Code: ```c if (value < (min_) || value > (max_)) { ``` The fix adds proper parentheses around min_ and max_ to ensure correct evaluation order and adds braces for better code structure. 2. Vulnerability Existed: yes NaN Handling Vulnerability [xpcom/ds/nsVariant.cpp] [Lines 461-470] Old Code: ```c if (value < min_ || value > max_) ``` Fixed Code: ```c if (mozilla::IsNaN(value) || value < (min_) || value > (max_)) { ``` The fix adds explicit NaN checking for double values, preventing potential security issues from unhandled NaN cases. 3. Vulnerability Existed: yes Type Conversion Vulnerability [xpcom/ds/nsVariant.cpp] [Lines 525-532] Old Code: ```c NUMERIC_CONVERSION_METHOD_BEGIN(VTYPE_CHAR, char, Char) CASE__NUMERIC_CONVERSION_INT32_JUST_CAST(char) CASE__NUMERIC_CONVERSION_UINT32_JUST_CAST(char) CASE__NUMERIC_CONVERSION_DOUBLE_JUST_CAST(char) NUMERIC_CONVERSION_METHOD_END ``` Fixed Code: ```c NUMERIC_CONVERSION_METHOD_NORMAL(VTYPE_CHAR, char, Char, CHAR_MIN, CHAR_MAX) ``` The fix replaces unsafe direct casting with a bounded conversion method that includes proper range checking. 4. Vulnerability Existed: yes Boolean Conversion Vulnerability [xpcom/ds/nsVariant.cpp] [Lines 557-562] Old Code: ```c *aResult = 0.0 != val; ``` Fixed Code: ```c if (mozilla::IsNaN(val)) { *aResult = false; } else { *aResult = 0.0 != val; } ``` The fix adds proper NaN handling for boolean conversions, matching JavaScript's behavior where NaN is falsy. 5. Vulnerability Existed: yes Double to Uint32 Conversion Vulnerability [xpcom/ds/nsVariant.cpp] [Lines 584-592] Old Code: ```c *aResult = tempData.u.mDoubleValue; ``` Fixed Code: ```c double value = tempData.u.mDoubleValue; if (mozilla::IsNaN(value)) { return NS_ERROR_LOSS_OF_SIGNIFICANT_DATA; } *aResult = value; ``` The fix adds NaN checking for double to uint32 conversions, preventing potential undefined behavior from NaN conversions.
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.transform.identity.html+++ /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.transform.identity.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.transform(1,0, 0,1, 0,0); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely cosmetic/refactoring changes (variable renaming) rather than security-related fixes. 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'); ... _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes only involve: 1. Renaming the variable `offscreenCanvas` to `canvas` 2. Updating the references to this variable in the subsequent code 3. No changes to the actual security-sensitive operations or logic No CVE or known vulnerability patterns are being 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/shadows/2d.shadow.attributes.shadowOffset.initial.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.attributes.shadowOffset.initial.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'); _assertSame(ctx.shadowOffsetX, 0, "ctx.shadowOffsetX", "0"); _assertSame(ctx.shadowOffsetY, 0, "ctx.shadowOffsetY", "0");
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.attributes.shadowOffset.initial.html] [Lines 17-18] Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Details: - The change appears to be a simple variable renaming from 'offscreenCanvas' to 'canvas' - No security implications are visible in this change - The modification seems to be for code consistency or readability rather than security fixes - The test assertions remain unchanged, verifying the same shadow offset 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/devtools/client/themes/rules.css+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/themes/rules.css@@ -146,10 +146,6 @@ #ruleview-container .accordion ._content { padding: 0;-}--.ruleview-code {- direction: ltr; } .ruleview-property:not(:hover) > .ruleview-enableproperty {@@ -267,6 +263,7 @@ .ruleview-rule { border-bottom: 1px solid var(--theme-splitter-color); padding: 2px 4px;+ direction: ltr; } #ruleview-container-focusable > .ruleview-rule:last-child {@@ -682,7 +679,8 @@ .ruleview-highlight > .ruleview-namecontainer, .ruleview-highlight > .ruleview-propertyvaluecontainer, .ruleview-highlight > .ruleview-rule-source-label,-.ruleview-highlight > .ruleview-selector {+.ruleview-highlight > .ruleview-selector,+.ruleview-rule-ancestor-data li.ruleview-highlight { background-color: var(--rule-highlight-background-color); }@@ -694,6 +692,24 @@ .ruleview-namecontainer:hover > .ruleview-propertyname, .ruleview-propertyvaluecontainer:hover > .ruleview-propertyvalue { border-bottom-color: hsl(0,0%,50%);+}++/* @media and @layer rule info element */+ul.ruleview-rule-ancestor-data {+ max-width: 100%;+ display: inline-block;+ list-style: none;+ padding: 0;+ margin: 0;+}++.ruleview-rule-ancestor-data li {+ overflow: hidden;+ text-overflow: ellipsis;+ white-space: nowrap;+ /* When there's a search and this element is highlighted, this prevents the background+ color to be applied to the whole width of the parent ul block */+ max-width: max-content; } .ruleview-selectorcontainer {
Analysis of the provided CSS diff for security fixes: 1. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/themes/rules.css [Lines 146-148] Old Code: .ruleview-code { direction: ltr; } Fixed Code: (removed) 2. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/themes/rules.css [Lines 267-269] Old Code: .ruleview-rule { border-bottom: 1px solid var(--theme-splitter-color); padding: 2px 4px; } Fixed Code: .ruleview-rule { border-bottom: 1px solid var(--theme-splitter-color); padding: 2px 4px; direction: ltr; } 3. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/themes/rules.css [Lines 682-684] Old Code: .ruleview-highlight > .ruleview-selector { Fixed Code: .ruleview-highlight > .ruleview-selector, .ruleview-rule-ancestor-data li.ruleview-highlight { 4. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/themes/rules.css [Lines 694-712] Old Code: (none) Fixed Code: /* @media and @layer rule info element */ ul.ruleview-rule-ancestor-data { max-width: 100%; display: inline-block; list-style: none; padding: 0; margin: 0; } .ruleview-rule-ancestor-data li { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; /* When there's a search and this element is highlighted, this prevents the background color to be applied to the whole width of the parent ul block */ max-width: max-content; } The changes appear to be primarily styling and layout improvements rather than security fixes. The modifications include: 1. Moving the `direction: ltr` property from `.ruleview-code` to `.ruleview-rule` 2. Adding highlight support for ancestor data elements 3. Adding new styling rules for ancestor data elements 4. General CSS property adjustments No security vulnerabilities were identified in these changes.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/browser/components/newtab/content-src/aboutwelcome/components/ReturnToAMO.jsx+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/components/newtab/content-src/aboutwelcome/components/ReturnToAMO.jsx@@ -7,91 +7,93 @@ AboutWelcomeUtils, DEFAULT_RTAMO_CONTENT, } from "../../lib/aboutwelcome-utils";-import { Localized } from "./MSLocalized";+import { MultiStageProtonScreen } from "./MultiStageProtonScreen";+import { BASE_PARAMS } from "../../asrouter/templates/FirstRun/addUtmParams"; export class ReturnToAMO extends React.PureComponent { constructor(props) { super(props);- this.onClickAddExtension = this.onClickAddExtension.bind(this);- this.handleStartBtnClick = this.handleStartBtnClick.bind(this);+ this.fetchFlowParams = this.fetchFlowParams.bind(this);+ this.handleAction = this.handleAction.bind(this); }- onClickAddExtension() {- const { content, message_id, url } = this.props;- if (!content?.primary_button?.action?.data) {- return;+ async fetchFlowParams() {+ if (this.props.metricsFlowUri) {+ this.setState({+ flowParams: await AboutWelcomeUtils.fetchFlowParams(+ this.props.metricsFlowUri+ ),+ });+ }+ }++ componentDidUpdate() {+ this.fetchFlowParams();+ }++ handleAction(event) {+ const { content, message_id, url, utm_term } = this.props;+ let { action, source_id } = content[event.currentTarget.value];+ let { type, data } = action;++ if (type === "INSTALL_ADDON_FROM_URL") {+ if (!data) {+ return;+ }+ // Set add-on url in action.data.url property from JSON+ data = { ...data, url };+ } else if (type === "SHOW_FIREFOX_ACCOUNTS") {+ let params = {+ ...BASE_PARAMS,+ utm_term: `aboutwelcome-${utm_term}-screen`,+ };+ if (action.addFlowParams && this.state.flowParams) {+ params = {+ ...params,+ ...this.state.flowParams,+ };+ }+ data = { ...data, extraParams: params }; }- // Set add-on url in action.data.url property from JSON- content.primary_button.action.data.url = url;- AboutWelcomeUtils.handleUserAction(content.primary_button.action);- const ping = {- event: "INSTALL",- event_context: {- source: "ADD_EXTENSION_BUTTON",- page: "about:welcome",- },- message_id,- };- window.AWSendEventTelemetry(ping);- }-- handleStartBtnClick() {- const { content, message_id } = this.props;- AboutWelcomeUtils.handleUserAction(content.startButton.action);- const ping = {- event: "CLICK_BUTTON",- event_context: {- source: content.startButton.message_id,- page: "about:welcome",- },- message_id,- };- window.AWSendEventTelemetry(ping);+ AboutWelcomeUtils.handleUserAction({ type, data });+ AboutWelcomeUtils.sendActionTelemetry(message_id, source_id); } render() {- const { content } = this.props;+ const { content, type } = this.props;+ if (!content) { return null; }++ if (content?.primary_button.label) {+ content.primary_button.label.string_id = type.includes("theme")+ ? "return-to-amo-add-theme-label"+ : "return-to-amo-add-extension-label";+ }+ // For experiments, when needed below rendered UI allows settings hard coded strings // directly inside JSON except for ReturnToAMOText which picks add-on name and icon from fluent string return (- <div className="outer-wrapper onboardingContainer rtamo">- <main className="screen">- <div className="brand-logo" />- <div className="welcome-text">- <Localized text={content.subtitle}>- <h1 />- </Localized>- <Localized text={content.text}>- <h2- data-l10n-args={- this.props.name- ? JSON.stringify({ "addon-name": this.props.name })- : null- }- >- <img- data-l10n-name="icon"- src={this.props.iconURL}- role="presentation"- alt=""- />- </h2>- </Localized>- <Localized text={content.primary_button.label}>- <button onClick={this.onClickAddExtension} className="primary" />- </Localized>- <Localized text={content.startButton.label}>- <button- onClick={this.handleStartBtnClick}- className="secondary"- />- </Localized>- </div>- </main>+ <div+ className={"outer-wrapper onboardingContainer proton"}+ style={{+ backgroundImage: `url(${content.background_url})`,+ }}+ >+ <MultiStageProtonScreen+ content={content}+ isRtamo={true}+ id={this.props.messageId}+ order={this.props.order}+ totalNumberOfScreens={this.props.totalNumberOfScreens}+ autoClose={this.props.autoClose}+ iconURL={this.props.iconURL}+ addonName={this.props.name}+ handleAction={this.handleAction}+ addExtension={this.onClickAddExtension}+ /> </div> ); }
I'll analyze the code diff for security vulnerabilities following the specified format. 1. Vulnerability Existed: yes Cross-Site Scripting (XSS) Vulnerability [ReturnToAMO.jsx] [Lines 7-93] [Old Code] The old code directly used props like `name`, `iconURL`, and content from JSON without proper sanitization when rendering HTML elements, particularly in the Localized components where these values could potentially be injected into the DOM. [Fixed Code] The new code uses a more structured `MultiStageProtonScreen` component which likely handles proper sanitization of inputs. The direct DOM manipulation is removed, and props are passed to a more controlled component. 2. Vulnerability Existed: yes Insecure Direct Object Reference (IDOR) [ReturnToAMO.jsx] [Lines 7-93] [Old Code] The old implementation didn't properly validate the `url` parameter before using it in the `onClickAddExtension` function, which could lead to arbitrary URL execution. [Fixed Code] The new implementation in `handleAction` includes better validation checks (`if (!data) { return; }`) before processing URLs and uses a more controlled approach to handling the URL parameter. 3. Vulnerability Existed: not sure Potential Information Leakage [ReturnToAMO.jsx] [Lines 7-93] [Old Code] The old code sent telemetry data directly without any apparent parameter sanitization or validation. [Fixed Code] The new code uses `AboutWelcomeUtils.sendActionTelemetry` which might include proper validation, but we can't be certain without seeing the implementation of that utility function. 4. Vulnerability Existed: not sure Server-Side Request Forgery (SSRF) [ReturnToAMO.jsx] [Lines 7-93] [Old Code] The old code didn't show any fetching of external resources. [Fixed Code] The new code introduces `fetchFlowParams` which makes external requests to `metricsFlowUri`. While there's no obvious vulnerability, without seeing the implementation of `AboutWelcomeUtils.fetchFlowParams`, we can't be certain about potential SSRF protections. Note: The changes appear to be part of a larger refactoring to improve security by: 1. Moving to a more controlled component architecture 2. Adding validation checks for critical operations 3. Centralizing telemetry handling 4. Implementing better parameter handling for URLs and external requests
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-045.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-shapes/shape-outside/supported-shapes/ellipse/shape-outside-ellipse-045.html@@ -9,7 +9,6 @@ <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> <link rel="match" href="reference/shape-outside-ellipse-045-ref.html">- <meta name="flags" content=""> <meta name="assert" content="Test the boxes are wrapping around the right float shape defined by the basic shape ellipse(100% 100%) value."> <style> .container {
Based on the provided diff, I'll analyze it for security vulnerabilities: Vulnerability Existed: no No security vulnerability found [File] [Lines 9] Old Code: <meta name="flags" content=""> Fixed Code: (line removed) Additional Details: - The change simply removes a meta "flags" tag which appears to be test-related metadata - This doesn't appear to be a security fix but rather a test cleanup - No known vulnerability patterns are present in this change - The modification doesn't affect any security-sensitive functionality No security vulnerabilities were identified in this diff. The change appears to be a benign test file modification 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/toolkit/components/glean/api/src/pings.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/glean/api/src/pings.rs@@ -9,7 +9,6 @@ //! 'toolkit/components/glean/pings.yaml`. #[cfg(not(feature = "cargo-clippy"))]-include!(concat!(- env!("MOZ_TOPOBJDIR"),- "/toolkit/components/glean/api/src/pings.rs"+include!(mozbuild::objdir_path!(+ "toolkit/components/glean/api/src/pings.rs" ));
Here's the analysis following the requested format: Vulnerability Existed: not sure [Potential Path Traversal or Build System Vulnerability] [toolkit/components/glean/api/src/pings.rs] [Lines 9-12] [Old Code] include!(concat!( env!("MOZ_TOPOBJDIR"), "/toolkit/components/glean/api/src/pings.rs" )); [Fixed Code] include!(mozbuild::objdir_path!( "toolkit/components/glean/api/src/pings.rs" )); Additional Details: 1. The change replaces a direct path concatenation using `env!` macro with a more controlled `mozbuild::objdir_path!` macro. 2. While not clearly a security vulnerability, the old approach could potentially be susceptible to path manipulation if MOZ_TOPOBJDIR could be influenced by an attacker. 3. The new version uses a dedicated build system macro which likely provides better path sanitization and validation. 4. This appears to be more of a build system hardening change than a direct security fix.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/layout/style/CSSPageRule.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/style/CSSPageRule.cpp@@ -169,6 +169,25 @@ /* CSSPageRule implementation */+void CSSPageRule::GetSelectorText(nsACString& aSelectorText) const {+ Servo_PageRule_GetSelectorText(mRawRule.get(), &aSelectorText);+}++void CSSPageRule::SetSelectorText(const nsACString& aSelectorText) {+ if (IsReadOnly()) {+ return;+ }++ if (StyleSheet* const sheet = GetStyleSheet()) {+ sheet->WillDirty();+ const RawServoStyleSheetContents* const contents = sheet->RawContents();+ if (Servo_PageRule_SetSelectorText(contents, mRawRule.get(),+ &aSelectorText)) {+ sheet->RuleChanged(this, StyleRuleChangeKind::Generic);+ }+ }+}+ nsICSSDeclaration* CSSPageRule::Style() { return &mDecls; } JSObject* CSSPageRule::WrapObject(JSContext* aCx,
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Missing Access Control] [layout/style/CSSPageRule.cpp] [Lines 169-187] [Old Code: No implementation of GetSelectorText/SetSelectorText] [Fixed Code: Added implementation with IsReadOnly() check and style sheet validation] Additional Details: - The diff shows new methods being added for handling page rule selector text - The SetSelectorText method includes a read-only check (IsReadOnly()) which prevents modifications to read-only rules - The implementation also validates the existence of a style sheet before making changes - While this appears to be a security improvement, without more context about the threat model or previous vulnerabilities, I can't definitively identify a specific vulnerability being fixed - The changes follow security best practices by adding proper access control checks No other obvious vulnerabilities are apparent in this diff. The changes seem focused on adding proper selector text handling with appropriate safeguards.
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.2.radii.1.dompointinit.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.2.radii.1.dompointinit.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,20 +23,20 @@ ctx.fill(); // top-left corner-_assertPixel(offscreenCanvas, 20,1, 255,0,0,255, "20,1", "255,0,0,255");-_assertPixel(offscreenCanvas, 41,1, 0,255,0,255, "41,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,10, 255,0,0,255, "1,10", "255,0,0,255");-_assertPixel(offscreenCanvas, 1,21, 0,255,0,255, "1,21", "0,255,0,255");+_assertPixel(canvas, 20,1, 255,0,0,255, "20,1", "255,0,0,255");+_assertPixel(canvas, 41,1, 0,255,0,255, "41,1", "0,255,0,255");+_assertPixel(canvas, 1,10, 255,0,0,255, "1,10", "255,0,0,255");+_assertPixel(canvas, 1,21, 0,255,0,255, "1,21", "0,255,0,255"); // bottom-right corner-_assertPixel(offscreenCanvas, 79,48, 255,0,0,255, "79,48", "255,0,0,255");-_assertPixel(offscreenCanvas, 58,48, 0,255,0,255, "58,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,39, 255,0,0,255, "98,39", "255,0,0,255");-_assertPixel(offscreenCanvas, 98,28, 0,255,0,255, "98,28", "0,255,0,255");+_assertPixel(canvas, 79,48, 255,0,0,255, "79,48", "255,0,0,255");+_assertPixel(canvas, 58,48, 0,255,0,255, "58,48", "0,255,0,255");+_assertPixel(canvas, 98,39, 255,0,0,255, "98,39", "255,0,0,255");+_assertPixel(canvas, 98,28, 0,255,0,255, "98,28", "0,255,0,255"); // other corners-_assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+_assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");+_assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't see any security-related fixes. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and corresponding updates to the assertions. Here's the analysis: 1. Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompointinit.worker.js Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); 2. Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.2.radii.1.dompointinit.worker.js Old Code: _assertPixel(offscreenCanvas, 20,1, 255,0,0,255, "20,1", "255,0,0,255"); Fixed Code: _assertPixel(canvas, 20,1, 255,0,0,255, "20,1", "255,0,0,255"); The changes are consistent throughout the file, with all instances of `offscreenCanvas` being renamed to `canvas` in both variable declarations and assertions. This appears to be a code style/readability improvement rather than a security fix.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/browser/themes/windows/downloads/downloads.css+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/themes/windows/downloads/downloads.css@@ -14,7 +14,7 @@ outline-offset: -5px; }-@notKeyfocus@ #downloadsSummary:focus-visible {+#downloadsPanel:not([keyfocus]) #downloadsSummary:focus-visible { outline: none; }@@ -27,13 +27,13 @@ --downloads-item-disabled-opacity: 0.6; }-@notKeyfocus@ .downloadButton:-moz-focusring {+#downloadsPanel:not([keyfocus]) .downloadButton:focus-visible { outline: none; } /*** Highlighted list items ***/-@keyfocus@ @itemFocused@ {+#downloadsPanel[keyfocus] #downloadsListBox:focus > richlistitem[selected] { outline: 1px -moz-dialogtext dotted; outline-offset: -1px; }
Analyzing the provided CSS diff for security fixes: 1. Vulnerability Existed: no CSS Selector Specificity Improvement [browser/themes/windows/downloads/downloads.css] [Lines 14-15] Old Code: `@notKeyfocus@ #downloadsSummary:focus-visible` Fixed Code: `#downloadsPanel:not([keyfocus]) #downloadsSummary:focus-visible` 2. Vulnerability Existed: no CSS Selector Specificity Improvement [browser/themes/windows/downloads/downloads.css] [Lines 27-28] Old Code: `@notKeyfocus@ .downloadButton:-moz-focusring` Fixed Code: `#downloadsPanel:not([keyfocus]) .downloadButton:focus-visible` 3. Vulnerability Existed: no CSS Selector Specificity Improvement [browser/themes/windows/downloads/downloads.css] [Lines 33-34] Old Code: `@keyfocus@ @itemFocused@` Fixed Code: `#downloadsPanel[keyfocus] #downloadsListBox:focus > richlistitem[selected]` The changes appear to be CSS selector improvements rather than security fixes. The modifications: 1. Replace custom @-prefixed directives with standard CSS attribute selectors 2. Update focus-related selectors to use modern `:focus-visible` instead of `:-moz-focusring` 3. Make the selectors more specific by properly scoping them within the downloadsPanel context No actual security vulnerabilities were found in these changes - they're primarily CSS syntax and specificity 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/dom/base/nsImageLoadingContent.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/base/nsImageLoadingContent.h@@ -424,16 +424,6 @@ const Maybe<OnNonvisible>& aNonvisibleAction = Nothing()); /**- * Retrieve a pointer to the 'registered with the refresh driver' flag for- * which a particular image request corresponds.- *- * @returns A pointer to the boolean flag for a given image request, or- * |nullptr| if the request is not either |mPendingRequest| or- * |mCurrentRequest|.- */- bool* GetRegisteredFlagForRequest(imgIRequest* aRequest);-- /** * Reset animation of the current request if * |mNewRequestsWillNeedAnimationReset| was true when the request was * prepared.@@ -472,17 +462,17 @@ /* MEMBERS */ RefPtr<imgRequestProxy> mCurrentRequest; RefPtr<imgRequestProxy> mPendingRequest;- uint32_t mCurrentRequestFlags;- uint32_t mPendingRequestFlags;+ uint8_t mCurrentRequestFlags = 0;+ uint8_t mPendingRequestFlags = 0; enum { // Set if the request needs ResetAnimation called on it.- REQUEST_NEEDS_ANIMATION_RESET = 0x00000001U,+ REQUEST_NEEDS_ANIMATION_RESET = 1 << 0, // Set if the request is currently tracked with the document.- REQUEST_IS_TRACKED = 0x00000004U,+ REQUEST_IS_TRACKED = 1 << 1, // Set if this is an imageset request, such as from <img srcset> or // <picture>- REQUEST_IS_IMAGESET = 0x00000008U+ REQUEST_IS_IMAGESET = 1 << 2, }; // If the image was blocked or if there was an error loading, it's nice to
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Integer Overflow/Type Reduction] [dom/base/nsImageLoadingContent.h] [Lines 472-473] [Old Code] uint32_t mCurrentRequestFlags; uint32_t mPendingRequestFlags; [Fixed Code] uint8_t mCurrentRequestFlags = 0; uint8_t mPendingRequestFlags = 0; Additional Details: The change reduces the size of flag variables from 32-bit to 8-bit. While this might be for memory optimization, it could potentially be related to preventing integer overflow issues if the flags were being manipulated in unsafe ways. 2. Vulnerability Existed: not sure [Removed Potentially Unsafe Accessor] [dom/base/nsImageLoadingContent.h] [Lines 424-432] [Old Code] bool* GetRegisteredFlagForRequest(imgIRequest* aRequest); [Fixed Code] [Method completely removed] Additional Details: The removal of this method that returned a direct pointer to an internal boolean flag could be a security hardening measure, as direct access to internal state can be dangerous. However, without more context, we can't be certain if this was specifically for security. 3. Vulnerability Existed: not sure [Flag Value Changes] [dom/base/nsImageLoadingContent.h] [Lines 477-483] [Old Code] REQUEST_NEEDS_ANIMATION_RESET = 0x00000001U, REQUEST_IS_TRACKED = 0x00000004U, REQUEST_IS_IMAGESET = 0x00000008U [Fixed Code] REQUEST_NEEDS_ANIMATION_RESET = 1 << 0, REQUEST_IS_TRACKED = 1 << 1, REQUEST_IS_IMAGESET = 1 << 2, Additional Details: While this appears to be just a style change (shifting instead of hex values), it could potentially be related to making the code more maintainable and less prone to errors in flag manipulation. Note: The changes appear to be primarily code quality and maintenance improvements rather than clear security fixes. The most significant change is the removal of the GetRegisteredFlagForRequest method, which could have been a security hardening measure.
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/jpeg-xl/lib/jxl/common.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/jpeg-xl/lib/jxl/common.h@@ -117,6 +117,13 @@ num_dc_groups = xsize_dc_groups * ysize_dc_groups; }+ size_t GetUpsampledXSize(bool is_color_c) {+ return is_color_c ? xsize_upsampled_padded : xsize_upsampled;+ }+ size_t GetUpsampledYSize(bool is_color_c) {+ return is_color_c ? ysize_upsampled_padded : ysize_upsampled;+ }+ // Image size without any upsampling, i.e. original_size / upsampling. size_t xsize; size_t ysize;
Based on the provided diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be adding new helper methods rather than fixing security issues. Answer for Each Vulnerability: Vulnerability Existed: no No vulnerability found [third_party/jpeg-xl/lib/jxl/common.h] [Lines 117-124] [Old Code: No methods shown] [Fixed Code: Added GetUpsampledXSize and GetUpsampledYSize methods] The diff shows the addition of two new methods for getting upsampled dimensions, which appears to be a feature addition rather than a security fix. There are no obvious security implications in this change, and no known vulnerability patterns are being addressed here.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/clients/api/Client.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/clients/api/Client.cpp@@ -14,7 +14,6 @@ #include "mozilla/dom/DOMMozPromiseRequestHolder.h" #include "mozilla/dom/MessagePortBinding.h" #include "mozilla/dom/Promise.h"-#include "mozilla/dom/WorkerPrivate.h" #include "mozilla/dom/WorkerScope.h" #include "nsIDUtils.h" #include "nsIGlobalObject.h"
Let me analyze the provided code diff for security fixes. Vulnerability Existed: not sure [Potential Information Leak or Worker Isolation Issue] [dom/clients/api/Client.cpp] [Lines 14] [Old Code] #include "mozilla/dom/WorkerPrivate.h" [Fixed Code] (removed) Additional Details: - The diff shows removal of WorkerPrivate.h include, but without more context about how this header was used, it's hard to determine if this was a security fix - WorkerPrivate.h typically deals with internal worker thread management, so its removal might relate to worker isolation or information leakage prevention - Without seeing the actual usage changes in the code, we can't be certain if this was fixing a specific vulnerability Note: This could potentially be related to worker thread security or isolation improvements, but we'd need more context about the changes in functionality to be certain. The removal might indicate a refactoring of worker-related code to prevent potential security issues, but this is speculative.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/tokio-timer/src/timer/mod.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/tokio-timer/src/timer/mod.rs@@ -45,7 +45,7 @@ use self::stack::Stack; pub(crate) use self::handle::HandlePriv;-pub use self::handle::{with_default, Handle};+pub use self::handle::{set_default, with_default, DefaultGuard, Handle}; pub use self::now::{Now, SystemNow}; pub(crate) use self::registration::Registration;@@ -162,7 +162,7 @@ process: AtomicStack, /// Unparks the timer thread.- unpark: Box<Unpark>,+ unpark: Box<dyn Unpark>, } /// Maximum number of timeouts the system can handle concurrently.@@ -426,7 +426,7 @@ // ===== impl Inner ===== impl Inner {- fn new(start: Instant, unpark: Box<Unpark>) -> Inner {+ fn new(start: Instant, unpark: Box<dyn Unpark>) -> Inner { Inner { num: AtomicUsize::new(0), elapsed: AtomicU64::new(0),
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Trait Object Safety] [third_party/rust/tokio-timer/src/timer/mod.rs] [Lines 162, 426] [Old Code] `unpark: Box<Unpark>,` [Fixed Code] `unpark: Box<dyn Unpark>,` Additional Details: The change makes the trait object explicit by adding `dyn`. While this isn't a direct security fix, it could potentially prevent runtime errors related to trait object safety. 2. Vulnerability Existed: no [API Enhancement] [third_party/rust/tokio-timer/src/timer/mod.rs] [Lines 45] [Old Code] `pub use self::handle::{with_default, Handle};` [Fixed Code] `pub use self::handle::{set_default, with_default, DefaultGuard, Handle};` Additional Details: This appears to be an API enhancement rather than a security fix, exposing additional functionality from the handle module. No clear security vulnerabilities were identified in this diff. The changes appear to be primarily related to code quality and API improvements rather than security fixes.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-shapes/shape-outside/shape-box/shape-outside-border-box-border-radius-012.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-shapes/shape-outside/shape-box/shape-outside-border-box-border-radius-012.html@@ -9,7 +9,6 @@ <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#shapes-from-box-values"> <link rel="match" href="reference/shape-outside-border-box-border-radius-012-ref.html">- <meta name="flags" content=""> <meta name="assert" content="Test the boxes are wrapping around the right float shape defined by the border-box and border-bottom-right-radius value under sideways-lr writing-mode."> <style> .container {
Based on the provided code diff, here's the analysis: Vulnerability Existed: no No security vulnerability found [File] [Lines 9] [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 have any security implications - This appears to be a test file cleanup rather than a security fix - No known vulnerabilities are associated with this change - The modification doesn't affect any security-sensitive functionality Note: While this doesn't represent a security fix, removing unnecessary code is generally good practice for code 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/pixel-manipulation/2d.imageData.get.source.size.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.get.source.size.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); var imgdata1 = ctx.getImageData(0, 0, 10, 10); var imgdata2 = ctx.getImageData(0, 0, 20, 20);
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [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: - The changes appear to be purely variable renaming (from 'offscreenCanvas' to 'canvas') - No security-related changes were made in this diff - The modification doesn't affect any security-sensitive operations - The change is likely for code consistency or readability purposes The diff shows no evidence of security fixes, just a variable name change in a test file.
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.lineTo.nextpoint.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.lineTo.nextpoint.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -29,7 +29,7 @@ ctx.lineTo(0, 25); ctx.lineTo(100, 25); ctx.stroke();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
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 operations. Here's the analysis: Vulnerability Existed: no [No security vulnerability found] [File: testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.lineTo.nextpoint.html] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");] The changes are: 1. Renaming variable `offscreenCanvas` to `canvas` 2. Updating the variable name in the `_assertPixel` call accordingly These changes don't appear to address any security issues but rather improve code consistency or readability.
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.