Shared security patch analysis results
AI Used: DEEPSEEK deepseek-chat--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.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);@@ -31,8 +31,8 @@ ctx.fillStyle = '#0f0'; ctx.fill();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 5,45, 0,255,0,255, "5,45", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 5,45, 0,255,0,255, "5,45", "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 variable renaming (from `offscreenCanvas` to `canvas`) and updating the corresponding references. Here's the analysis following your requested format: Vulnerability Existed: no [No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.stroke.unaffected.worker.js] [Lines 13-31] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, ...)] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, ...)] The changes are purely cosmetic/refactoring in nature and don't appear to address any security issues. The functionality remains identical, only the variable name has been changed for consistency or clarity.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/wast/src/resolve/names.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/wast/src/resolve/names.rs@@ -772,7 +772,7 @@ )); }- Br(i) | BrIf(i) | BrOnNull(i) => {+ Br(i) | BrIf(i) | BrOnNull(i) | BrOnNonNull(i) => { self.resolve_label(i)?; }
Here's the analysis of the provided code diff: Vulnerability Existed: no [No specific vulnerability] [third_party/rust/wast/src/resolve/names.rs] [Lines 772] [Old Code] `Br(i) | BrIf(i) | BrOnNull(i) => {` [Fixed Code] `Br(i) | BrIf(i) | BrOnNull(i) | BrOnNonNull(i) => {` Additional Details: This appears to be a simple case of adding support for a new WebAssembly instruction (`BrOnNonNull`) in the pattern matching. There's no indication of a security vulnerability being fixed - it's more likely a feature addition or maintenance update to support new WebAssembly functionality. The change simply extends the pattern match to handle another branch instruction variant.
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.canvas.transparent.1.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.1.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); var offscreenCanvas2 = new OffscreenCanvas(100, 50); var ctx2 = offscreenCanvas2.getContext('2d');@@ -23,7 +23,7 @@ ctx.shadowColor = '#f00'; ctx.shadowOffsetY = 50; ctx.drawImage(offscreenCanvas2, 0, -50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
Based on the provided diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and corresponding reference updates, which doesn't indicate any security-related modifications. Here's the structured response: Vulnerability Existed: no No security vulnerability found in this diff. The changes are limited to variable renaming and reference updates. The changes are: 1. Renamed variable `offscreenCanvas` to `canvas` and updated references 2. Updated `_assertPixel` call to use the new variable name Old Code: ```javascript 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: ```javascript 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"); ``` 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.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-values/calc-offsets-absolute-top-1-ref.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-values/calc-offsets-absolute-top-1-ref.html@@ -3,7 +3,6 @@ <head> <title>CSS Reference: Test for top:calc() on absolutely positioned elements</title> <link rel="author" title="L. David Baron" href="https://dbaron.org/">- <meta name="flags" content=""> <style type="text/css"> body { margin: 0 } body > div { float: left; height: 100px; width: 3px; }
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 3] Old Code: `<meta name="flags" content="">` Fixed Code: (line removed) Additional Details: - The diff shows removal of an empty meta tag with "flags" attribute, which doesn't appear to be security-related - This appears to be a test file cleanup rather than a security fix - No known vulnerabilities are associated with this change - The change doesn't affect any security-sensitive functionality Note: The file is a CSS reference test file, and the change is minor metadata removal that doesn't impact security.
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/include/jxl/codestream_header.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/jpeg-xl/lib/include/jxl/codestream_header.h@@ -72,6 +72,15 @@ uint32_t ysize; } JxlPreviewHeader;+/** The intrinsic size header */+typedef struct {+ /** Intrinsic width in pixels */+ uint32_t xsize;++ /** Intrinsic height in pixels */+ uint32_t ysize;+} JxlIntrinsicSizeHeader;+ /** The codestream animation header, optionally present in the beginning of * the codestream, and if it is it applies to all animation frames, unlike * JxlFrameHeader which applies to an individual frame.@@ -232,10 +241,26 @@ */ JxlAnimationHeader animation;+ /** Intrinsic width of the image.+ * The intrinsic size can be different from the actual size in pixels+ * (as given by xsize and ysize) and it denotes the recommended dimensions+ * for displaying the image, i.e. applications are advised to resample the+ * decoded image to the intrinsic dimensions.+ */+ uint32_t intrinsic_xsize;++ /** Intrinsic heigth of the image.+ * The intrinsic size can be different from the actual size in pixels+ * (as given by xsize and ysize) and it denotes the recommended dimensions+ * for displaying the image, i.e. applications are advised to resample the+ * decoded image to the intrinsic dimensions.+ */+ uint32_t intrinsic_ysize;+ /** Padding for forwards-compatibility, in case more fields are exposed * in a future version of the library. */- uint8_t padding[108];+ uint8_t padding[100]; } JxlBasicInfo; /** Information for a single extra channel.@@ -290,7 +315,7 @@ } JxlHeaderExtensions; /** Frame blend modes.- * If coalescing is enabled (default), this can be ignored.+ * When decoding, if coalescing is enabled (default), this can be ignored. */ typedef enum { JXL_BLEND_REPLACE = 0,@@ -301,11 +326,12 @@ } JxlBlendMode; /** The information about blending the color channels or a single extra channel.- * If coalescing is enabled (default), this can be ignored.+ * When decoding, if coalescing is enabled (default), this can be ignored and+ * the blend mode is considered to be JXL_BLEND_REPLACE.+ * When encoding, these settings apply to the pixel data given to the encoder. */ typedef struct { /** Blend mode.- * Always equal to JXL_BLEND_REPLACE if coalescing is enabled. */ JxlBlendMode blendmode; /** Reference frame ID to use as the 'bottom' layer (0-3).@@ -321,32 +347,43 @@ } JxlBlendInfo; /** The information about layers.- * If coalescing is enabled (default), this can be ignored.- */-typedef struct {- /** Horizontal offset of the frame (can be negative, always zero if coalescing- * is enabled)+ * When decoding, if coalescing is enabled (default), this can be ignored.+ * When encoding, these settings apply to the pixel data given to the encoder,+ * the encoder could choose an internal representation that differs.+ */+typedef struct {+ /** Whether cropping is applied for this frame. When decoding, if false,+ * crop_x0 and crop_y0 are set to zero, and xsize and ysize to the main+ * image dimensions. When encoding and this is false, those fields are+ * ignored. When decoding, if coalescing is enabled (default), this is always+ * false, regardless of the internal encoding in the JPEG XL codestream.+ */+ JXL_BOOL have_crop;++ /** Horizontal offset of the frame (can be negative). */ int32_t crop_x0;- /** Vertical offset of the frame (can be negative, always zero if coalescing- * is enabled)++ /** Vertical offset of the frame (can be negative). */ int32_t crop_y0;- /** Width of the frame (number of columns, always equal to image width if- * coalescing is enabled)++ /** Width of the frame (number of columns). */ uint32_t xsize;- /** Height of the frame (number of rows, always equal to image height if- * coalescing is enabled)++ /** Height of the frame (number of rows). */ uint32_t ysize;+ /** The blending info for the color channels. Blending info for extra channels * has to be retrieved separately using JxlDecoderGetExtraChannelBlendInfo. */ JxlBlendInfo blend_info;+ /** After blending, save the frame as reference frame with this ID (0-3). * Special case: if the frame duration is nonzero, ID 0 means "will not be- * referenced in the future".+ * referenced in the future". This value is not used for the last frame. */ uint32_t save_as_reference; } JxlLayerInfo;@@ -369,11 +406,16 @@ uint32_t timecode; /** Length of the frame name in bytes, or 0 if no name.- * Excludes null termination character.+ * Excludes null termination character. This value is set by the decoder.+ * For the encoder, this value is ignored and @ref JxlEncoderSetFrameName is+ * used instead to set the name and the length. */ uint32_t name_length;- /** Indicates this is the last animation frame.+ /** Indicates this is the last animation frame. This value is set by the+ * decoder to indicate no further frames follow. For the encoder, it is not+ * required to set this value and it is ignored, @ref JxlEncoderCloseFrames is+ * used to indicate the last frame to the encoder instead. */ JXL_BOOL is_last;
After analyzing the provided code diff, I don't find any clear security vulnerabilities being fixed. The changes appear to be primarily feature additions and documentation improvements rather than security fixes. Here's my analysis: 1. Vulnerability Existed: no No security vulnerability found. The changes mainly add intrinsic size support and improve documentation. 2. Vulnerability Existed: no No security vulnerability found. The padding reduction from 108 to 100 bytes is due to the addition of intrinsic size fields, not a security fix. 3. Vulnerability Existed: no No security vulnerability found. The documentation improvements clarify behavior but don't indicate any security issues being addressed. The changes include: 1. Addition of JxlIntrinsicSizeHeader structure 2. Addition of intrinsic_xsize and intrinsic_ysize fields to JxlBasicInfo 3. Adjustment of padding size in JxlBasicInfo 4. Numerous documentation improvements clarifying behavior for encoding/decoding 5. Addition of have_crop field to JxlLayerInfo 6. Clarifications about frame naming and last frame handling None of these changes appear to be addressing security vulnerabilities, but rather adding features and improving API documentation.
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/preferences/privacy.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/components/preferences/privacy.js@@ -199,6 +199,14 @@ { id: PREF_UPLOAD_ENABLED, type: "bool" }, ]); }+// Privacy segmentation section+Preferences.addAll([+ {+ id: "browser.privacySegmentation.preferences.show",+ type: "bool",+ },+ { id: "browser.privacySegmentation.enabled", type: "bool" },+]); // Data Choices tab if (AppConstants.MOZ_CRASHREPORTER) {@@ -760,8 +768,9 @@ .setAttribute("href", windowsSSOURL); }+ this.initDataCollection();+ if (AppConstants.MOZ_DATA_REPORTING) {- this.initDataCollection(); if (AppConstants.MOZ_CRASHREPORTER) { this.initSubmitCrashes(); }@@ -2624,10 +2633,24 @@ }, initDataCollection() {+ if (+ !AppConstants.MOZ_DATA_REPORTING &&+ !Services.prefs.getBoolPref(+ "browser.privacySegmentation.preferences.show",+ false+ )+ ) {+ // Nothing to control in the data collection section, remove it.+ document.getElementById("dataCollectionCategory").remove();+ document.getElementById("dataCollectionGroup").remove();+ return;+ }+ this._setupLearnMoreLink( "toolkit.datacollection.infoURL", "dataCollectionPrivacyNotice" );+ this.initPrivacySegmentation(); }, initSubmitCrashes() {@@ -2642,6 +2665,33 @@ const checkboxId = event.target.getAttribute("for"); document.getElementById(checkboxId).click(); });+ },++ initPrivacySegmentation() {+ // Learn more link+ document+ .getElementById("privacy-segmentation-learn-more-link")+ .setAttribute(+ "href",+ Services.urlFormatter.formatURLPref("app.support.baseURL") ++ Services.prefs.getStringPref(+ "browser.privacySegmentation.preferences.learnMoreURLSuffix"+ )+ );++ // Section visibility+ let visibilityPref = Preferences.get(+ "browser.privacySegmentation.preferences.show"+ );+ let section = document.getElementById("privacySegmentationSection");+ let updatePrivacySegmentationSectionVisibilityState = () => {+ section.hidden = !visibilityPref.value;+ };+ visibilityPref.on(+ "change",+ updatePrivacySegmentationSectionVisibilityState+ );+ updatePrivacySegmentationSectionVisibilityState(); }, /**
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: no No specific vulnerability was fixed in this diff. The changes primarily involve adding new privacy segmentation preferences and reorganizing data collection initialization logic. 2. Vulnerability Existed: not sure Potential Information Exposure [File] browser/components/preferences/privacy.js [Lines] 199-206, 2624-2698 [Old Code] No privacy segmentation preferences or initialization code existed [Fixed Code] Added new preferences and initialization for privacy segmentation features: ```javascript Preferences.addAll([ { id: "browser.privacySegmentation.preferences.show", type: "bool", }, { id: "browser.privacySegmentation.enabled", type: "bool" }, ]); ``` and ```javascript initPrivacySegmentation() { // Learn more link document .getElementById("privacy-segmentation-learn-more-link") .setAttribute( "href", Services.urlFormatter.formatURLPref("app.support.baseURL") + Services.prefs.getStringPref( "browser.privacySegmentation.preferences.learnMoreURLSuffix" ) ); // ... rest of the function } ``` Note: While no direct security vulnerabilities were fixed, the changes introduce new privacy-related controls and could potentially affect how user data is handled. The "not sure" classification is due to the possibility that these changes might impact data collection behaviors, though no specific vulnerability is evident in the diff. The main changes appear to be feature additions rather than security fixes, with: 1. New privacy segmentation preferences being added 2. Reorganization of data collection initialization 3. Addition of privacy segmentation section control logic 4. New method for initializing privacy segmentation UI components
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-values/calc-padding-block-1-ref.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-values/calc-padding-block-1-ref.html@@ -3,7 +3,6 @@ <head> <title>CSS Reference: Test of padding-*: calc()</title> <link rel="author" title="L. David Baron" href="https://dbaron.org/">- <meta name="flags" content=""> <style type="text/css"> body { width: 500px }
I'll analyze the provided code diff according to the specified format. Vulnerability Existed: no [No specific vulnerability] [testing/web-platform/tests/css/css-values/calc-padding-block-1-ref.html] [Lines 3-6] [Old Code] <title>CSS Reference: Test of padding-*: calc()</title> <link rel="author" title="L. David Baron" href="https://dbaron.org/"> <meta name="flags" content=""> <style type="text/css"> [Fixed Code] <title>CSS Reference: Test of padding-*: calc()</title> <link rel="author" title="L. David Baron" href="https://dbaron.org/"> <style type="text/css"> Additional Details: The change simply removes an empty meta tag with a "flags" attribute. This doesn't appear to be a security fix but rather a cleanup of unnecessary markup. There's no indication of any security vulnerability being addressed by this change. The "flags" meta tag was likely used for test configuration and its removal doesn't impact security.
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/text/2d.text.draw.fill.maxWidth.fontface.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.draw.fill.maxWidth.fontface.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 f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); let fonts = (self.fonts ? self.fonts : document.fonts);@@ -26,10 +26,10 @@ ctx.fillRect(0, 0, 100, 50); ctx.fillStyle = '#f00'; ctx.fillText('EEEE', -50, 37.5, 40);- _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 95,5, 0,255,0,255, "95,5", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255", 2); }).then(t_pass, t_fail); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and corresponding updates to the variable name in the assertions. Here's the analysis: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 13-14, 26-29] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _assertPixelApprox(offscreenCanvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _assertPixelApprox(canvas, 5,5, 0,255,0,255, "5,5", "0,255,0,255", 2); The changes are purely cosmetic/refactoring in nature and don't appear to address any security issues. The functionality remains identical, only the variable name has been changed for consistency or clarity.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/tests/mochitest/general/test_interfaces.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/tests/mochitest/general/test_interfaces.js@@ -65,6 +65,16 @@ { name: "RuntimeError", insecureContext: true }, { name: "Function",+ insecureContext: true,+ nightly: true,+ },+ {+ name: "Exception",+ insecureContext: true,+ nightly: true,+ },+ {+ name: "Tag", insecureContext: true, nightly: true, },@@ -486,7 +496,7 @@ // IMPORTANT: Do not change this list without review from a DOM peer! { name: "HTMLDetailsElement", insecureContext: true }, // IMPORTANT: Do not change this list without review from a DOM peer!- { name: "HTMLDialogElement", insecureContext: true, nightly: true },+ { name: "HTMLDialogElement", insecureContext: true }, // IMPORTANT: Do not change this list without review from a DOM peer! { name: "HTMLDirectoryElement", insecureContext: true }, // IMPORTANT: Do not change this list without review from a DOM peer!
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Exposure of Sensitive Interfaces] [dom/tests/mochitest/general/test_interfaces.js] [Lines 65-75] [Old Code] ```javascript { name: "Function", insecureContext: true, nightly: true }, ``` [Fixed Code] ```javascript { name: "Function", insecureContext: true, nightly: true }, { name: "Exception", insecureContext: true, nightly: true }, { name: "Tag", insecureContext: true, nightly: true }, ``` Additional Details: The diff shows new interfaces being added with `insecureContext: true` and `nightly: true` flags. While not clearly a security vulnerability, exposing new interfaces in insecure contexts could potentially introduce security risks if these interfaces provide sensitive functionality. 2. Vulnerability Existed: not sure [Potential Overexposure of Interface] [dom/tests/mochitest/general/test_interfaces.js] [Line 486] [Old Code] ```javascript { name: "HTMLDialogElement", insecureContext: true, nightly: true }, ``` [Fixed Code] ```javascript { name: "HTMLDialogElement", insecureContext: true }, ``` Additional Details: The removal of the `nightly: true` flag for HTMLDialogElement suggests this interface is now considered stable for insecure contexts. While not clearly a security fix, this change might indicate previous security concerns about exposing this interface in insecure contexts have been addressed. Note: Since this is a test file, the changes might not represent actual security fixes but rather test coverage updates. The actual security implications would depend on how these interfaces are implemented and used in the browser.
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/taskcluster/gecko_taskgraph/target_tasks.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/taskcluster/gecko_taskgraph/target_tasks.py@@ -8,8 +8,9 @@ import re from redo import retry+from taskgraph.parameters import Parameters+ from gecko_taskgraph import try_option_syntax-from gecko_taskgraph.parameters import Parameters from gecko_taskgraph.util.attributes import ( match_run_on_projects, match_run_on_hg_branches,@@ -42,7 +43,7 @@ r"-profiling-", # talos/raptor profiling jobs are run too often # Hide shippable versions of tests we have opt versions of because the non-shippable # versions are faster to run. This is mostly perf tests.- r"-shippable(?!.*(awsy|browsertime|marionette-headless|mochitest-devtools-chrome-fis|raptor|talos|web-platform-tests-wdspec-headless))", # noqa - too long+ r"-shippable(?!.*(awsy|browsertime|marionette-headless|mochitest-devtools-chrome-fis|raptor|talos|web-platform-tests-wdspec-headless|mochitest-plain-headless))", # noqa - too long ]@@ -705,6 +706,18 @@ """Select the set of tasks required to ship geckoview nightly. The nightly build process involves a pipeline of builds and an upload to maven.mozilla.org."""+ index_path = (+ f"{graph_config['trust-domain']}.v2.{parameters['project']}.revision."+ f"{parameters['head_rev']}.taskgraph.decision-ship-geckoview"+ )+ if os.environ.get("MOZ_AUTOMATION") and retry(+ index_exists,+ args=(index_path,),+ kwargs={+ "reason": "to avoid triggering multiple nightlies off the same revision",+ },+ ):+ return [] def filter(task): # XXX Starting 69, we don't ship Fennec Nightly anymore. We just want geckoview to be
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Information Disclosure] [taskcluster/gecko_taskgraph/target_tasks.py] [Lines 8-9] [Old Code] from gecko_taskgraph import try_option_syntax from gecko_taskgraph.parameters import Parameters [Fixed Code] from redo import retry from taskgraph.parameters import Parameters from gecko_taskgraph import try_option_syntax Additional Details: The import order change might be related to preventing potential circular imports or dependency issues, but it's unclear if this has any security implications. 2. Vulnerability Existed: not sure [Regular Expression Expansion] [taskcluster/gecko_taskgraph/target_tasks.py] [Lines 42-43] [Old Code] r"-shippable(?!.*(awsy|browsertime|marionette-headless|mochitest-devtools-chrome-fis|raptor|talos|web-platform-tests-wdspec-headless))" [Fixed Code] r"-shippable(?!.*(awsy|browsertime|marionette-headless|mochitest-devtools-chrome-fis|raptor|talos|web-platform-tests-wdspec-headless|mochitest-plain-headless))" Additional Details: The change adds "mochitest-plain-headless" to the exclusion list in the regular expression. While this improves test coverage, it's unclear if this fixes any specific security vulnerability. 3. Vulnerability Existed: yes [Race Condition Prevention] [taskcluster/gecko_taskgraph/target_tasks.py] [Lines 705-718] [Old Code] """Select the set of tasks required to ship geckoview nightly. The nightly build process involves a pipeline of builds and an upload to maven.mozilla.org.""" [Fixed Code] """Select the set of tasks required to ship geckoview nightly. The nightly build process involves a pipeline of builds and an upload to maven.mozilla.org.""" index_path = ( f"{graph_config['trust-domain']}.v2.{parameters['project']}.revision." f"{parameters['head_rev']}.taskgraph.decision-ship-geckoview" ) if os.environ.get("MOZ_AUTOMATION") and retry( index_exists, args=(index_path,), kwargs={ "reason": "to avoid triggering multiple nightlies off the same revision", }, ): return [] Additional Details: The added code prevents race conditions by checking if a task for the same revision already exists before proceeding with the build process. This could prevent duplicate builds and potential security issues from inconsistent build states. Note: While some changes might not be directly security-related, they could have security implications in the broader context of the build system. The most clearly security-relevant change is the race condition prevention in the third item.
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/filters/2d.filter.canvasFilterObject.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); _assert(ctx.filter == 'none', "ctx.filter == 'none'"); ctx.filter = 'blur(5px)';
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 13-14] [Old Code] ```javascript var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ``` [Fixed Code] ```javascript var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ``` Additional Details: The change appears to be a variable renaming from `offscreenCanvas` to `canvas` for consistency or readability, with no security implications. Note: The diff shows only a variable name change with no apparent security impact. No known vulnerabilities are addressed by this change. The rest of the file context (filter operations) remains unchanged and doesn't show any 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/filter-effects/filter-contrast-002.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/filter-effects/filter-contrast-002.html@@ -7,7 +7,6 @@ <link rel="help" href="http://www.w3.org/TR/filter-effects-1/#FilterProperty"> <link rel="help" href="https://www.w3.org/TR/filter-effects-1/#funcdef-filter-contrast"> <link rel="match" href="filter-contrast-002-ref.html">- <meta name="flags" content=""> <meta name="assert" content="CSS contrast filter will apply a component transfer to the div element to adjust the contrast of the colors. Since contrast is 0%, it must be the completely gray."> <style type="text/css">
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found [File] testing/web-platform/tests/css/filter-effects/filter-contrast-002.html [Lines] 7 [Old Code] <meta name="flags" content=""> [Fixed Code] (line removed) Additional Notes: - The diff shows only the removal of 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 addressed by this change - The modification doesn't involve any security-sensitive operations or potentially dangerous content
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/protocol/http/nsHttp.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/netwerk/protocol/http/nsHttp.cpp@@ -970,10 +970,21 @@ return rv; }-SupportedAlpnType IsAlpnSupported(const nsACString& aAlpn) {- if (gHttpHandler->IsHttp3Enabled() &&+SupportedAlpnRank H3VersionToRank(const nsACString& aVersion) {+ for (uint32_t i = 0; i < kHttp3VersionCount; i++) {+ if (aVersion.Equals(kHttp3Versions[i])) {+ return static_cast<SupportedAlpnRank>(+ static_cast<uint32_t>(SupportedAlpnRank::HTTP_3_DRAFT_29) + i);+ }+ }++ return SupportedAlpnRank::NOT_SUPPORTED;+}++SupportedAlpnRank IsAlpnSupported(const nsACString& aAlpn) {+ if (StaticPrefs::network_http_http3_enable() && gHttpHandler->IsHttp3VersionSupported(aAlpn)) {- return SupportedAlpnType::HTTP_3;+ return H3VersionToRank(aAlpn); } if (gHttpHandler->IsSpdyEnabled()) {@@ -981,15 +992,15 @@ SpdyInformation* spdyInfo = gHttpHandler->SpdyInfo(); if (NS_SUCCEEDED(spdyInfo->GetNPNIndex(aAlpn, &spdyIndex)) && spdyInfo->ProtocolEnabled(spdyIndex)) {- return SupportedAlpnType::HTTP_2;+ return SupportedAlpnRank::HTTP_2; } } if (aAlpn.LowerCaseEqualsASCII("http/1.1")) {- return SupportedAlpnType::HTTP_1_1;- }-- return SupportedAlpnType::NOT_SUPPORTED;+ return SupportedAlpnRank::HTTP_1_1;+ }++ return SupportedAlpnRank::NOT_SUPPORTED; } bool SecurityErrorToBeHandledByTransaction(nsresult aReason) {
I'll analyze the code diff for security fixes following the specified format. Vulnerability Existed: not sure [Potential HTTP/3 Version Handling Improvement] [netwerk/protocol/http/nsHttp.cpp] [Lines 970-992] [Old Code] SupportedAlpnType IsAlpnSupported(const nsACString& aAlpn) { if (gHttpHandler->IsHttp3Enabled() && gHttpHandler->IsHttp3VersionSupported(aAlpn)) { return SupportedAlpnType::HTTP_3; } [Fixed Code] SupportedAlpnRank IsAlpnSupported(const nsACString& aAlpn) { if (StaticPrefs::network_http_http3_enable() && gHttpHandler->IsHttp3VersionSupported(aAlpn)) { return H3VersionToRank(aAlpn); } Additional Details: 1. The change involves more granular handling of HTTP/3 versions through the new H3VersionToRank function 2. The return type changed from SupportedAlpnType to SupportedAlpnRank 3. The HTTP/3 check now uses StaticPrefs::network_http_http3_enable() instead of gHttpHandler->IsHttp3Enabled() Vulnerability Existed: not sure [HTTP/2 and HTTP/1.1 Return Type Change] [netwerk/protocol/http/nsHttp.cpp] [Lines 981-992] [Old Code] return SupportedAlpnType::HTTP_2; } } if (aAlpn.LowerCaseEqualsASCII("http/1.1")) { return SupportedAlpnType::HTTP_1_1; } return SupportedAlpnType::NOT_SUPPORTED; [Fixed Code] return SupportedAlpnRank::HTTP_2; } } if (aAlpn.LowerCaseEqualsASCII("http/1.1")) { return SupportedAlpnRank::HTTP_1_1; } return SupportedAlpnRank::NOT_SUPPORTED; Additional Details: 1. The return types for all protocol versions were changed from SupportedAlpnType to SupportedAlpnRank 2. This appears to be part of a larger refactoring to support more granular version handling 3. No direct security vulnerability is apparent, but the change might be related to future security improvements Note: While no specific vulnerability is identified, these changes appear to be part of a security-conscious refactoring to better handle protocol versions, particularly for HTTP/3. The introduction of version ranking could help prevent downgrade attacks or ensure proper version negotiation.
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.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.object.set.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 imgdata = ctx.getImageData(0, 0, 10, 10); imgdata.data[0] = 100;
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.object.set.worker.js [Lines] 13-14 Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Details: - The change appears to be a simple variable renaming from 'offscreenCanvas' to 'canvas' - No security-related changes or vulnerability fixes are evident in this diff - The modification doesn't affect the functionality or security of the code - 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/python/mozbuild/mozbuild/dotproperties.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/python/mozbuild/mozbuild/dotproperties.py@@ -2,8 +2,7 @@ # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/.-# This file contains utility functions for reading .properties files, like-# region.properties.+# This file contains utility functions for reading .properties files from __future__ import absolute_import, print_function, unicode_literals
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [File] python/mozbuild/mozbuild/dotproperties.py [Lines] 2-3 [Old Code] # This file contains utility functions for reading .properties files, like # region.properties. [Fixed Code] # This file contains utility functions for reading .properties files Additional Details: - The change appears to be purely a documentation/comment update - No functional code changes were made - No security-related patterns were modified - The update simplifies the comment without changing any functionality Since this is only a comment change and doesn't affect any actual code execution, there are no security vulnerabilities introduced or fixed in this diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/selectors/old-tests/css3-modsel-56.xml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/selectors/old-tests/css3-modsel-56.xml@@ -8,7 +8,6 @@ <link rel="author" title="Daniel Glazman" href="http://glazman.org/"/> <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"/> <!-- bogus link to make sure it gets found --> <link rel="match" href="reference/three-paragraph-lime-characters.xht"/>- <meta name="flags" content="" /> </head> <body> <div class="stub">
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 8] [Old Code] <meta name="flags" content="" /> [Fixed Code] (line removed) Additional Details: - The diff shows removal of an empty meta tag with "flags" attribute. This doesn't appear to be a security fix but rather a cleanup of unnecessary markup. - No known vulnerabilities are associated with this change. - The modification is in a test file (css3-modsel-56.xml) and appears to be test infrastructure maintenance 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/layout/tables/nsTableColFrame.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/tables/nsTableColFrame.cpp@@ -188,8 +188,9 @@ bool aRebuildDisplayItems) { nsIFrame::InvalidateFrame(aDisplayItemKey, aRebuildDisplayItems); if (GetTableFrame()->IsBorderCollapse()) {+ const bool rebuild = StaticPrefs::layout_display_list_retain_sc(); GetParent()->InvalidateFrameWithRect(InkOverflowRect() + GetPosition(),- aDisplayItemKey, false);+ aDisplayItemKey, rebuild); } }@@ -203,5 +204,5 @@ // we get an inactive layer created and this is computed // within FrameLayerBuilder GetParent()->InvalidateFrameWithRect(aRect + GetPosition(), aDisplayItemKey,- false);-}+ aRebuildDisplayItems);+}
Here's the analysis of the provided code diff following the specified format: Vulnerability Existed: not sure Potential Incorrect Display List Handling [File] layout/tables/nsTableColFrame.cpp [Lines 188-204] [Old Code] GetParent()->InvalidateFrameWithRect(InkOverflowRect() + GetPosition(), aDisplayItemKey, false); ... GetParent()->InvalidateFrameWithRect(aRect + GetPosition(), aDisplayItemKey, false); [Fixed Code] const bool rebuild = StaticPrefs::layout_display_list_retain_sc(); GetParent()->InvalidateFrameWithRect(InkOverflowRect() + GetPosition(), aDisplayItemKey, rebuild); ... GetParent()->InvalidateFrameWithRect(aRect + GetPosition(), aDisplayItemKey, aRebuildDisplayItems); Additional Details: - The changes modify how frame invalidation is handled in table column frames - The fix makes the rebuild behavior dependent on a preference (layout_display_list_retain_sc) and passes through the aRebuildDisplayItems parameter - While this appears to be a bug fix for proper display list handling, it's unclear if this was an actual security vulnerability or just a functional bug - The changes could potentially affect rendering security if improper display list handling could lead to information leaks or rendering artifacts, 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/dom/indexedDB/IDBObjectStore.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/indexedDB/IDBObjectStore.cpp@@ -774,18 +774,29 @@ StructuredCloneWriteInfo cloneWriteInfo(mTransaction->Database()); nsTArray<IndexUpdateInfo> updateInfos;- {- const auto autoStateRestore =- mTransaction->TemporarilyTransitionToInactive();- GetAddInfo(aCx, aValueWrapper, aKey, cloneWriteInfo, key, updateInfos, aRv);+ // According to spec https://w3c.github.io/IndexedDB/#clone-value,+ // the transaction must be in inactive state during clone+ mTransaction->TransitionToInactive();++#ifdef DEBUG+ const uint32_t previousPendingRequestCount{+ mTransaction->GetPendingRequestCount()};+#endif+ GetAddInfo(aCx, aValueWrapper, aKey, cloneWriteInfo, key, updateInfos, aRv);+ // Check that new requests were rejected in the Inactive state+ // and possibly in the Finished state, if the transaction has been aborted,+ // during the structured cloning.+ MOZ_ASSERT(mTransaction->GetPendingRequestCount() ==+ previousPendingRequestCount);++ if (!mTransaction->IsAborted()) {+ mTransaction->TransitionToActive();+ } else if (!aRv.Failed()) {+ aRv.Throw(NS_ERROR_DOM_INDEXEDDB_ABORT_ERR);+ return nullptr; // It is mandatory to return right after throw } if (aRv.Failed()) {- return nullptr;- }-- if (!mTransaction->IsActive()) {- aRv.Throw(NS_ERROR_DOM_INDEXEDDB_TRANSACTION_INACTIVE_ERR); return nullptr; }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: yes Transaction State Handling Vulnerability [dom/indexedDB/IDBObjectStore.cpp] [Lines 774-798] [Old Code] { const auto autoStateRestore = mTransaction->TemporarilyTransitionToInactive(); GetAddInfo(aCx, aValueWrapper, aKey, cloneWriteInfo, key, updateInfos, aRv); } [Fixed Code] // According to spec https://w3c.github.io/IndexedDB/#clone-value, // the transaction must be in inactive state during clone mTransaction->TransitionToInactive(); #ifdef DEBUG const uint32_t previousPendingRequestCount{ mTransaction->GetPendingRequestCount()}; #endif GetAddInfo(aCx, aValueWrapper, aKey, cloneWriteInfo, key, updateInfos, aRv); // Check that new requests were rejected in the Inactive state // and possibly in the Finished state, if the transaction has been aborted, // during the structured cloning. MOZ_ASSERT(mTransaction->GetPendingRequestCount() == previousPendingRequestCount); if (!mTransaction->IsAborted()) { mTransaction->TransitionToActive(); } else if (!aRv.Failed()) { aRv.Throw(NS_ERROR_DOM_INDEXEDDB_ABORT_ERR); return nullptr; // It is mandatory to return right after throw } Additional Details: - The fix addresses proper transaction state handling during structured cloning operations in IndexedDB - The old code used a temporary state transition that didn't properly enforce the inactive state requirements during cloning - The new code explicitly transitions to inactive state before cloning and adds proper state validation - Added debug assertions to verify no new requests were accepted during inactive state - Added proper error handling for aborted transactions - The fix ensures compliance with the IndexedDB specification regarding cloning operations The vulnerability could have potentially allowed: 1. Race conditions if new requests were processed during cloning 2. Inconsistent state if transactions weren't properly handled after abort 3. Violation of IndexedDB specification requirements for cloning operations
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/js/src/vm/HelperThreads.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/vm/HelperThreads.h@@ -185,6 +185,9 @@ bool HasOffThreadIonCompile(JS::Realm* realm); #endif+// True iff the current thread is a ParseTask or a DelazifyTask.+bool CurrentThreadIsParseThread();+ /* * Cancel all scheduled, in progress or finished parses for runtime. *@@ -194,6 +197,12 @@ * for tasks to complete. */ void CancelOffThreadParses(JSRuntime* runtime);++/*+ * Cancel all scheduled or in progress eager delazification phases for a+ * runtime.+ */+void CancelOffThreadDelazify(JSRuntime* runtime); /* * Start a parse/emit cycle for a stream of source. The characters must stay
Here's my analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Thread Safety Issue] [js/src/vm/HelperThreads.h] [Lines 185-197] [Old Code] bool HasOffThreadIonCompile(JS::Realm* realm); #endif [Fixed Code] bool HasOffThreadIonCompile(JS::Realm* realm); #endif // True iff the current thread is a ParseTask or a DelazifyTask. bool CurrentThreadIsParseThread(); Additional Details: The addition of CurrentThreadIsParseThread() suggests potential thread safety concerns being addressed, but without seeing the implementation or more context, I can't be certain of a specific vulnerability. 2. Vulnerability Existed: not sure [Potential Resource Management Issue] [js/src/vm/HelperThreads.h] [Lines 194-197] [Old Code] void CancelOffThreadParses(JSRuntime* runtime); [Fixed Code] void CancelOffThreadParses(JSRuntime* runtime); /* * Cancel all scheduled or in progress eager delazification phases for a * runtime. */ void CancelOffThreadDelazify(JSRuntime* runtime); Additional Details: The addition of CancelOffThreadDelazify() suggests improved resource cleanup for delazification tasks, which might address potential resource leaks or hanging tasks, but without more context, I can't confirm a specific vulnerability. Note: The diff shows additions of new thread-related functions but doesn't show any direct security fixes to existing vulnerable code. The changes appear to be adding new capabilities for better thread management, which might be related to security improvements, but without more context about the implementation or specific vulnerabilities being addressed, I can't be certain.
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/SandboxSettings.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/security/sandbox/common/SandboxSettings.h@@ -6,6 +6,8 @@ #ifndef mozilla_SandboxSettings_h #define mozilla_SandboxSettings_h #include <cinttypes>++#include "nsIXULRuntime.h" #ifdef __OpenBSD__ # include "nsXULAppAPI.h"@@ -23,17 +25,12 @@ // Checks whether the effective content sandbox level is > 0. bool IsContentSandboxEnabled();-enum class ContentWin32kLockdownState : int32_t {- LockdownEnabled = 1,- MissingWebRender,- OperatingSystemNotSupported,- PrefNotSet,-};+const char* ContentWin32kLockdownStateToString(+ nsIXULRuntime::ContentWin32kLockdownState aValue);-const char* ContentWin32kLockdownStateToString(- ContentWin32kLockdownState aValue);+bool GetContentWin32kLockdownEnabled();-ContentWin32kLockdownState GetContentWin32kLockdownState();+nsIXULRuntime::ContentWin32kLockdownState GetContentWin32kLockdownState(); #if defined(XP_MACOSX) int ClampFlashSandboxLevel(const int aLevel);
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Information Leak or State Mismanagement] [security/sandbox/common/SandboxSettings.h] [Lines 23-31] [Old Code] ```cpp enum class ContentWin32kLockdownState : int32_t { LockdownEnabled = 1, MissingWebRender, OperatingSystemNotSupported, PrefNotSet, }; const char* ContentWin32kLockdownStateToString( ContentWin32kLockdownState aValue); ContentWin32kLockdownState GetContentWin32kLockdownState(); ``` [Fixed Code] ```cpp const char* ContentWin32kLockdownStateToString( nsIXULRuntime::ContentWin32kLockdownState aValue); bool GetContentWin32kLockdownEnabled(); nsIXULRuntime::ContentWin32kLockdownState GetContentWin32kLockdownState(); ``` Additional Details: The change moves the ContentWin32kLockdownState enum to nsIXULRuntime namespace and adds a new helper function GetContentWin32kLockdownEnabled(). This could be related to better state management or preventing information leaks through enum values, but without more context, we can't be certain. 2. Vulnerability Existed: not sure [Potential Header Inclusion Issue] [security/sandbox/common/SandboxSettings.h] [Lines 6] [Old Code] ```cpp #include <cinttypes> ``` [Fixed Code] ```cpp #include <cinttypes> #include "nsIXULRuntime.h" ``` Additional Details: The addition of nsIXULRuntime.h header might be related to fixing a potential compilation issue or missing dependency, but it's unclear if this was security-related. Note: While the changes appear to be related to security (Win32k lockdown functionality), without more context about the specific vulnerabilities being addressed or the threat model, we can't definitively identify specific vulnerabilities that were fixed. The changes seem to be more about code organization and interface improvements rather than patching specific security holes.
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.