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/dom/system/tests/ioutils/test_ioutils_dir_iteration.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/system/tests/ioutils/test_ioutils_dir_iteration.html@@ -15,8 +15,7 @@ const { Assert } = ChromeUtils.import("resource://testing-common/Assert.jsm"); add_task(async function iterate_dir_failure() {- const tmpDir = await PathUtils.getTempDir();- let notExists = PathUtils.join(tmpDir, 'does_not_exist_dir.tmp.d');+ let notExists = PathUtils.join(PathUtils.tempDir, 'does_not_exist_dir.tmp.d'); await Assert.rejects( IOUtils.getChildren(notExists),@@ -27,7 +26,7 @@ info('Try to get the children of a regular file');- let tmpFileName = PathUtils.join(tmpDir, 'iterator_file.tmp');+ let tmpFileName = PathUtils.join(PathUtils.tempDir, 'iterator_file.tmp'); await createFile(tmpFileName) await Assert.rejects(IOUtils.getChildren(tmpFileName), /Could not get children of file\(.*\) because it is not a directory/,@@ -40,8 +39,7 @@ add_task(async function iterate_dir() { info('Try to get the children of a multi-level directory hierarchy');- const tmpDir = await PathUtils.getTempDir();- let root = PathUtils.join(tmpDir, 'iterator.tmp.d');+ let root = PathUtils.join(PathUtils.tempDir, 'iterator.tmp.d'); let child1 = PathUtils.join(root, 'child1.tmp'); let child2 = PathUtils.join(root, 'child2.tmp'); let grandchild = PathUtils.join(child1, 'grandchild.tmp');@@ -60,8 +58,7 @@ add_task(async function iterate_empty_dir() { info('Try to get the children of an empty directory');- const tmpDir = await PathUtils.getTempDir();- let emptyDir = PathUtils.join(tmpDir, 'iterator_empty_dir.tmp.d');+ let emptyDir = PathUtils.join(PathUtils.tempDir, 'iterator_empty_dir.tmp.d'); await createDir(emptyDir); is(@@ -76,8 +73,7 @@ add_task(async function iterate_ignore_missing_dir() { info("Try to get the children of a missing file with ignoreAbsent");- const tmpDir = await PathUtils.getTempDir();- const notExists = PathUtils.join(tmpDir, "does_not_exist_dir.tmp.d");+ const notExists = PathUtils.join(PathUtils.tempDir, "does_not_exist_dir.tmp.d"); is( (await IOUtils.getChildren(notExists, { ignoreAbsent: true })).length,
Let me analyze the code diff for security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 15,27,40,58,73] Old Code: `const tmpDir = await PathUtils.getTempDir(); let notExists = PathUtils.join(tmpDir, 'does_not_exist_dir.tmp.d');` Fixed Code: `let notExists = PathUtils.join(PathUtils.tempDir, 'does_not_exist_dir.tmp.d');` Additional Details: The change appears to be a code simplification rather than a security fix, replacing the async `getTempDir()` call with direct access to `PathUtils.tempDir`. 2. Vulnerability Existed: no No specific vulnerability found [File] [All modified lines] Old Code: Various instances of getting temp dir via async call Fixed Code: Direct access to PathUtils.tempDir Additional Details: The changes throughout the file consistently replace the async temp dir retrieval with direct property access, which is likely a performance optimization rather than a security fix. The diff shows a pattern of replacing `await PathUtils.getTempDir()` with direct access to `PathUtils.tempDir` throughout the test file. This appears to be a refactoring for consistency and possibly performance (removing async operations) rather than addressing any specific security vulnerability. The changes don't introduce or fix any obvious security issues related to directory traversal, file operations, or permission handling.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.rgb-clamp-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.rgb-clamp-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 = 'rgb(-1000, 1000, -1000)'; 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'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'rgb(-1000, 1000, -1000)'; 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 = 'rgb(-1000, 1000, -1000)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); Additional Details: - The changes appear to be purely variable renaming (offscreenCanvas → canvas) and don't affect security - The test case is checking color clamping behavior with out-of-range RGB values, which is expected functionality - No security-relevant changes were made to the actual test logic or assertions
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/tools/yaml/element/drawing-text-to-the-canvas.yaml@@ -759,6 +759,11 @@ @assert ctx.letterSpacing === '-1px'; @assert ctx.wordSpacing === '-1px';+ ctx.letterSpacing = '1PX';+ ctx.wordSpacing = '1EM';+ @assert ctx.letterSpacing === '1px';+ @assert ctx.wordSpacing === '1em';+ - name: 2d.text.drawing.style.nonfinite.spacing desc: Testing letter spacing and word spacing with nonfinite inputs testing:@@ -774,6 +779,22 @@ @assert ctx.letterSpacing === '0px'; } @nonfinite test_word_spacing(<0 NaN Infinity -Infinity>);++- name: 2d.text.drawing.style.invalid.spacing+ desc: Testing letter spacing and word spacing with invalid units+ testing:+ - 2d.text.drawing.style.spacing+ code: |+ @assert ctx.letterSpacing === '0px';+ @assert ctx.wordSpacing === '0px';++ function test_word_spacing(value) {+ ctx.wordSpacing = value;+ ctx.letterSpacing = value;+ @assert ctx.wordSpacing === '0px';+ @assert ctx.letterSpacing === '0px';+ }+ @nonfinite test_word_spacing(< '0s' '1min' '1deg' '1pp'>); - name: 2d.text.drawing.style.letterSpacing.measure desc: Testing letter spacing and word spacing
Analyzing the provided code diff, I can identify the following security-related changes: 1. Vulnerability Existed: not sure Input Validation for CSS Units [File] [Lines 759-764] [Old Code] (No previous test cases for uppercase units or invalid units) [Fixed Code] ctx.letterSpacing = '1PX'; ctx.wordSpacing = '1EM'; @assert ctx.letterSpacing === '1px'; @assert ctx.wordSpacing === '1em'; 2. Vulnerability Existed: not sure Input Validation for Invalid CSS Units [File] [Lines 774-789] [Old Code] (No previous test cases for invalid units like '0s', '1min', etc.) [Fixed Code] function test_word_spacing(value) { ctx.wordSpacing = value; ctx.letterSpacing = value; @assert ctx.wordSpacing === '0px'; @assert ctx.letterSpacing === '0px'; } @nonfinite test_word_spacing(< '0s' '1min' '1deg' '1pp'>); Note: While these changes appear to be adding test cases for input validation (case sensitivity and invalid units), it's not clear if these were fixing actual vulnerabilities or just improving test coverage. The changes suggest potential security concerns around CSS unit parsing that needed to be addressed, but without more context about actual exploits, we can't be certain these were fixing vulnerabilities.
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/naga/src/back/spv/image.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/naga/src/back/spv/image.rs@@ -799,6 +799,7 @@ result_type_id: Word, image: Handle<crate::Expression>, sampler: Handle<crate::Expression>,+ gather: Option<crate::SwizzleComponent>, coordinate: Handle<crate::Expression>, array_index: Option<Handle<crate::Expression>>, offset: Option<Handle<crate::Constant>>,@@ -816,7 +817,7 @@ crate::TypeInner::Image { class: crate::ImageClass::Depth { .. }, ..- } => depth_ref.is_none(),+ } => depth_ref.is_none() && gather.is_none(), _ => false, }; let sample_result_type_id = if needs_sub_access {@@ -853,8 +854,23 @@ let mut mask = spirv::ImageOperands::empty(); mask.set(spirv::ImageOperands::CONST_OFFSET, offset.is_some());- let mut main_instruction = match level {- crate::SampleLevel::Zero => {+ let mut main_instruction = match (level, gather) {+ (_, Some(component)) => {+ let component_id = self.get_index_constant(component as u32);+ let mut inst = Instruction::image_gather(+ sample_result_type_id,+ id,+ sampled_image_id,+ coordinates_id,+ component_id,+ depth_id,+ );+ if !mask.is_empty() {+ inst.add_operand(mask.bits());+ }+ inst+ }+ (crate::SampleLevel::Zero, None) => { let mut inst = Instruction::image_sample( sample_result_type_id, id,@@ -874,7 +890,7 @@ inst }- crate::SampleLevel::Auto => {+ (crate::SampleLevel::Auto, None) => { let mut inst = Instruction::image_sample( sample_result_type_id, id,@@ -888,7 +904,7 @@ } inst }- crate::SampleLevel::Exact(lod_handle) => {+ (crate::SampleLevel::Exact(lod_handle), None) => { let mut inst = Instruction::image_sample( sample_result_type_id, id,@@ -905,7 +921,7 @@ inst }- crate::SampleLevel::Bias(bias_handle) => {+ (crate::SampleLevel::Bias(bias_handle), None) => { let mut inst = Instruction::image_sample( sample_result_type_id, id,@@ -922,7 +938,7 @@ inst }- crate::SampleLevel::Gradient { x, y } => {+ (crate::SampleLevel::Gradient { x, y }, None) => { let mut inst = Instruction::image_sample( sample_result_type_id, id,
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Missing Validation for Image Gather Operations] [third_party/rust/naga/src/back/spv/image.rs] [Lines 799-938] [Old Code] ```rust // Previous code didn't handle gather operations separately let mut main_instruction = match level { crate::SampleLevel::Zero => { // ... sample implementation } // ... other sample levels } ``` [Fixed Code] ```rust // New code explicitly handles gather operations let mut main_instruction = match (level, gather) { (_, Some(component)) => { // ... gather-specific implementation } (crate::SampleLevel::Zero, None) => { // ... sample implementation } // ... other cases } ``` 2. Vulnerability Existed: not sure [Potential Depth Image Validation Issue] [third_party/rust/naga/src/back/spv/image.rs] [Lines 816-817] [Old Code] ```rust crate::TypeInner::Image { class: crate::ImageClass::Depth { .. }, .. } => depth_ref.is_none(), ``` [Fixed Code] ```rust crate::TypeInner::Image { class: crate::ImageClass::Depth { .. }, .. } => depth_ref.is_none() && gather.is_none(), ``` The changes primarily introduce proper handling of gather operations in image sampling and add additional validation for depth images. While these appear to be correctness fixes rather than security vulnerabilities, they could potentially prevent undefined behavior or incorrect image operations that might be exploitable in some contexts. The explicit handling of gather operations and additional validation for depth images suggests there might have been potential for incorrect image operations in the previous version.
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-fonts/font-variant-debug.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-fonts/font-variant-debug.html@@ -6,7 +6,6 @@ <head> <title>CSS Test: debug font-variant value tests</title> <link rel="author" title="John Daggett" href="mailto:[email protected]"/>-<meta name="flags" content=""/> <meta name="assert" content="Each font-variant property value should enable specific features and not others"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Let me analyze the provided code diff for security fixes. Vulnerability Existed: no [No specific vulnerability found] [testing/web-platform/tests/css/css-fonts/font-variant-debug.html] [Lines 6] [Old Code: <meta name="flags" content=""/>] [Fixed Code: [removed]] Additional Details: The change simply removes an empty meta tag for "flags" which appears to be test-related metadata rather than a security fix. This seems to be a cleanup change rather than addressing any security vulnerability. The removed tag didn't contain any sensitive information or pose any security risk. No other changes were present in the diff that would indicate security fixes. The modification appears to be part of routine test file maintenance rather than addressing any security concerns.
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.closed.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.closed.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -23,7 +23,7 @@ ctx.lineJoin = 'miter'; ctx.roundRect(100, 50, 100, 100, [0]); 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 diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming for better code clarity. Here's the analysis following your requested format: Vulnerability Existed: no [No Vulnerability Found] [testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.roundrect.closed.worker.js] [Lines 13-23] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes are: 1. Renamed variable 'offscreenCanvas' to 'canvas' 2. Updated all references to the renamed variable 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/testing/profiles/web-platform/user.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/profiles/web-platform/user.js@@ -11,6 +11,8 @@ // Don't show the Bookmarks Toolbar on any tab (the above pref that // disables the New Tab Page ends up showing the toolbar on about:blank). user_pref("browser.toolbars.bookmarks.visibility", "never");+// Expose TestUtils interface+user_pref("dom.testing.testutils.enabled", true); // Only install add-ons from the profile and the application scope // Also ensure that those are not getting disabled. // see: https://developer.mozilla.org/en/Installing_extensions@@ -71,3 +73,6 @@ user_pref("network.cookie.cookieBehavior", 4); // Force a light color scheme unless explicitly overriden by pref. user_pref("layout.css.prefers-color-scheme.content-override", 1);+// Force OffscreenCanvas support+user_pref("gfx.offscreencanvas.enabled", true);+user_pref("dom.workers.requestAnimationFrame", true);
Here's the analysis following the specified format: 1. Vulnerability Existed: not sure [Potential Test Interface Exposure] [testing/profiles/web-platform/user.js] [Lines 11-12] [Old Code: (no equivalent)] [Fixed Code: user_pref("dom.testing.testutils.enabled", true);] Additional Details: Enabling test utilities in production could potentially expose internal testing interfaces, though this appears to be in a testing profile. 2. Vulnerability Existed: not sure [Potential Offscreen Canvas Security Risk] [testing/profiles/web-platform/user.js] [Lines 74-75] [Old Code: (no equivalent)] [Fixed Code: user_pref("gfx.offscreencanvas.enabled", true); user_pref("dom.workers.requestAnimationFrame", true);] Additional Details: Enabling OffscreenCanvas and requestAnimationFrame in workers could potentially introduce new attack surfaces, though the security implications would depend on the implementation. Note: Since this is a testing profile configuration, many of these changes might be intentional for testing purposes rather than security fixes. The analysis focuses on potential security implications of enabling these 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/dom/html/HTMLCanvasElement.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/html/HTMLCanvasElement.h@@ -7,6 +7,7 @@ # define mozilla_dom_HTMLCanvasElement_h # include "mozilla/Attributes.h"+# include "mozilla/StateWatching.h" # include "mozilla/WeakPtr.h" # include "nsIDOMEventListener.h" # include "nsIObserver.h"@@ -23,6 +24,7 @@ class nsIInputStream; class nsITimerCallback; enum class gfxAlphaType;+enum class FrameCaptureState : uint8_t; namespace mozilla {@@ -81,23 +83,18 @@ * FrameCaptureListener is used by captureStream() as a way of getting video * frames from the canvas. On a refresh driver tick after something has been * drawn to the canvas since the last such tick, all registered- * FrameCaptureListeners whose `mFrameCaptureRequested` equals `true`,- * will be given a copy of the just-painted canvas.+ * FrameCaptureListeners that report true for FrameCaptureRequested() will be+ * given a copy of the just-painted canvas. * All FrameCaptureListeners get the same copy. */ class FrameCaptureListener : public SupportsWeakPtr { public:- FrameCaptureListener() : mFrameCaptureRequested(false) {}-- /*- * Called when a frame capture is desired on next paint.- */- void RequestFrameCapture() { mFrameCaptureRequested = true; }+ FrameCaptureListener() = default; /* * Indicates to the canvas whether or not this listener has requested a frame. */- bool FrameCaptureRequested() const { return mFrameCaptureRequested; }+ virtual bool FrameCaptureRequested(const TimeStamp& aTime) const = 0; /* * Interface through which new video frames will be provided while@@ -108,8 +105,6 @@ protected: virtual ~FrameCaptureListener() = default;-- bool mFrameCaptureRequested; }; class HTMLCanvasElement final : public nsGenericHTMLElement,@@ -247,7 +242,7 @@ * Returns true when there is at least one registered FrameCaptureListener * that has requested a frame capture. */- bool IsFrameCaptureRequested() const;+ bool IsFrameCaptureRequested(const TimeStamp& aTime) const; /* * Processes destroyed FrameCaptureListeners and removes them if necessary.@@ -300,8 +295,9 @@ // copies for future frames when no drawing has occurred. void MarkContextCleanForFrameCapture();- // Starts returning false when something is drawn.- bool IsContextCleanForFrameCapture();+ // Returns non-null when the current context supports captureStream().+ // The FrameCaptureState gets set to DIRTY when something is drawn.+ Watchable<FrameCaptureState>* GetFrameCaptureState(); nsresult GetContext(const nsAString& aContextId, nsISupports** aContext);@@ -334,7 +330,7 @@ const JS::Value& aEncoderOptions, nsAString& aDataURL); nsresult MozGetAsFileImpl(const nsAString& aName, const nsAString& aType, nsIPrincipal& aSubjectPrincipal, File** aResult);- void CallPrintCallback();+ MOZ_CAN_RUN_SCRIPT void CallPrintCallback(); virtual nsresult AfterSetAttr(int32_t aNamespaceID, nsAtom* aName, const nsAttrValue* aValue,@@ -350,6 +346,7 @@ webgpu::CanvasContext* GetWebGPUContext(); bool IsOffscreen() const { return !!mOffscreenCanvas; }+ OffscreenCanvas* GetOffscreenCanvas() const { return mOffscreenCanvas; } RefPtr<layers::ImageContainer> GetImageContainer();
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Race Condition] [dom/html/HTMLCanvasElement.h] [Lines 81-108] [Old Code] ``` class FrameCaptureListener : public SupportsWeakPtr { public: FrameCaptureListener() : mFrameCaptureRequested(false) {} void RequestFrameCapture() { mFrameCaptureRequested = true; } bool FrameCaptureRequested() const { return mFrameCaptureRequested; } protected: bool mFrameCaptureRequested; }; ``` [Fixed Code] ``` class FrameCaptureListener : public SupportsWeakPtr { public: FrameCaptureListener() = default; virtual bool FrameCaptureRequested(const TimeStamp& aTime) const = 0; protected: virtual ~FrameCaptureListener() = default; }; ``` Additional Details: The change makes frame capture request handling more robust by introducing a timestamp parameter and making the method pure virtual, which could potentially address race conditions in frame capture timing. 2. Vulnerability Existed: not sure [Potential State Management Issue] [dom/html/HTMLCanvasElement.h] [Lines 295-297] [Old Code] ``` bool IsContextCleanForFrameCapture(); ``` [Fixed Code] ``` Watchable<FrameCaptureState>* GetFrameCaptureState(); ``` Additional Details: The change replaces a simple boolean check with a more sophisticated state management system using Watchable, which could prevent state-related security issues. 3. Vulnerability Existed: not sure [Potential Script Execution Issue] [dom/html/HTMLCanvasElement.h] [Line 330] [Old Code] ``` void CallPrintCallback(); ``` [Fixed Code] ``` MOZ_CAN_RUN_SCRIPT void CallPrintCallback(); ``` Additional Details: The addition of MOZ_CAN_RUN_SCRIPT annotation indicates potential security considerations around script execution that needed to be explicitly marked. Note: While these changes appear to improve the robustness and security of the code, without more context about the specific vulnerabilities they address, we can't definitively identify specific CVE-worthy vulnerabilities. The changes suggest improvements in state management, timing handling, and script execution safety.
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.stroke.basic.worker.js+++ /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.stroke.basic.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);@@ -26,9 +26,9 @@ ctx.moveTo(0, -25); ctx.lineTo(100, -25); ctx.stroke();-_assertPixel(offscreenCanvas, 1,25, 0,255,0,255, "1,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,25, 0,255,0,255, "98,25", "0,255,0,255");+_assertPixel(canvas, 1,25, 0,255,0,255, "1,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 98,25, 0,255,0,255, "98,25", "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 and don't affect security. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [File] [Lines 13-26] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 1,25, 0,255,0,255, "1,25", "0,255,0,255"); _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); _assertPixel(offscreenCanvas, 98,25, 0,255,0,255, "98,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 1,25, 0,255,0,255, "1,25", "0,255,0,255"); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); _assertPixel(canvas, 98,25, 0,255,0,255, "98,25", "0,255,0,255"); The changes simply rename the variable from `offscreenCanvas` to `canvas` throughout the file, which doesn't appear to address any security vulnerability. This seems to be a code style or consistency improvement rather than a security fix.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/netwerk/ipc/NeckoParent.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/netwerk/ipc/NeckoParent.cpp@@ -765,7 +765,12 @@ // Initing the socket process bridge must be async here in order to // wait for the socket process launch before executing.- auto task = [self = this, resolver = std::move(aResolver)]() {+ auto task = [self = RefPtr{this}, resolver = std::move(aResolver)]() {+ // The content process might be already destroyed.+ if (!self->CanSend()) {+ return;+ }+ Endpoint<PSocketProcessBridgeChild> invalidEndpoint; if (NS_WARN_IF(self->mSocketProcessBridgeInited)) { resolver(std::move(invalidEndpoint));
Here's the analysis following your requested format: Vulnerability Existed: yes Use-After-Free Vulnerability [netwerk/ipc/NeckoParent.cpp] [Lines 765-765] [Old Code] auto task = [self = this, resolver = std::move(aResolver)]() { [Fixed Code] auto task = [self = RefPtr{this}, resolver = std::move(aResolver)]() { Additional Details: - The vulnerability appears to be a potential use-after-free issue where a raw 'this' pointer was being captured in a lambda that could execute asynchronously. The fix changes this to use a RefPtr, ensuring the object remains alive during the lambda's execution. - The added check for CanSend() further prevents potential issues if the content process was destroyed before the task executes. - This is a common pattern in IPC code where asynchronous operations need to safely reference objects that might be destroyed before the operation completes. Vulnerability Existed: yes Null Pointer Dereference Prevention [netwerk/ipc/NeckoParent.cpp] [Lines 765-765] [Old Code] auto task = [self = this, resolver = std::move(aResolver)]() { [Fixed Code] auto task = [self = RefPtr{this}, resolver = std::move(aResolver)]() { if (!self->CanSend()) { return; } Additional Details: - While the primary fix was for use-after-free, the added CanSend() check also prevents potential null pointer dereferences if the object becomes invalid before execution. - This is a defensive programming addition that complements the RefPtr change to make the code more robust against race conditions in process destruction scenarios.
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/themes/windows/global/dirListing/dirListing.css+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/themes/windows/global/dirListing/dirListing.css@@ -7,6 +7,7 @@ color: -moz-dialogtext; font: message-box; padding-inline: 2em;+ color-scheme: light dark; } body {
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found in this CSS diff. The change only adds a `color-scheme` property to support light/dark mode theming. Additional Details: - The diff shows a purely stylistic change adding `color-scheme: light dark;` to support system color schemes - No security implications were identified in this change - The modification appears to be a feature enhancement rather than a security fix No vulnerabilities were identified in this CSS file change. The modification is related to theming support rather than addressing any security issues.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js@@ -13,10 +13,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(); });
Let me analyze the code diff according to your instructions: Vulnerability Existed: no [No specific vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/the-offscreen-canvas/size.attributes.parse.minus.worker.js] [Lines 13-17] [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 Details: The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) with no security implications. The test continues to verify that setting a negative width throws a TypeError, which is expected behavior. No actual security vulnerability is being fixed 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/html/test/forms/test_input_password_show_password_button.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/html/test/forms/test_input_password_show_password_button.html@@ -41,7 +41,7 @@ } async function runTest() {- await SpecialPowers.pushPrefEnv({set: [["layout.forms.input-type-show-password-button.enabled", true]]});+ await SpecialPowers.pushPrefEnv({set: [["layout.forms.reveal-password-button.enabled", true]]}); document.getElementById("content").style.display = ""; document.getElementById("content").getBoundingClientRect(); await test_append_char('test1');
Let me analyze the code diff for security fixes: Vulnerability Existed: not sure [Potential Configuration Vulnerability] [dom/html/test/forms/test_input_password_show_password_button.html] [Lines 41] [Old Code] await SpecialPowers.pushPrefEnv({set: [["layout.forms.input-type-show-password-button.enabled", true]]}); [Fixed Code] await SpecialPowers.pushPrefEnv({set: [["layout.forms.reveal-password-button.enabled", true]]}); Additional Details: The change appears to be a preference name update from "input-type-show-password-button" to "reveal-password-button". While this doesn't directly indicate a security vulnerability, it might be related to a security improvement in how password reveal buttons are handled. The change could be part of a broader security enhancement, but without more context about why the preference name was changed, 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/dom/streams/WritableStream.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/streams/WritableStream.cpp@@ -116,7 +116,8 @@ mStream(aStream), mAbortRequestPromise(aAbortRequestPromise) {}- void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) override {+ void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override { // https://streams.spec.whatwg.org/#writable-stream-finish-erroring // Step 13. Upon fulfillment of promise,@@ -128,7 +129,8 @@ mStream->RejectCloseAndClosedPromiseIfNeeded(); }- void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) override {+ void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override { // https://streams.spec.whatwg.org/#writable-stream-finish-erroring // Step 14. Upon rejection of promise with reason reason,
Here's the analysis of the provided code diff: Vulnerability Existed: not sure [Potential Error Handling Improvement] [dom/streams/WritableStream.cpp] [Lines 116-129] [Old Code] void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) override { // https://streams.spec.whatwg.org/#writable-stream-finish-erroring // Step 13. Upon fulfillment of promise, mStream->FinishErroring(); mStream->RejectCloseAndClosedPromiseIfNeeded(); } void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) override { [Fixed Code] void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) override { // https://streams.spec.whatwg.org/#writable-stream-finish-erroring // Step 13. Upon fulfillment of promise, mStream->FinishErroring(); mStream->RejectCloseAndClosedPromiseIfNeeded(); } void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) override { Additional Details: The main change is the addition of ErrorResult& aRv parameter to both ResolvedCallback and RejectedCallback methods. While this doesn't appear to fix a specific named vulnerability, it improves error handling by: 1. Providing a way to propagate errors through the ErrorResult object 2. Making the callback signatures consistent with Mozilla's error handling patterns 3. Potentially preventing uncaught exceptions or silent failures The change appears to be more of a robustness improvement than a direct security fix, but better error handling can indirectly improve security by ensuring errors are properly reported and handled rather than 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/html/canvas/offscreen/pixel-manipulation/2d.imageData.object.set.html+++ /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.object.set.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 imgdata = ctx.getImageData(0, 0, 10, 10); imgdata.data[0] = 100;
Based on the provided diff, I'll analyze it for potential security vulnerabilities: Vulnerability Existed: no [No specific vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.object.set.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'); Analysis: 1. The changes appear to be purely variable naming changes (offscreenCanvas → canvas) with no security implications. 2. The context acquisition remains the same ('2d' context). 3. No security-sensitive operations are modified in the shown diff. 4. The change seems to be for code consistency/readability rather than security fixes. No known vulnerabilities are addressed in this diff. The modification is a simple refactoring of variable names.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/security/sandbox/common/test/SandboxTestingParent.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/security/sandbox/common/test/SandboxTestingParent.cpp@@ -76,21 +76,17 @@ } mozilla::ipc::IPCResult SandboxTestingParent::RecvReportTestResults(- const nsCString& testName, bool shouldSucceed, bool didSucceed,- const nsCString& resultMessage) {+ const nsCString& testName, bool passed, const nsCString& resultMessage) { NS_DispatchToMainThread( NS_NewRunnableFunction("SandboxReportTestResults", [=]() { nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); MOZ_RELEASE_ASSERT(observerService);- nsCString shouldPermit(shouldSucceed ? "true"_ns : "false"_ns);- nsCString wasPermitted(didSucceed ? "true"_ns : "false"_ns);+ nsCString passedStr(passed ? "true"_ns : "false"_ns); nsString json; json += u"{ \"testid\" : \""_ns + NS_ConvertUTF8toUTF16(testName) +- u"\", \"shouldPermit\" : "_ns +- NS_ConvertUTF8toUTF16(shouldPermit) +- u", \"wasPermitted\" : "_ns +- NS_ConvertUTF8toUTF16(wasPermitted) + u", \"message\" : \""_ns ++ u"\", \"passed\" : "_ns + NS_ConvertUTF8toUTF16(passedStr) ++ u", \"message\" : \""_ns + NS_ConvertUTF8toUTF16(resultMessage) + u"\" }"_ns; observerService->NotifyObservers(nullptr, "sandbox-test-result", json.BeginReading());
Here's the analysis of the provided code diff: Vulnerability Existed: not sure [Potential Information Leak or Overly Detailed Error Reporting] [security/sandbox/common/test/SandboxTestingParent.cpp] [Lines 76-98] [Old Code] mozilla::ipc::IPCResult SandboxTestingParent::RecvReportTestResults( const nsCString& testName, bool shouldSucceed, bool didSucceed, const nsCString& resultMessage) { NS_DispatchToMainThread( NS_NewRunnableFunction("SandboxReportTestResults", [=]() { nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); MOZ_RELEASE_ASSERT(observerService); nsCString shouldPermit(shouldSucceed ? "true"_ns : "false"_ns); nsCString wasPermitted(didSucceed ? "true"_ns : "false"_ns); nsString json; json += u"{ \"testid\" : \""_ns + NS_ConvertUTF8toUTF16(testName) + u"\", \"shouldPermit\" : "_ns + NS_ConvertUTF8toUTF16(shouldPermit) + u", \"wasPermitted\" : "_ns + NS_ConvertUTF8toUTF16(wasPermitted) + u", \"message\" : \""_ns + NS_ConvertUTF8toUTF16(resultMessage) + u"\" }"_ns; [Fixed Code] mozilla::ipc::IPCResult SandboxTestingParent::RecvReportTestResults( const nsCString& testName, bool passed, const nsCString& resultMessage) { NS_DispatchToMainThread( NS_NewRunnableFunction("SandboxReportTestResults", [=]() { nsCOMPtr<nsIObserverService> observerService = mozilla::services::GetObserverService(); MOZ_RELEASE_ASSERT(observerService); nsCString passedStr(passed ? "true"_ns : "false"_ns); nsString json; json += u"{ \"testid\" : \""_ns + NS_ConvertUTF8toUTF16(testName) + u"\", \"passed\" : "_ns + NS_ConvertUTF8toUTF16(passedStr) + u", \"message\" : \""_ns + NS_ConvertUTF8toUTF16(resultMessage) + u"\" }"_ns; Additional Details: The change simplifies the test result reporting by removing the separate "shouldPermit" and "wasPermitted" fields and combining them into a single "passed" field. While this isn't clearly a security vulnerability fix, it could be related to reducing information leakage in test results. The original version might have provided more detailed information about test expectations versus actual results, which could potentially be useful to an attacker. However, this is speculative and not clearly 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/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-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.invalid.name-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 = '#0f0'; try { ctx.fillStyle = 'darkbrown'; } 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, here's the security assessment: Vulnerability Existed: no [No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.name-1.html] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#0f0'; try { ctx.fillStyle = 'darkbrown'; } 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 = 'darkbrown'; } catch (e) { } ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes appear to be purely cosmetic, renaming a variable from 'offscreenCanvas' to 'canvas' for consistency or clarity. There are no security-related changes in this diff. The test continues to verify canvas behavior with invalid color names, which is a normal test case 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/geolocation-API/idlharness.https.window.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/geolocation-API/idlharness.https.window.js@@ -4,7 +4,7 @@ // https://www.w3.org/TR/geolocation-API/ idl_test(- ['geolocation-API'],+ ['geolocation'], ['hr-time', 'html'], idl_array => { self.audio = document.createElement('audio');
Based on the provided diff, I'll analyze it for security vulnerabilities: Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/geolocation-API/idlharness.https.window.js [Lines 4] Old Code: ['geolocation-API'] Fixed Code: ['geolocation'] Additional Details: This appears to be a simple test file modification where the test suite name was updated from 'geolocation-API' to 'geolocation'. There are no security-related changes visible in this diff. The modification seems to be either a test suite name standardization or a reference update, but doesn't indicate any security vulnerability being fixed. No security vulnerabilities were identified in this change. The modification is likely related to test suite maintenance 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/modules/libpref/init/all.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/modules/libpref/init/all.js@@ -160,10 +160,6 @@ // 1: Enable and check revocations via CRLite, but only collect telemetry // 2: Enable and enforce revocations via CRLite pref("security.pki.crlite_mode", 1);--// Represents the expected certificate transparency log merge delay (including-// the time to generate a CRLite filter). Currently 28 hours in seconds.-pref("security.pki.crlite_ct_merge_delay_seconds", 100800); // Issuer we use to detect MitM proxies. Set to the issuer of the cert of the // Firefox update service. The string format is whatever NSS uses to print a DN.@@ -884,6 +880,13 @@ pref("devtools.performance.recording.preset", "web-developer"); pref("devtools.performance.recording.preset.remote", "web-developer"); #endif+// The profiler's active tab view has a few issues. Disable it in most+// environments until the issues are ironed out.+#if defined(NIGHTLY_BUILD)+ pref("devtools.performance.recording.active-tab-view.enabled", true);+#else+ pref("devtools.performance.recording.active-tab-view.enabled", false);+#endif // Profiler buffer size. It is the maximum number of 8-bytes entries in the // profiler's buffer. 10000000 is ~80mb. pref("devtools.performance.recording.entries", 10000000);@@ -1034,7 +1037,6 @@ #else pref("dom.forms.select.customstyling", true); #endif-pref("dom.select_popup_in_parent.enabled", false); pref("dom.cycle_collector.incremental", true);@@ -1417,9 +1419,6 @@ pref("network.http.spdy.default-hpack-buffer", 65536); // 64k pref("network.http.spdy.websockets", true); pref("network.http.spdy.enable-hpack-dump", false);--// Http3 parameters-pref("network.http.http3.enabled", true); // Http3 qpack table size. pref("network.http.http3.default-qpack-table-size", 65536); // 64k@@ -2920,6 +2919,13 @@ // available. Note that this is ignored if active ATOK is or older than // 2016 and create_native_caret is true. pref("intl.tsf.hack.atok.do_not_return_no_layout_error_of_composition_string", true);+ // Whether disable "search" input scope when the ATOK is active on windows. + // When "search" is set to the input scope, ATOK may stop their suggestions.+ // To avoid it, turn this pref on, or changing the settings in ATOK.+ // Note that if you enable this pref and you use the touch keyboard for touch+ // screens, you cannot access some specific features for a "search" input + // field.+ pref("intl.tsf.hack.atok.search_input_scope_disabled", false); // Whether use available composition string rect for result of // ITextStoreACP::GetTextExt() even if the specified range is same as or is // in the range of composition string but some character rects of them are@@ -3896,9 +3902,6 @@ pref("dom.push.http2.maxRetries", 2); pref("dom.push.http2.retryInterval", 5000);-// W3C MediaDevices devicechange fake event-pref("media.ondevicechange.fakeDeviceChangeEvent.enabled", false);- // How long must we wait before declaring that a window is a "ghost" (i.e., a // likely leak)? This should be longer than it usually takes for an eligible // window to be collected via the GC/CC.@@ -3947,9 +3950,6 @@ // Before TRR is widely used the NS record for this host is fetched // from the DOH end point to ensure proper configuration pref("network.trr.confirmationNS", "example.com");-// TRR blacklist entry expire time (in seconds). Default is one minute.-// Meant to survive basically a page load.-pref("network.trr.blacklist-duration", 60); // Comma separated list of domains that we should not use TRR for pref("network.trr.excluded-domains", ""); pref("network.trr.builtin-excluded-domains", "localhost,local");@@ -4112,11 +4112,7 @@ pref("browser.search.suggest.enabled.private", false); pref("browser.search.separatePrivateDefault", false); pref("browser.search.separatePrivateDefault.ui.enabled", false);--#ifdef MOZ_OFFICIAL_BRANDING- // {moz:official} expands to "official"- pref("browser.search.official", true);-#endif+pref("browser.search.removeEngineInfobar.enabled", true); // GMPInstallManager prefs
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Removed CRLite CT merge delay setting] [modules/libpref/init/all.js] [Lines 160-163] [Old Code] ```javascript // Represents the expected certificate transparency log merge delay (including // the time to generate a CRLite filter). Currently 28 hours in seconds. pref("security.pki.crlite_ct_merge_delay_seconds", 100800); ``` [Fixed Code] (Removed entirely) 2. Vulnerability Existed: not sure [Removed HTTP/3 enabled flag] [modules/libpref/init/all.js] [Lines 1417-1420] [Old Code] ```javascript // Http3 parameters pref("network.http.http3.enabled", true); ``` [Fixed Code] (Removed entirely) 3. Vulnerability Existed: not sure [Removed TRR blacklist duration setting] [modules/libpref/init/all.js] [Lines 3947-3949] [Old Code] ```javascript // TRR blacklist entry expire time (in seconds). Default is one minute. // Meant to survive basically a page load. pref("network.trr.blacklist-duration", 60); ``` [Fixed Code] (Removed entirely) 4. Vulnerability Existed: not sure [Removed devicechange fake event setting] [modules/libpref/init/all.js] [Lines 3896-3898] [Old Code] ```javascript // W3C MediaDevices devicechange fake event pref("media.ondevicechange.fakeDeviceChangeEvent.enabled", false); ``` [Fixed Code] (Removed entirely) Note: While these changes appear to be security-related (removing potentially risky features or configurations), without additional context about why these preferences were removed, I cannot definitively state whether they were fixing actual vulnerabilities or just cleaning up unused preferences. The removal of security-related preferences (especially ones related to certificate validation, HTTP/3, and TRR) suggests these might be security improvements, but I cannot confirm specific vulnerabilities were fixed.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/accessible/ipc/RemoteAccessibleBase.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/accessible/ipc/RemoteAccessibleBase.h@@ -176,13 +176,19 @@ virtual double MaxValue() const override; virtual double Step() const override;- virtual nsIntRect Bounds() const override;+ virtual LayoutDeviceIntRect Bounds() const override; virtual uint64_t State() override; virtual already_AddRefed<AccAttributes> Attributes() override; virtual nsAtom* TagName() const override;++ virtual uint8_t ActionCount() const override;++ virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override;++ virtual bool DoAction(uint8_t aIndex) const override; // Methods that interact with content.
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: not sure [Type Change from nsIntRect to LayoutDeviceIntRect] [accessible/ipc/RemoteAccessibleBase.h] [Line 176] [Old Code] virtual nsIntRect Bounds() const override; [Fixed Code] virtual LayoutDeviceIntRect Bounds() const override; Additional Details: The change from nsIntRect to LayoutDeviceIntRect might be related to coordinate system precision or consistency, but without more context, it's unclear if this was fixing a security vulnerability. 2. Vulnerability Existed: not sure [Added Virtual Methods] [accessible/ipc/RemoteAccessibleBase.h] [Lines 182-186] [Old Code] (methods not present) [Fixed Code] virtual uint8_t ActionCount() const override; virtual void ActionNameAt(uint8_t aIndex, nsAString& aName) override; virtual bool DoAction(uint8_t aIndex) const override; Additional Details: The addition of these methods appears to be new functionality rather than a security fix. However, if the previous absence of these methods could lead to improper access control or action handling, there might have been a security implication. Note: Without more context about the specific vulnerabilities these changes might address or the security implications of the original code, it's difficult to definitively identify security vulnerabilities. The changes appear to be more about functionality improvements and API consistency rather than explicit 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.