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/taskcluster/ci/toolchain/rust.yml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/taskcluster/ci/toolchain/rust.yml@@ -26,11 +26,11 @@ ] fetches: toolchain:- - linux64-clang+ - linux64-clang-toolchain linux64-rust-1.57: treeherder:- symbol: TL(rust)+ symbol: TL(rust-1.57) run: arguments: [ '--channel', '1.57.0',@@ -41,10 +41,27 @@ '--target', 'wasm32-wasi', '--compiler-builtins-hack', ]+ fetches:+ toolchain:+ - linux64-clang-toolchain++linux64-rust-1.58:+ treeherder:+ symbol: TL(rust)+ run:+ arguments: [+ '--channel', '1.58.0',+ '--host', 'x86_64-unknown-linux-gnu',+ '--target', 'x86_64-unknown-linux-gnu',+ '--target', 'i686-unknown-linux-gnu',+ '--target', 'aarch64-unknown-linux-gnu',+ '--target', 'wasm32-wasi',+ '--compiler-builtins-hack',+ ] toolchain-alias: linux64-rust fetches: toolchain:- - linux64-clang+ - linux64-clang-toolchain # A patched rust toolchain that allows us to use sanitizers in our vendored # build environment. See the rust fetch's comments for more details.@@ -64,19 +81,19 @@ ] fetches: fetch:- - rust-1.58.0-dev- toolchain:- - linux64-clang+ - rust-1.59.0-dev+ toolchain:+ - linux64-clang-toolchain - linux64-binutils-linux64-rust-cross-1.57:+linux64-rust-cross-1.58: description: "rust repack with macos and windows cross support" treeherder: symbol: TL(rust-cross) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-unknown-linux-gnu', '--target', 'i686-unknown-linux-gnu',@@ -93,13 +110,13 @@ ] toolchain-alias: linux64-rust-cross-linux64-rust-static-1.57:+linux64-rust-static-1.58: description: "rust repack with static linking support" treeherder: symbol: TL(rust-static) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-unknown-linux-musl',@@ -120,15 +137,28 @@ '--target', 'x86_64-apple-darwin', '--target', 'aarch64-apple-darwin', ]++linux64-rust-macos-1.58:+ description: "rust repack with macos-cross support"+ treeherder:+ symbol: TL(rust-macos-1.58)+ run:+ arguments: [+ '--channel', '1.58.0',+ '--host', 'x86_64-unknown-linux-gnu',+ '--target', 'x86_64-unknown-linux-gnu',+ '--target', 'x86_64-apple-darwin',+ '--target', 'aarch64-apple-darwin',+ ] toolchain-alias: linux64-rust-macos-linux64-rust-android-1.57:+linux64-rust-android-1.58: description: "rust repack with android-cross support" treeherder: symbol: TL(rust-android) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-unknown-linux-gnu', '--target', 'armv7-linux-androideabi',@@ -141,15 +171,28 @@ toolchain-alias: linux64-rust-android fetches: toolchain:- - linux64-clang+ - linux64-clang-toolchain linux64-rust-windows-1.57: description: "rust repack with windows-cross support" treeherder:+ symbol: TL(rust-win-1.57)+ run:+ arguments: [+ '--channel', '1.57.0',+ '--host', 'x86_64-unknown-linux-gnu',+ '--target', 'x86_64-unknown-linux-gnu',+ '--target', 'x86_64-pc-windows-msvc',+ '--target', 'i686-pc-windows-msvc',+ ]++linux64-rust-windows-1.58:+ description: "rust repack with windows-cross support"+ treeherder: symbol: TL(rust-win) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-unknown-linux-gnu', '--target', 'x86_64-pc-windows-msvc',@@ -159,10 +202,22 @@ win64-rust-1.57: treeherder:+ symbol: TW64(rust-1.57)+ run:+ arguments: [+ '--channel', '1.57.0',+ '--host', 'x86_64-pc-windows-msvc',+ '--target', 'x86_64-pc-windows-msvc',+ '--target', 'i686-pc-windows-msvc',+ '--target', 'aarch64-pc-windows-msvc',+ ]++win64-rust-1.58:+ treeherder: symbol: TW64(rust) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-pc-windows-msvc', '--target', 'x86_64-pc-windows-msvc', '--target', 'i686-pc-windows-msvc',@@ -170,23 +225,23 @@ ] toolchain-alias: win64-rust-macosx64-rust-1.57:+macosx64-rust-1.58: treeherder: symbol: TM(rust) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-apple-darwin', '--target', 'x86_64-apple-darwin', ] toolchain-alias: macosx64-rust-mingw32-rust-1.57:+mingw32-rust-1.58: treeherder: symbol: TMW(rust) run: arguments: [- '--channel', '1.57.0',+ '--channel', '1.58.0', '--host', 'x86_64-unknown-linux-gnu', '--target', 'i686-unknown-linux-gnu', '--target', 'i686-pc-windows-gnu',
After analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily version updates and configuration adjustments. Here's my analysis: 1. Vulnerability Existed: no No specific vulnerability found - Version updates and configuration changes File: taskcluster/ci/toolchain/rust.yml Old Code: Various configurations using rust 1.57.0 Fixed Code: Updated to use rust 1.58.0 and 1.59.0-dev 2. Vulnerability Existed: no No specific vulnerability found - Toolchain reference updates File: taskcluster/ci/toolchain/rust.yml Old Code: References to 'linux64-clang' Fixed Code: Updated to 'linux64-clang-toolchain' 3. Vulnerability Existed: no No specific vulnerability found - Symbol naming updates File: taskcluster/ci/toolchain/rust.yml Old Code: Generic symbols like 'TL(rust)' Fixed Code: More specific symbols like 'TL(rust-1.57)' The changes appear to be routine updates rather than security fixes. The version bumps from 1.57.0 to 1.58.0 and 1.59.0-dev might include security fixes from upstream Rust, but the diff itself doesn't show any specific vulnerability being addressed. The toolchain reference changes appear to be naming convention updates rather than security-related modifications.
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.closePath.empty.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.closePath.empty.html@@ -17,15 +17,15 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 100, 50); ctx.closePath(); ctx.fillStyle = '#f00'; ctx.fill();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
Based on the provided diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.closePath.empty.html] [Lines 17-28] 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"); ``` This appears to be a simple variable renaming change (from `offscreenCanvas` to `canvas`) with no security implications. The functionality remains exactly the same, just with a different variable name. There are no apparent security vulnerabilities being 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/css-pseudo/active-selection-025.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-pseudo/active-selection-025.html@@ -8,7 +8,6 @@ <link rel="help" href="https://www.w3.org/TR/css-pseudo-4/#highlight-selectors"> <link rel="match" href="reference/active-selection-025-ref.html">- <meta content="" name="flags"> <meta name="assert" content="In this test, the div::selection selector has no 'color' declaration. The div::selection selector should use the 'color' declaration from the div rule and, for the first letter only, it should use the 'color' declaration from the ::first-letter pseudo-element. Therefore the first letter 'S' should be purple and the rest of the words should be green."> <!--
Based on the provided diff, I'll analyze it for security vulnerabilities: Vulnerability Existed: no No specific vulnerability [File] [Lines 8] <meta content="" name="flags"> [Line removed] Additional Details: - This appears to be a test file modification where a meta tag with empty flags was removed - The change doesn't indicate any security vulnerability fix - The modification seems to be cleaning up unnecessary test markup rather than addressing a security issue - No known vulnerability patterns (XSS, injection, etc.) are present in this change The diff shows a simple removal of an empty meta tag that wasn't serving any functional purpose in the test file. This doesn't appear to be security-related but rather a cleanup of test markup.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/darling/tests/from_type_param.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/darling/tests/from_type_param.rs@@ -1,15 +1,8 @@-#[macro_use]-extern crate darling;-#[macro_use]-extern crate syn;-#[macro_use]-extern crate quote;+use darling::FromTypeParam;+use syn::{parse_quote, DeriveInput, GenericParam, Ident, TypeParam};-use darling::FromTypeParam;-use syn::{DeriveInput, GenericParam, Ident, TypeParam};-+#[derive(FromTypeParam)] #[darling(attributes(lorem), from_ident)]-#[derive(FromTypeParam)] struct Lorem { ident: Ident, bounds: Vec<syn::TypeParamBound>,@@ -36,6 +29,7 @@ } #[test]+#[allow(clippy::bool_assert_comparison)] fn expand_many() { let di: DeriveInput = parse_quote! { struct Baz<
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be primarily code style and organization improvements. Here's my analysis: 1. First change (macro imports): Vulnerability Existed: no Code Organization Improvement [File] [Lines 1-5] [Old Code] #[macro_use] extern crate darling; #[macro_use] extern crate syn; #[macro_use] extern crate quote; [Fixed Code] use darling::FromTypeParam; use syn::{parse_quote, DeriveInput, GenericParam, Ident, TypeParam}; 2. Second change (attribute ordering): Vulnerability Existed: no Code Style Improvement [File] [Lines 7-8] [Old Code] #[darling(attributes(lorem), from_ident)] #[derive(FromTypeParam)] [Fixed Code] #[derive(FromTypeParam)] #[darling(attributes(lorem), from_ident)] 3. Third change (clippy lint): Vulnerability Existed: no Code Quality Improvement [File] [Line 30] [Old Code] #[test] [Fixed Code] #[test] #[allow(clippy::bool_assert_comparison)] The changes are focused on: 1. Modernizing Rust imports (removing extern crate in favor of use statements) 2. Reordering attributes for consistency 3. Adding a clippy lint allowance for code quality None of these changes appear to address security vulnerabilities. They're all related to code style, organization, and quality improvements.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/base/test/test_bug338583.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/base/test/test_bug338583.html@@ -338,7 +338,7 @@ } function doTest3_g(test_id) {- gEventSourceObj3_g = new EventSource("http://hdfskjghsbg.jtiyoejowe.dafsgbhjab.com");+ gEventSourceObj3_g = new EventSource("http://hdfskjghsbg.jtiyoejowe.example.com"); gEventSourceObj3_g.onmessage = fn_onmessage; gEventSourceObj3_g.hits = [];
Analysis of the provided code diff: 1. Vulnerability Existed: yes [Insecure Test Domain Usage] [dom/base/test/test_bug338583.html] [Lines 338] [Old Code] `gEventSourceObj3_g = new EventSource("http://hdfskjghsbg.jtiyoejowe.dafsgbhjab.com");` [Fixed Code] `gEventSourceObj3_g = new EventSource("http://hdfskjghsbg.jtiyoejowe.example.com");` Additional Details: - The vulnerability involves using a potentially real-looking domain (dafsgbhjab.com) in test code, which could be a security risk if the domain becomes registered in the future. - The fix changes it to use the reserved example.com domain, which is safer for testing purposes. - This is more of a best practice than a direct security vulnerability, but could potentially lead to security issues if the test domain became active.
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-170b.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-170b.xml@@ -9,7 +9,6 @@ <link rel="author" title="Ian Hickson" href="mailto:[email protected]"/> <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/this-line-green-color.xht"/>- <meta name="flags" content="" /> </head> <body> <p class="span">This line should be green.</p>
Based on the provided diff, here's the analysis: Vulnerability Existed: no No Security Vulnerability Found [File] [Lines 9] [Old Code] <meta name="flags" content="" /> [Fixed Code] (removed line) Additional Details: - The change simply removes a meta tag with empty flags attribute, which doesn't appear to be security-related - This seems to be a test cleanup rather than a security fix - No known vulnerability is associated with this change - The modification appears to be part of test file maintenance rather than addressing a security issue
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.scale.basic.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.scale.basic.html@@ -17,15 +17,15 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.scale(2, 4); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 50, 12.5);-_assertPixel(offscreenCanvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255");+_assertPixel(canvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely cosmetic/refactoring changes where a variable name was changed from `offscreenCanvas` to `canvas` for consistency or readability purposes. Here's the structured response: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.scale.basic.html] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255"); The changes don't affect any security-related functionality, input validation, or data handling. It's simply a variable renaming with no security implications.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/locks/test/test_strongworker.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/locks/test/test_strongworker.html@@ -7,6 +7,20 @@ SimpleTest.waitForExplicitFinish(); async function run() {+ // Bug 1746646: Make mochitests work with TCP enabled (cookieBehavior = 5)+ // Acquire storage access permission here so that the BroadcastChannel used to+ // communicate with the opened windows works in xorigin tests. Otherwise,+ // the iframe containing this page is isolated from first-party storage access,+ // which isolates BroadcastChannel communication.+ if (isXOrigin) {+ SpecialPowers.wrap(document).notifyUserGestureActivation();+ await SpecialPowers.addPermission(+ "storageAccessAPI",+ true,+ window.location.href+ );+ await SpecialPowers.wrap(document).requestStorageAccess();+ } const channel = new BroadcastChannel("strongworker"); await navigator.locks.request("exclusive", async () => { await new Promise(resolve => {
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Cross-Origin Storage Access Issue] [dom/locks/test/test_strongworker.html] [Lines 7-20] [Old Code: No storage access handling] [Fixed Code: Added storage access permission handling for xorigin tests] Additional Details: The fix addresses potential issues with BroadcastChannel communication in cross-origin tests by explicitly requesting storage access permissions. While not a direct security vulnerability in production code, this change prevents test failures that could occur due to storage isolation policies. 2. Vulnerability Existed: not sure [Missing User Gesture Requirement] [dom/locks/test/test_strongworker.html] [Lines 7-20] [Old Code: No user gesture activation] [Fixed Code: Added notifyUserGestureActivation() before requesting storage access] Additional Details: The fix ensures proper user gesture handling for storage access requests, which is a security requirement for such APIs. While this is in test code, it reflects proper security practices for storage access. Note: Both findings relate to test code modifications rather than production vulnerabilities. The changes appear to be implementing proper security practices for testing scenarios rather than fixing actual 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/dom/workers/RuntimeService.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/workers/RuntimeService.cpp@@ -65,7 +65,6 @@ #include "nsXPCOMPrivate.h" #include "OSFileConstants.h" #include "xpcpublic.h"-#include "XPCPrefableContextOptions.h" #include "XPCSelfHostedShmem.h" #if defined(XP_MACOSX)@@ -76,7 +75,6 @@ #include "WorkerDebuggerManager.h" #include "WorkerError.h" #include "WorkerLoadInfo.h"-#include "WorkerPrivate.h" #include "WorkerRunnable.h" #include "WorkerScope.h" #include "WorkerThread.h"@@ -132,9 +130,8 @@ // Prefixes for observing preference changes. #define PREF_JS_OPTIONS_PREFIX "javascript.options."-#define PREF_WORKERS_OPTIONS_PREFIX PREF_WORKERS_PREFIX "options." #define PREF_MEM_OPTIONS_PREFIX "mem."-#define PREF_GCZEAL "gcZeal"+#define PREF_GCZEAL "gczeal" static NS_DEFINE_CID(kStreamTransportServiceCID, NS_STREAMTRANSPORTSERVICE_CID);@@ -165,8 +162,6 @@ struct PrefTraits<bool> { using PrefValueType = bool;- static const PrefValueType kDefaultValue = false;- static inline PrefValueType Get(const char* aPref) { AssertIsOnMainThread(); return Preferences::GetBool(aPref);@@ -194,9 +189,7 @@ }; template <typename T>-T GetWorkerPref(const nsACString& aPref,- const T aDefault = PrefTraits<T>::kDefaultValue,- bool* aPresent = nullptr) {+T GetPref(const char* aFullPref, const T aDefault, bool* aPresent = nullptr) { AssertIsOnMainThread(); using PrefHelper = PrefTraits<T>;@@ -204,45 +197,17 @@ T result; bool present = true;- nsAutoCString prefName;- prefName.AssignLiteral(PREF_WORKERS_OPTIONS_PREFIX);- prefName.Append(aPref);-- if (PrefHelper::Exists(prefName.get())) {- result = PrefHelper::Get(prefName.get());+ if (PrefHelper::Exists(aFullPref)) {+ result = PrefHelper::Get(aFullPref); } else {- prefName.AssignLiteral(PREF_JS_OPTIONS_PREFIX);- prefName.Append(aPref);-- if (PrefHelper::Exists(prefName.get())) {- result = PrefHelper::Get(prefName.get());- } else {- result = aDefault;- present = false;- }+ result = aDefault;+ present = false; } if (aPresent) { *aPresent = present; } return result;-}--// Optimized version for bool that receives already-concatenated pref names.-//-// Used by xpc::SetPrefableContextOptions.-bool GetWorkerBoolPref(const char* jsPref, const char* workerPref) {- using PrefHelper = PrefTraits<bool>;-- if (PrefHelper::Exists(workerPref)) {- return PrefHelper::Get(workerPref);- }-- if (PrefHelper::Exists(jsPref)) {- return PrefHelper::Get(jsPref);- }-- return PrefHelper::kDefaultValue; } void LoadContextOptions(const char* aPrefName, void* /* aClosure */) {@@ -260,22 +225,18 @@ // another callback that will handle this change. if (StringBeginsWith( prefName,- nsLiteralCString(PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX)) ||- StringBeginsWith(- prefName, nsLiteralCString(- PREF_WORKERS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX))) {+ nsLiteralCString(PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX))) { return; } #ifdef JS_GC_ZEAL- if (prefName.EqualsLiteral(PREF_JS_OPTIONS_PREFIX PREF_GCZEAL) ||- prefName.EqualsLiteral(PREF_WORKERS_OPTIONS_PREFIX PREF_GCZEAL)) {+ if (prefName.EqualsLiteral(PREF_JS_OPTIONS_PREFIX PREF_GCZEAL)) { return; } #endif JS::ContextOptions contextOptions;- xpc::SetPrefableContextOptions(contextOptions, GetWorkerBoolPref);+ xpc::SetPrefableContextOptions(contextOptions); nsCOMPtr<nsIXULRuntime> xr = do_GetService("@mozilla.org/xre/runtime;1"); if (xr) {@@ -303,12 +264,13 @@ return; }- int32_t gczeal = GetWorkerPref<int32_t>(nsLiteralCString(PREF_GCZEAL), -1);+ int32_t gczeal = GetPref<int32_t>(PREF_JS_OPTIONS_PREFIX PREF_GCZEAL, -1); if (gczeal < 0) { gczeal = 0; }- int32_t frequency = GetWorkerPref<int32_t>("gcZeal.frequency"_ns, -1);+ int32_t frequency =+ GetPref<int32_t>(PREF_JS_OPTIONS_PREFIX PREF_GCZEAL ".frequency", -1); if (frequency < 0) { frequency = JS_DEFAULT_ZEAL_FREQ; }@@ -322,12 +284,11 @@ #endif void UpdateCommonJSGCMemoryOption(RuntimeService* aRuntimeService,- const nsACString& aPrefName,- JSGCParamKey aKey) {- AssertIsOnMainThread();- NS_ASSERTION(!aPrefName.IsEmpty(), "Empty pref name!");-- int32_t prefValue = GetWorkerPref(aPrefName, -1);+ const char* aPrefName, JSGCParamKey aKey) {+ AssertIsOnMainThread();+ NS_ASSERTION(aPrefName, "Null pref name!");++ int32_t prefValue = GetPref(aPrefName, -1); Maybe<uint32_t> value = (prefValue < 0 || prefValue >= 10000) ? Nothing() : Some(uint32_t(prefValue));@@ -360,30 +321,31 @@ return; }- constexpr auto jsPrefix = nsLiteralCString{PREF_JS_OPTIONS_PREFIX};- constexpr auto workersPrefix = nsLiteralCString{PREF_WORKERS_OPTIONS_PREFIX};-+ constexpr auto memPrefix =+ nsLiteralCString{PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX}; const nsDependentCString fullPrefName(aPrefName); // Pull out the string that actually distinguishes the parameter we need to // change. nsDependentCSubstring memPrefName;- if (StringBeginsWith(fullPrefName, jsPrefix)) {- memPrefName.Rebind(fullPrefName, jsPrefix.Length());- } else if (StringBeginsWith(fullPrefName, workersPrefix)) {- memPrefName.Rebind(fullPrefName, workersPrefix.Length());+ if (StringBeginsWith(fullPrefName, memPrefix)) {+ memPrefName.Rebind(fullPrefName, memPrefix.Length()); } else { NS_ERROR("Unknown pref name!"); return; } struct WorkerGCPref {- nsLiteralCString name;+ nsLiteralCString memName;+ const char* fullName; JSGCParamKey key; };-#define PREF(suffix_, key_) \- { nsLiteralCString(PREF_MEM_OPTIONS_PREFIX suffix_), key_ }+#define PREF(suffix_, key_) \+ { \+ nsLiteralCString(PREF_MEM_OPTIONS_PREFIX suffix_), \+ PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX suffix_, key_ \+ } constexpr WorkerGCPref kWorkerPrefs[] = { PREF("max", JSGC_MAX_BYTES), PREF("gc_high_frequency_time_limit_ms", JSGC_HIGH_FREQUENCY_TIME_LIMIT),@@ -413,12 +375,12 @@ if (gRuntimeServiceDuringInit) { // During init, we want to update every pref in kWorkerPrefs.- MOZ_ASSERT(memPrefName.EqualsLiteral(PREF_MEM_OPTIONS_PREFIX),+ MOZ_ASSERT(memPrefName.IsEmpty(), "Pref branch prefix only expected during init"); } else { // Otherwise, find the single pref that changed. while (pref != end) {- if (pref->name == memPrefName) {+ if (pref->memName == memPrefName) { end = pref + 1; break; }@@ -437,7 +399,7 @@ while (pref != end) { switch (pref->key) { case JSGC_MAX_BYTES: {- int32_t prefValue = GetWorkerPref(pref->name, -1);+ int32_t prefValue = GetPref(pref->fullName, -1); Maybe<uint32_t> value = (prefValue <= 0 || prefValue >= 0x1000) ? Nothing() : Some(uint32_t(prefValue) * 1024 * 1024);@@ -445,7 +407,7 @@ break; } case JSGC_SLICE_TIME_BUDGET_MS: {- int32_t prefValue = GetWorkerPref(pref->name, -1);+ int32_t prefValue = GetPref(pref->fullName, -1); Maybe<uint32_t> value = (prefValue <= 0 || prefValue >= 100000) ? Nothing() : Some(uint32_t(prefValue));@@ -454,7 +416,7 @@ } case JSGC_COMPACTING_ENABLED: { bool present;- bool prefValue = GetWorkerPref(pref->name, false, &present);+ bool prefValue = GetPref(pref->fullName, false, &present); Maybe<uint32_t> value = present ? Some(prefValue ? 1 : 0) : Nothing(); UpdateOtherJSGCMemoryOption(rts, pref->key, value); break;@@ -472,7 +434,7 @@ case JSGC_URGENT_THRESHOLD_MB: case JSGC_MIN_EMPTY_CHUNK_COUNT: case JSGC_MAX_EMPTY_CHUNK_COUNT:- UpdateCommonJSGCMemoryOption(rts, pref->name, pref->key);+ UpdateCommonJSGCMemoryOption(rts, pref->fullName, pref->key); break; default: MOZ_ASSERT_UNREACHABLE("Unknown JSGCParamKey value");@@ -639,6 +601,10 @@ } nsresult Cancel() override {+ // We need to check first if cancel is called twice+ nsresult rv = WorkerRunnable::Cancel();+ NS_ENSURE_SUCCESS(rv, rv);+ MOZ_ASSERT(mDispatchable); AutoJSAPI jsapi;@@ -648,7 +614,7 @@ JS::Dispatchable::ShuttingDown); mDispatchable = nullptr; // mDispatchable may delete itself- return WorkerRunnable::Cancel();+ return NS_OK; } };@@ -1185,7 +1151,7 @@ // From here on out we must call UnregisterWorker if something fails! if (parent) {- if (!parent->AddChildWorker(&aWorkerPrivate)) {+ if (!parent->AddChildWorker(aWorkerPrivate)) { UnregisterWorker(aWorkerPrivate); return false; }@@ -1305,7 +1271,7 @@ // same time as us calling into the code here and would race with us. if (parent) {- parent->RemoveChildWorker(&aWorkerPrivate);+ parent->RemoveChildWorker(aWorkerPrivate); } else if (aWorkerPrivate.IsSharedWorker()) { AssertIsOnMainThread();@@ -1485,12 +1451,9 @@ #define WORKER_PREF(name, callback) \ NS_FAILED(Preferences::RegisterCallbackAndCall(callback, name))- if (NS_FAILED(Preferences::RegisterPrefixCallback(+ if (NS_FAILED(Preferences::RegisterPrefixCallbackAndCall( LoadJSGCMemoryOptions, PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX)) ||- NS_FAILED(Preferences::RegisterPrefixCallbackAndCall(- LoadJSGCMemoryOptions,- PREF_WORKERS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX)) || #ifdef JS_GC_ZEAL NS_FAILED(Preferences::RegisterCallback( LoadGCZealOptions, PREF_JS_OPTIONS_PREFIX PREF_GCZEAL)) ||@@ -1499,13 +1462,8 @@ WORKER_PREF("general.appname.override", AppNameOverrideChanged) || WORKER_PREF("general.appversion.override", AppVersionOverrideChanged) || WORKER_PREF("general.platform.override", PlatformOverrideChanged) ||-#ifdef JS_GC_ZEAL- WORKER_PREF("dom.workers.options.gcZeal", LoadGCZealOptions) ||-#endif NS_FAILED(Preferences::RegisterPrefixCallbackAndCall(- LoadContextOptions, PREF_WORKERS_OPTIONS_PREFIX)) ||- NS_FAILED(Preferences::RegisterPrefixCallback(LoadContextOptions,- PREF_JS_OPTIONS_PREFIX))) {+ LoadContextOptions, PREF_JS_OPTIONS_PREFIX))) { NS_WARNING("Failed to register pref callbacks!"); }@@ -1589,6 +1547,10 @@ } nsresult Cancel() override {+ // We need to check first if cancel is called twice+ nsresult rv = WorkerRunnable::Cancel();+ NS_ENSURE_SUCCESS(rv, rv);+ MonitorAutoLock lock(mMonitor); if (!mHasMsg) { mMsg.Assign("Canceled");@@ -1767,23 +1729,17 @@ if (mObserved) { if (NS_FAILED(Preferences::UnregisterPrefixCallback( LoadContextOptions, PREF_JS_OPTIONS_PREFIX)) ||- NS_FAILED(Preferences::UnregisterPrefixCallback(- LoadContextOptions, PREF_WORKERS_OPTIONS_PREFIX)) || WORKER_PREF("intl.accept_languages", PrefLanguagesChanged) || WORKER_PREF("general.appname.override", AppNameOverrideChanged) || WORKER_PREF("general.appversion.override", AppVersionOverrideChanged) || WORKER_PREF("general.platform.override", PlatformOverrideChanged) || #ifdef JS_GC_ZEAL- WORKER_PREF("dom.workers.options.gcZeal", LoadGCZealOptions) || NS_FAILED(Preferences::UnregisterCallback( LoadGCZealOptions, PREF_JS_OPTIONS_PREFIX PREF_GCZEAL)) || #endif NS_FAILED(Preferences::UnregisterPrefixCallback( LoadJSGCMemoryOptions,- PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX)) ||- NS_FAILED(Preferences::UnregisterPrefixCallback(- LoadJSGCMemoryOptions,- PREF_WORKERS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX))) {+ PREF_JS_OPTIONS_PREFIX PREF_MEM_OPTIONS_PREFIX))) { NS_WARNING("Failed to unregister pref callbacks!"); }
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes Double Free Vulnerability [dom/workers/RuntimeService.cpp] [Lines 639-648] [Old Code] nsresult Cancel() override { MOZ_ASSERT(mDispatchable); AutoJSAPI jsapi; jsapi.Init(); mDispatchable->run(jsapi.cx(), JS::Dispatchable::ShuttingDown); mDispatchable = nullptr; // mDispatchable may delete itself return WorkerRunnable::Cancel(); } [Fixed Code] nsresult Cancel() override { // We need to check first if cancel is called twice nsresult rv = WorkerRunnable::Cancel(); NS_ENSURE_SUCCESS(rv, rv); MOZ_ASSERT(mDispatchable); AutoJSAPI jsapi; jsapi.Init(); mDispatchable->run(jsapi.cx(), JS::Dispatchable::ShuttingDown); mDispatchable = nullptr; // mDispatchable may delete itself return NS_OK; } 2. Vulnerability Existed: yes Double Free Vulnerability [dom/workers/RuntimeService.cpp] [Lines 1589-1597] [Old Code] nsresult Cancel() override { MonitorAutoLock lock(mMonitor); if (!mHasMsg) { mMsg.Assign("Canceled"); mHasMsg = true; lock.Notify(); } return WorkerRunnable::Cancel(); } [Fixed Code] nsresult Cancel() override { // We need to check first if cancel is called twice nsresult rv = WorkerRunnable::Cancel(); NS_ENSURE_SUCCESS(rv, rv); MonitorAutoLock lock(mMonitor); if (!mHasMsg) { mMsg.Assign("Canceled"); mHasMsg = true; lock.Notify(); } return NS_OK; } 3. Vulnerability Existed: not sure Potential Information Leak [dom/workers/RuntimeService.cpp] [Lines 1305-1311] [Old Code] if (parent) { parent->RemoveChildWorker(&aWorkerPrivate); } else if (aWorkerPrivate.IsSharedWorker()) { [Fixed Code] if (parent) { parent->RemoveChildWorker(aWorkerPrivate); } else if (aWorkerPrivate.IsSharedWorker()) { 4. Vulnerability Existed: not sure Potential Information Leak [dom/workers/RuntimeService.cpp] [Lines 1185-1187] [Old Code] if (parent) { if (!parent->AddChildWorker(&aWorkerPrivate)) { [Fixed Code] if (parent) { if (!parent->AddChildWorker(aWorkerPrivate)) { The main security fixes address double free vulnerabilities in the Cancel() methods by ensuring proper cleanup and preventing multiple cancellation calls. The changes in worker pointer handling (from &aWorkerPrivate to aWorkerPrivate) might relate to potential information leaks or memory management issues, though the exact impact isn't clear from the diff alone.
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/base/content/test/general/browser_bug676619.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/base/content/test/general/browser_bug676619.js@@ -147,6 +147,10 @@ await testLink("link16", "download_page_3.txt"); await testLink("link17", "download_page_4.txt"); await testLink("link18", "download_page_4.txt");+ await testLink("link19", "download_page_4.txt");+ await testLink("link20", "download_page_4.txt");+ await testLink("link21", "download_page_4.txt");+ await testLink("link22", "download_page_4.txt"); BrowserTestUtils.removeTab(tab); }
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [File] browser_bug676619.js [Lines] 147-151 [Old Code] await testLink("link18", "download_page_4.txt"); [Fixed Code] await testLink("link18", "download_page_4.txt"); await testLink("link19", "download_page_4.txt"); await testLink("link20", "download_page_4.txt"); await testLink("link21", "download_page_4.txt"); await testLink("link22", "download_page_4.txt"); The diff shows only additional test cases being added to the test file. There are no security-related changes visible in this diff - it's simply adding more test cases for links 19-22 with the same download filename pattern as previous tests. The changes appear to be test coverage expansion rather than security fixes.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.rotate.wrapnegative.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.rotate.wrapnegative.html@@ -17,17 +17,17 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.rotate(-Math.PI * (1 + 4096)); ctx.fillStyle = '#0f0'; ctx.fillRect(-100, -50, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255");+_assertPixel(canvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 17-30] [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"); _assertPixel(offscreenCanvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255"); _assertPixel(offscreenCanvas, 98,47, 0,255,0,255, "98,47", "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"); _assertPixel(canvas, 98,2, 0,255,0,255, "98,2", "0,255,0,255"); _assertPixel(canvas, 98,47, 0,255,0,255, "98,47", "0,255,0,255"); The changes appear to be purely cosmetic/refactoring, simply renaming the variable `offscreenCanvas` to `canvas` and updating all references to it. There are no security-related changes in this diff. The functionality remains exactly the same, just with a different variable name.
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/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/service-workers/service-worker/resources/fetch-event-respond-with-readable-stream-worker.js@@ -1,9 +1,47 @@ 'use strict'; importScripts("/resources/testharness.js");++const map = new Map(); self.addEventListener('fetch', event => { const url = new URL(event.request.url); if (!url.searchParams.has('stream')) return;++ if (url.searchParams.has('observe-cancel')) {+ const id = url.searchParams.get('id');+ if (id === undefined) {+ event.respondWith(new Error('error'));+ return;+ }+ event.waitUntil(new Promise(resolve => {+ map.set(id, {label: 'pending', resolve});+ }));++ const stream = new ReadableStream({+ cancel() {+ map.get(id).label = 'cancelled';+ }+ });+ event.respondWith(new Response(stream));+ return;+ }++ if (url.searchParams.has('query-cancel')) {+ const id = url.searchParams.get('id');+ if (id === undefined) {+ event.respondWith(new Error('error'));+ return;+ }+ const entry = map.get(id);+ if (entry === undefined) {+ event.respondWith(new Error('not found'));+ return;+ }+ map.delete(id);+ entry.resolve();+ event.respondWith(new Response(entry.label));+ return;+ } if (url.searchParams.has('use-fetch-stream')) { event.respondWith(async function() {
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Race Condition] [fetch-event-respond-with-readable-stream-worker.js] [Lines added for 'observe-cancel' and 'query-cancel' handling] [Old Code: No handling of stream cancellation observation] [Fixed Code: Added cancellation observation logic with Map tracking] Additional Details: The new code adds handling for stream cancellation observation, which might address a potential race condition where cancellation wasn't properly tracked. However, without more context about the original vulnerability, this is uncertain. 2. Vulnerability Existed: not sure [Potential Resource Leak] [fetch-event-respond-with-readable-stream-worker.js] [Lines added for Map cleanup] [Old Code: No resource tracking mechanism] [Fixed Code: Added Map cleanup when querying cancellation status] Additional Details: The new code properly deletes entries from the Map after querying, which could prevent potential resource leaks. However, it's unclear if this was fixing an actual vulnerability or just improving code quality. Note: The diff shows significant new functionality being added (stream cancellation observation) rather than direct security fixes to existing vulnerable code. Without more context about the specific security issue being addressed, it's difficult to identify concrete vulnerabilities. The changes appear to add robustness to stream handling, which could prevent certain edge cases that might lead to 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/devtools/client/netmonitor/src/utils/request-utils.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/netmonitor/src/utils/request-utils.js@@ -691,6 +691,30 @@ json, error, };+}++/**+ * This helper function is used for auto-growing the size of+ * a textarea based on text height+ *+ * @param {object} element+ * The textarea DOM element to update+ * @param {number} maxRows+ * The maximum number of rows the textarea can have, default is 5+ * @param {number} lineHeight+ * The height in pixels of one row of text in the textarea, default is 14+ */+function updateTextareaRows(element, maxRows = 5, lineHeight = 14) {+ const minRows = 1;+ // We reset the number of the rows in the textarea to make sure+ // the scrollheight is exactly the height of the text+ element.rows = minRows;++ const currentRows = Math.ceil(+ // 8 is the sum of the bottom and top padding of the element+ (element.scrollHeight - 8) / lineHeight+ );+ element.rows = currentRows <= maxRows ? currentRows : maxRows; } module.exports = {@@ -723,4 +747,5 @@ propertiesEqual, ipToLong, parseJSON,+ updateTextareaRows, };
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be adding a new utility function for textarea row management rather than fixing security issues. Here's the structured response: Vulnerability Existed: no No security vulnerability found - New feature addition [devtools/client/netmonitor/src/utils/request-utils.js] [Lines 691-747] [Old Code] [No old code for this function as it's a new addition] The diff shows only the addition of a new helper function `updateTextareaRows()` which handles textarea row resizing based on content, and its export. There are no security fixes or vulnerability patches in this change. The function appears to be a purely UI/UX improvement feature. No security-related changes were made to existing code - only new functionality was added. Therefore, no vulnerability names or fixes to report.
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/compositing/mix-blend-mode/mix-blend-mode-parent-element-overflow-hidden-and-border-radius.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/compositing/mix-blend-mode/mix-blend-mode-parent-element-overflow-hidden-and-border-radius.html@@ -7,7 +7,6 @@ <link rel="author" title="Ion Roșca" href="mailto:[email protected]"> <link rel="reviewer" title="Mihai Țică" href="mailto:[email protected]"> <link rel="help" href="https://drafts.fxtf.org/compositing-1/#mix-blend-mode">- <meta name="flags" content=""> <meta name="assert" content="Test checks that an element having mix-blend-mode blends with the parent element having overflow:hidden and border-radius"> <link rel="match" href="reference/mix-blend-mode-parent-element-overflow-hidden-and-border-radius-ref.html"> <style type="text/css">
Based on the provided code diff, here's the analysis: Vulnerability Existed: no No security vulnerability found [File] [Lines 7] [Old Code] <meta name="flags" content=""> [Fixed Code] (removed line) Additional Details: - The diff shows only the removal of an empty meta tag with "flags" attribute - This appears to be a test file cleanup rather than a security fix - No actual security vulnerability is being addressed here - The change is likely related to test infrastructure or metadata cleanup No security-related vulnerabilities were identified in this diff. The change is minor and doesn't appear to address 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/toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py@@ -99,7 +99,9 @@ # bug 1720494: This should be a simple call to translate.transform counters = {} numerators_by_denominator: Dict[str, Any] = {}- for category_val in objects.values():+ for (category_name, category_val) in objects.items():+ if category_name == "tags":+ continue for metric in category_val.values(): fqmn = metric.identifier() if getattr(metric, "type", None) == "counter":
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Information Exposure] [File: toolkit/components/glean/build_scripts/glean_parser_ext/run_glean_parser.py] [Lines: 99-104] [Old Code] ```python for category_val in objects.values(): ``` [Fixed Code] ```python for (category_name, category_val) in objects.items(): if category_name == "tags": continue ``` Additional Details: The change adds explicit filtering of "tags" category from processing. While this might prevent potential information exposure of sensitive tag data, without more context about the contents of "tags", we can't be certain if this was an actual security vulnerability or just a data processing improvement. 2. Vulnerability Existed: not sure [Potential Data Validation Issue] [Same file and lines as above] [Old Code] ```python for category_val in objects.values(): ``` [Fixed Code] ```python for (category_name, category_val) in objects.items(): if category_name == "tags": continue ``` Additional Details: The change introduces explicit handling of the "tags" category, which could indicate previous code was processing untrusted data without proper validation. However, without knowing if "tags" could contain malicious content, this is uncertain. Note: The diff shows improved data handling by explicitly skipping the "tags" category, but without more context about the data structure and potential security implications of the "tags" field, we can't definitively classify this as a security fix. The changes appear to be defensive programming improvements that could have security benefits.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js@@ -13,11 +13,11 @@ }); 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(offscreenCanvas.width, offscreenCanvas.height);+var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); var ctx2 = offscreenCanvas2.getContext('2d'); var promise = new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest();@@ -35,7 +35,7 @@ ctx.fillRect(0, 0, 100, 50); ctx.globalCompositeOperation = 'destination-atop'; ctx.drawImage(offscreenCanvas2, 0, 0);- _assertPixelApprox(offscreenCanvas, 50,25, 128,255,128,191, "50,25", "128,255,128,191", 5);+ _assertPixelApprox(canvas, 50,25, 128,255,128,191, "50,25", "128,255,128,191", 5); }, t_fail); }).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 variable renaming and consistency improvements rather than security-related fixes. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/compositing/2d.composite.canvas.destination-atop.worker.js] [Lines 13-35] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); var offscreenCanvas2 = new OffscreenCanvas(offscreenCanvas.width, offscreenCanvas.height); _assertPixelApprox(offscreenCanvas, 50,25, 128,255,128,191, "50,25", "128,255,128,191", 5); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); var offscreenCanvas2 = new OffscreenCanvas(canvas.width, canvas.height); _assertPixelApprox(canvas, 50,25, 128,255,128,191, "50,25", "128,255,128,191", 5); The changes are purely: 1. Renaming `offscreenCanvas` to `canvas` for consistency 2. Updating references to use the new variable name 3. No security-related changes were made to the XMLHttpRequest handling or other potentially sensitive 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/layout/style/CSSLayerStatementRule.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/style/CSSLayerStatementRule.cpp@@ -10,9 +10,9 @@ namespace mozilla::dom {-CSSLayerStatementRule::CSSLayerStatementRule(RefPtr<RawServoLayerStatementRule> aRawRule,- StyleSheet* aSheet, css::Rule* aParentRule,- uint32_t aLine, uint32_t aColumn)+CSSLayerStatementRule::CSSLayerStatementRule(+ RefPtr<RawServoLayerStatementRule> aRawRule, StyleSheet* aSheet,+ css::Rule* aParentRule, uint32_t aLine, uint32_t aColumn) : Rule(aSheet, aParentRule, aLine, aColumn), mRawRule(std::move(aRawRule)) {}@@ -34,9 +34,12 @@ } #endif-StyleCssRuleType CSSLayerStatementRule::Type() const { return StyleCssRuleType::LayerStatement; }+StyleCssRuleType CSSLayerStatementRule::Type() const {+ return StyleCssRuleType::LayerStatement;+}-void CSSLayerStatementRule::SetRawAfterClone(RefPtr<RawServoLayerStatementRule> aRaw) {+void CSSLayerStatementRule::SetRawAfterClone(+ RefPtr<RawServoLayerStatementRule> aRaw) { mRawRule = std::move(aRaw); }@@ -47,16 +50,18 @@ void CSSLayerStatementRule::GetNameList(nsTArray<nsCString>& aNames) const { size_t size = Servo_LayerStatementRule_GetNameCount(mRawRule.get()); for (size_t i = 0; i < size; ++i) {- Servo_LayerStatementRule_GetNameAt(mRawRule.get(), i, aNames.AppendElement());+ Servo_LayerStatementRule_GetNameAt(mRawRule.get(), i,+ aNames.AppendElement()); } }-size_t CSSLayerStatementRule::SizeOfIncludingThis(MallocSizeOf aMallocSizeOf) const {+size_t CSSLayerStatementRule::SizeOfIncludingThis(+ MallocSizeOf aMallocSizeOf) const { return aMallocSizeOf(this); } JSObject* CSSLayerStatementRule::WrapObject(JSContext* aCx,- JS::Handle<JSObject*> aGivenProto) {+ JS::Handle<JSObject*> aGivenProto) { return CSSLayerStatementRule_Binding::Wrap(aCx, this, aGivenProto); }
After analyzing the provided code diff, I don't find any clear security vulnerabilities that were fixed. The changes appear to be primarily code formatting improvements and minor refactoring. Here's the analysis: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines] The changes are mainly formatting improvements (line breaks, indentation) and no security-related fixes were identified. 2. Vulnerability Existed: no No specific vulnerability found [File] [Lines] The function implementations remain functionally identical, just with improved formatting. The diff shows: 1. Constructor formatting improved with better line breaks 2. Type() function formatting improved 3. SetRawAfterClone function formatting improved 4. GetNameList function now has better formatted line for Servo_LayerStatementRule_GetNameAt call 5. SizeOfIncludingThis function formatting improved 6. WrapObject function parameter alignment improved None of these changes appear to address any security vulnerabilities - they're all code style/readability improvements. The functionality remains the same, just better formatted. If there were any security implications in these changes, they would be extremely subtle and not apparent from the diff alone. The changes don't show any: - Added input validation - Fixed memory safety issues - Fixed potential overflows - Added security checks - Changed security-sensitive operations Therefore, I conclude there are no security vulnerability fixes in this particular diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.quadraticCurveTo.scaled.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.quadraticCurveTo.scaled.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);@@ -25,11 +25,11 @@ ctx.moveTo(-1, 1.05); ctx.quadraticCurveTo(0, -1, 1.2, 1.05); ctx.stroke();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");+_assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");+_assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+_assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255"); t.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 updating the corresponding assertions. Here's the analysis: Vulnerability Existed: no No security vulnerability found [File] [Lines] [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'); Vulnerability Existed: no No security vulnerability found [File] [Lines] [Old Code] _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); [Fixed Code] _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); The changes are consistent throughout the file, all simply updating variable names without any security implications. No actual security vulnerabilities were addressed in this diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.get.order.rows.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.get.order.rows.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#fff'; ctx.fillRect(0, 0, 100, 50);
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 17-18] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Notes: - The change appears to be purely a variable name change from `offscreenCanvas` to `canvas` - No security-related functionality was modified - The change doesn't affect any security controls or introduce/remove any security mechanisms - 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/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html@@ -17,14 +17,14 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsl(120deg, 100.0%, 50.0%, 0.2)'; ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,51, "50,25", "0,255,0,51");+_assertPixel(canvas, 50,25, 0,255,0,51, "50,25", "0,255,0,51"); t.done(); });
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming and test case updates without any security implications. Here's the analysis following your requested format: Vulnerability Existed: no [No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-5.html] [Lines 17-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _assertPixel(offscreenCanvas, 50,25, 0,255,0,51, "50,25", "0,255,0,51"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _assertPixel(canvas, 50,25, 0,255,0,51, "50,25", "0,255,0,51"); The changes are: 1. Variable name changed from `offscreenCanvas` to `canvas` 2. Corresponding variable name change in `_assertPixel` call 3. No security-related changes were made
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.