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/tools/profiler/core/platform-macos.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/tools/profiler/core/platform-macos.cpp@@ -58,6 +58,30 @@ /* static */ uint64_t RunningTimes::ConvertRawToJson(uint64_t aRawValue) { return aRawValue;+}++static RunningTimes GetProcessRunningTimesDiff(+ PSLockRef aLock, RunningTimes& aPreviousRunningTimesToBeUpdated) {+ AUTO_PROFILER_STATS(GetProcessRunningTimes);++ RunningTimes newRunningTimes;+ {+ AUTO_PROFILER_STATS(GetProcessRunningTimes_task_info);++ static const auto pid = getpid();+ struct proc_taskinfo pti;+ if ((unsigned long)proc_pidinfo(pid, PROC_PIDTASKINFO, 0, &pti,+ PROC_PIDTASKINFO_SIZE) >=+ PROC_PIDTASKINFO_SIZE) {+ newRunningTimes.SetThreadCPUDelta(pti.pti_total_user ++ pti.pti_total_system);+ }+ newRunningTimes.SetPostMeasurementTimeStamp(TimeStamp::Now());+ };++ const RunningTimes diff = newRunningTimes - aPreviousRunningTimesToBeUpdated;+ aPreviousRunningTimesToBeUpdated = newRunningTimes;+ return diff; } static RunningTimes GetThreadRunningTimesDiff(
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Integer Overflow] [tools/profiler/core/platform-macos.cpp] [Lines 58-82] [Old Code: No equivalent function existed] [Fixed Code: Added GetProcessRunningTimesDiff function with arithmetic operation on pti.pti_total_user + pti.pti_total_system] Note: The main change is the addition of a new function GetProcessRunningTimesDiff. While there's no obvious security vulnerability in the traditional sense, there is a potential for integer overflow in the arithmetic operation adding two potentially large values (pti.pti_total_user and pti.pti_total_system). However, without more context about the expected range of these values, this is uncertain. The function appears to be properly handling the proc_pidinfo call with appropriate size checks.
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-063.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-063.html@@ -10,7 +10,6 @@ <link rel="match" href="../reference/ref-filled-green-100px-square.xht"> <link rel="stylesheet" type="text/css" href="/fonts/ahem.css">- <meta content="" name="flags"> <meta name="assert" content="In this test, tab characters are preserved and converted into 4 consecutive blank spaces. The background of such blank spaces can be painted. The lines are broken after each tab character since 'white-space: pre' preserves line breaks."> <style>
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/css/css-pseudo/active-selection-063.html [Lines] 10 [Old Code] `<meta content="" name="flags">` [Fixed Code] (line removed) Additional Details: - This appears to be a simple removal of an unused or unnecessary meta tag with empty content. There's no indication of a security vulnerability being fixed here. - The change seems to be cleanup-related rather than security-related. - No known vulnerability names are associated with this change. - The meta tag being removed had no actual content (`content=""`) and was likely just legacy code.
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/servo/components/style/stylesheets/mod.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/servo/components/style/stylesheets/mod.rs@@ -56,7 +56,7 @@ pub use self::media_rule::MediaRule; pub use self::namespace_rule::NamespaceRule; pub use self::origin::{Origin, OriginSet, OriginSetIterator, PerOrigin, PerOriginIter};-pub use self::page_rule::PageRule;+pub use self::page_rule::{PageRule, PageSelector, PageSelectors}; pub use self::rule_list::{CssRules, CssRulesHelpers}; pub use self::rule_parser::{InsertRuleContext, State, TopLevelRuleParser}; pub use self::rules_iterator::{AllRules, EffectiveRules};
Let me analyze the code diff for potential security vulnerabilities. Vulnerability Existed: not sure [Potential Information Exposure] [servo/components/style/stylesheets/mod.rs] [Lines 56] [Old Code] pub use self::page_rule::PageRule; [Fixed Code] pub use self::page_rule::{PageRule, PageSelector, PageSelectors}; Additional Details: The change exposes additional types (PageSelector and PageSelectors) publicly that were previously not exposed. While this doesn't appear to be a direct security vulnerability, exposing more types could potentially lead to information exposure if these types contain sensitive data or implementation details that shouldn't be public. Without seeing the implementation of PageSelector and PageSelectors, I can't be certain if this poses a security risk. Note: The diff doesn't show any obvious security vulnerabilities like buffer overflows, injection flaws, or other common security issues. The change appears to be more about API exposure 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/js/src/jit-test/tests/stream/proper-realm-pull.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/jit-test/tests/stream/proper-realm-pull.js@@ -1,3 +1,4 @@+// |jit-test| skip-if: !this.hasOwnProperty("ReadableStream") ignoreUnhandledRejections(); var g = newGlobal({ newCompartment: true });
Based on the provided diff, I'll analyze it for security vulnerabilities: Vulnerability Existed: no [No specific vulnerability found] [js/src/jit-test/tests/stream/proper-realm-pull.js] [Lines 1] [Old Code: ignoreUnhandledRejections();] [Fixed Code: // |jit-test| skip-if: !this.hasOwnProperty("ReadableStream") ignoreUnhandledRejections();] Additional Details: 1. The change is a test modification that adds a conditional skip for the test case when ReadableStream is not available 2. This appears to be a test reliability improvement rather than a security fix 3. No actual security vulnerability is being addressed in this change 4. The modification is related to test execution control, not security functionality The change is simply adding a test skip condition to prevent test failures when ReadableStream isn't available in the environment, which is a common practice for test robustness but doesn't indicate any security vulnerability being fixed.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/js/src/vm/SelfHosting.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/vm/SelfHosting.cpp@@ -44,6 +44,9 @@ #include "builtin/SelfHostingDefines.h" #include "builtin/String.h" #include "builtin/Symbol.h"+#ifdef ENABLE_RECORD_TUPLE+# include "builtin/TupleObject.h"+#endif #include "builtin/WeakMapObject.h" #include "frontend/BytecodeCompilation.h" // CompileGlobalScriptToStencil #include "frontend/CompilationStencil.h" // js::frontend::CompilationStencil@@ -137,6 +140,31 @@ return true; }+#ifdef ENABLE_RECORD_TUPLE++bool intrinsic_ThisTupleValue(JSContext* cx, unsigned argc, Value* vp) {+ CallArgs args = CallArgsFromVp(argc, vp);+ MOZ_ASSERT(args.length() == 1);+ mozilla::Maybe<TupleType&> result = js::ThisTupleValue(cx, args[0]);+ if (!result) {+ return false;+ }+ args.rval().setExtendedPrimitive(*result);+ return true;+}++bool intrinsic_TupleLength(JSContext* cx, unsigned argc, Value* vp) {+ CallArgs args = CallArgsFromVp(argc, vp);+ MOZ_ASSERT(args.length() == 1);+ mozilla::Maybe<TupleType&> result = js::ThisTupleValue(cx, args[0]);+ if (!result) {+ return false;+ }+ args.rval().setInt32((*result).getDenseInitializedLength());+ return true;+}+#endif+ static bool intrinsic_IsObject(JSContext* cx, unsigned argc, Value* vp) { CallArgs args = CallArgsFromVp(argc, vp); Value val = args[0];@@ -161,6 +189,23 @@ } return true; }++#ifdef ENABLE_RECORD_TUPLE+// returns true for TupleTypes and TupleObjects+bool js::IsTupleUnchecked(JSContext* cx, const CallArgs& args) {+ args.rval().setBoolean(IsTuple(args.get(0)));+ return true;+}++/* Identical to Tuple.prototype.isTuple, but with an+ * added check that args.length() is 1+ */+bool js::intrinsic_IsTuple(JSContext* cx, unsigned argc, JS::Value* vp) {+ CallArgs args = CallArgsFromVp(argc, vp);+ MOZ_ASSERT(args.length() == 1);+ return js::IsTupleUnchecked(cx, args);+}+#endif static bool intrinsic_IsCrossRealmArrayConstructor(JSContext* cx, unsigned argc, Value* vp) {@@ -443,7 +488,7 @@ RootedValue error(cx); if (!JS::CreateError(cx, JSEXN_SYNTAXERR, nullptr, filename, args[1].toInt32(), args[2].toInt32(), nullptr, message,- &error)) {+ JS::NothingHandleValue, &error)) { return false; }@@ -776,8 +821,10 @@ static bool intrinsic_IsPackedArray(JSContext* cx, unsigned argc, Value* vp) { CallArgs args = CallArgsFromVp(argc, vp); MOZ_ASSERT(args.length() == 1);- MOZ_ASSERT(args[0].isObject());- args.rval().setBoolean(IsPackedArray(&args[0].toObject()));+ MOZ_ASSERT(args[0].hasObjectPayload());+ args.rval().setBoolean(+ (args[0].isObject() && IsPackedArray(&args[0].toObject())) ||+ IF_RECORD_TUPLE(IsTuple(args[0]), false)); return true; }@@ -2235,6 +2282,9 @@ IsRegExpObject), JS_INLINABLE_FN("IsSuspendedGenerator", intrinsic_IsSuspendedGenerator, 1, 0, IntrinsicIsSuspendedGenerator),+#ifdef ENABLE_RECORD_TUPLE+ JS_FN("IsTuple", intrinsic_IsTuple, 1, 0),+#endif JS_INLINABLE_FN("IsTypedArray", intrinsic_IsInstanceOfBuiltin<TypedArrayObject>, 1, 0, IntrinsicIsTypedArray),@@ -2306,6 +2356,9 @@ JS_FN("ThisNumberValueForToLocaleString", ThisNumberValueForToLocaleString, 0, 0), JS_FN("ThisTimeValue", intrinsic_ThisTimeValue, 1, 0),+#ifdef ENABLE_RECORD_TUPLE+ JS_FN("ThisTupleValue", intrinsic_ThisTupleValue, 1, 0),+#endif JS_FN("ThrowAggregateError", intrinsic_ThrowAggregateError, 4, 0), JS_FN("ThrowArgTypeNotObject", intrinsic_ThrowArgTypeNotObject, 2, 0), JS_FN("ThrowInternalError", intrinsic_ThrowInternalError, 4, 0),@@ -2318,6 +2371,9 @@ JS_INLINABLE_FN("ToObject", intrinsic_ToObject, 1, 0, IntrinsicToObject), JS_FN("ToPropertyKey", intrinsic_ToPropertyKey, 1, 0), JS_FN("ToSource", intrinsic_ToSource, 1, 0),+#ifdef ENABLE_RECORD_TUPLE+ JS_FN("TupleLength", intrinsic_TupleLength, 1, 0),+#endif JS_FN("TypedArrayBitwiseSlice", intrinsic_TypedArrayBitwiseSlice, 4, 0), JS_FN("TypedArrayBuffer", intrinsic_TypedArrayBuffer, 1, 0), JS_INLINABLE_FN("TypedArrayByteOffset", intrinsic_TypedArrayByteOffset, 1,@@ -2442,6 +2498,8 @@ JS_FN("std_Date_now", date_now, 0, 0), JS_FN("std_Function_apply", fun_apply, 2, 0), JS_FN("std_Map_entries", MapObject::entries, 0, 0),+ JS_FN("std_Map_get", MapObject::get, 1, 0),+ JS_FN("std_Map_set", MapObject::set, 2, 0), JS_INLINABLE_FN("std_Math_abs", math_abs, 1, 0, MathAbs), JS_INLINABLE_FN("std_Math_floor", math_floor, 1, 0, MathFloor), JS_INLINABLE_FN("std_Math_max", math_max, 2, 0, MathMax),@@ -2470,6 +2528,9 @@ JS_FN("std_String_includes", str_includes, 1, 0), JS_FN("std_String_indexOf", str_indexOf, 1, 0), JS_FN("std_String_startsWith", str_startsWith, 1, 0),+#ifdef ENABLE_RECORD_TUPLE+ JS_FN("std_Tuple_unchecked", tuple_construct, 1, 0),+#endif JS_FN("std_TypedArray_buffer", js::TypedArray_bufferGetter, 1, 0), JS_FS_END};
After analyzing the provided code diff, I don't see any obvious security vulnerabilities being fixed. The changes appear to be primarily adding support for Tuple functionality behind an `ENABLE_RECORD_TUPLE` flag, along with some minor improvements and additions to existing functionality. Here's the analysis following your requested format: 1. Vulnerability Existed: no No security vulnerability found in this diff. The changes are feature additions and minor improvements. 2. Vulnerability Existed: no The changes to `intrinsic_IsPackedArray` appear to be adding Tuple support rather than fixing a security issue. The modification expands the check to include tuples when enabled. 3. Vulnerability Existed: no The addition of `JS::NothingHandleValue` in the error creation code appears to be a completeness/type safety improvement rather than a security fix. The diff primarily shows: 1. Addition of Tuple-related functionality (new intrinsics and support code) 2. Expansion of existing functions to handle Tuples 3. Addition of some standard Map methods (get, set) 4. Minor improvements to error handling No CVE or known vulnerability patterns are evident in these changes. The modifications seem focused on feature enhancement 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/drawing-images-to-the-canvas/2d.drawImage.negativedest.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.negativedest.html@@ -18,8 +18,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);@@ -36,16 +36,16 @@ createImageBitmap(response).then(bitmap => { ctx.drawImage(bitmap, 100, 78, 50, 50, 0, 50, 50, -50); ctx.drawImage(bitmap, 100, 128, 50, -50, 100, 50, -50, -50);- _assertPixelApprox(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 48,1, 0,255,0,255, "48,1", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 48,48, 0,255,0,255, "48,48", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 51,1, 0,255,0,255, "51,1", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 51,48, 0,255,0,255, "51,48", "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, 1,1, 0,255,0,255, "1,1", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 48,1, 0,255,0,255, "48,1", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 48,48, 0,255,0,255, "48,48", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 51,1, 0,255,0,255, "51,1", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 51,48, 0,255,0,255, "51,48", "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); }, 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 purely variable renaming (from `offscreenCanvas` to `canvas`) and updating the corresponding references in the test assertions. Here's the analysis following your format: Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.negativedest.html Lines: Variable renaming throughout the file Old Code: Used variable name 'offscreenCanvas' Fixed Code: Changed to variable name 'canvas' The changes are purely cosmetic/refactoring in nature and don't appear to address any security issues. The test logic and assertions remain the same, just using 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/third_party/rust/pin-project-internal/src/pin_project/derive.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/pin-project-internal/src/pin_project/derive.rs@@ -2,9 +2,13 @@ use quote::{format_ident, quote, quote_spanned, ToTokens}; use syn::{ parse::{Parse, ParseStream},+ parse_quote, spanned::Spanned,+ token, visit_mut::VisitMut,- *,+ Attribute, Data, DataEnum, DataStruct, DeriveInput, Error, Field, Fields, FieldsNamed,+ FieldsUnnamed, Generics, Ident, Index, Lifetime, LifetimeDef, Meta, MetaList, NestedMeta,+ Result, Token, Type, Variant, Visibility, WhereClause, }; use super::PIN;
Analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be related to code organization and imports rather than security fixes. Here's the analysis following your requested format: Vulnerability Existed: no [No specific vulnerability] [third_party/rust/pin-project-internal/src/pin_project/derive.rs] [Lines 2-9] [Old Code] use quote::{format_ident, quote, quote_spanned, ToTokens}; use syn::{ parse::{Parse, ParseStream}, spanned::Spanned, visit_mut::VisitMut, *, }; [Fixed Code] use quote::{format_ident, quote, quote_spanned, ToTokens}; use syn::{ parse::{Parse, ParseStream}, parse_quote, spanned::Spanned, token, visit_mut::VisitMut, Attribute, Data, DataEnum, DataStruct, DeriveInput, Error, Field, Fields, FieldsNamed, FieldsUnnamed, Generics, Ident, Index, Lifetime, LifetimeDef, Meta, MetaList, NestedMeta, Result, Token, Type, Variant, Visibility, WhereClause, }; The changes consist of: 1. Adding new imports (`parse_quote`, `token`) 2. Replacing the wildcard import (`*`) with explicit imports 3. Adding more specific types from the `syn` crate These changes appear to be code quality improvements rather than security fixes, making the imports more explicit and potentially reducing compilation time by avoiding wildcard imports. There's no evidence of a security vulnerability being addressed in this diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/serde/src/ser/impls.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/serde/src/ser/impls.rs@@ -915,6 +915,7 @@ where S: Serializer, {+ // Matches the atomic ordering used in libcore for the Debug impl self.load(Ordering::SeqCst).serialize(serializer) } }
Let me analyze the code diff for security fixes. Vulnerability Existed: not sure [Potential Memory Ordering Issue] [third_party/rust/serde/src/ser/impls.rs] [Lines 915-921] [Old Code] where S: Serializer, { self.load(Ordering::SeqCst).serialize(serializer) } [Fixed Code] where S: Serializer, { // Matches the atomic ordering used in libcore for the Debug impl self.load(Ordering::SeqCst).serialize(serializer) } Additional Details: 1. The change adds a clarifying comment about the atomic ordering choice (SeqCst) matching libcore's Debug implementation. 2. While this isn't a direct security fix, using proper memory ordering (SeqCst) in atomic operations is important for thread safety. 3. The comment addition suggests there might have been uncertainty about the correctness of the memory ordering previously. 4. Without more context, I can't be certain if this was fixing an actual vulnerability or just adding 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/testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.3arg.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.3arg.worker.js@@ -14,8 +14,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 promise1 = new Promise(function(resolve, reject) { var xhr = new XMLHttpRequest();@@ -44,10 +44,10 @@ ctx.drawImage(bitmap1, 100, 0); ctx.drawImage(bitmap1, 0, -50); ctx.drawImage(bitmap1, 0, 50);- _assertPixelApprox(offscreenCanvas, 0,0, 0,255,0,255, "0,0", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 99,0, 0,255,0,255, "99,0", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 0,49, 0,255,0,255, "0,49", "0,255,0,255", 2);- _assertPixelApprox(offscreenCanvas, 99,49, 0,255,0,255, "99,49", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 0,0, 0,255,0,255, "0,0", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 99,0, 0,255,0,255, "99,0", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 0,49, 0,255,0,255, "0,49", "0,255,0,255", 2);+ _assertPixelApprox(canvas, 99,49, 0,255,0,255, "99,49", "0,255,0,255", 2); }, t_fail); }).then(t_pass, t_fail);
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found [File] [Lines 14-15, 44-47] Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); 2. Vulnerability Existed: no No security vulnerability found [File] [Lines 44-47] Old Code: _assertPixelApprox(offscreenCanvas, 0,0, 0,255,0,255, "0,0", "0,255,0,255", 2); _assertPixelApprox(offscreenCanvas, 99,0, 0,255,0,255, "99,0", "0,255,0,255", 2); _assertPixelApprox(offscreenCanvas, 0,49, 0,255,0,255, "0,49", "0,255,0,255", 2); _assertPixelApprox(offscreenCanvas, 99,49, 0,255,0,255, "99,49", "0,255,0,255", 2); Fixed Code: _assertPixelApprox(canvas, 0,0, 0,255,0,255, "0,0", "0,255,0,255", 2); _assertPixelApprox(canvas, 99,0, 0,255,0,255, "99,0", "0,255,0,255", 2); _assertPixelApprox(canvas, 0,49, 0,255,0,255, "0,49", "0,255,0,255", 2); _assertPixelApprox(canvas, 99,49, 0,255,0,255, "99,49", "0,255,0,255", 2); The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) with no security implications. The functionality remains the same, just with a different variable name. No security vulnerabilities were identified 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/dom/tests/browser/browser_sessionStorage_navigation.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/tests/browser/browser_sessionStorage_navigation.js@@ -114,6 +114,18 @@ `Navigate to ${ORIGIN} as expected` );+ // Bug 1746646: Make mochitests work with TCP enabled (cookieBehavior = 5)+ // Acquire storage access permission here so that the iframe has+ // first-party access to the sessionStorage. Without this, it is+ // isolated and this test will always fail+ SpecialPowers.wrap(content.document).notifyUserGestureActivation();+ await SpecialPowers.addPermission(+ "storageAccessAPI",+ true,+ content.window.location.href+ );+ await SpecialPowers.wrap(content.document).requestStorageAccess();+ let value1 = content.window.sessionStorage.getItem(key); is( value1,
Let me analyze the code diff for security fixes: Vulnerability Existed: not sure [Potential Cross-Origin Storage Access Issue] [dom/tests/browser/browser_sessionStorage_navigation.js] [Lines 114+] [Old Code] `Navigate to ${ORIGIN} as expected` ); let value1 = content.window.sessionStorage.getItem(key); [Fixed Code] `Navigate to ${ORIGIN} as expected` ); // Bug 1746646: Make mochitests work with TCP enabled (cookieBehavior = 5) // Acquire storage access permission here so that the iframe has // first-party access to the sessionStorage. Without this, it is // isolated and this test will always fail SpecialPowers.wrap(content.document).notifyUserGestureActivation(); await SpecialPowers.addPermission( "storageAccessAPI", true, content.window.location.href ); await SpecialPowers.wrap(content.document).requestStorageAccess(); let value1 = content.window.sessionStorage.getItem(key); Additional Details: 1. The change adds explicit storage access permission handling for sessionStorage access in cross-origin contexts. 2. The fix appears to be related to Total Cookie Protection (TCP) and storage isolation features. 3. While this is a test file change, it reflects a security-related behavior change in how storage access is handled. 4. The vulnerability name is uncertain since this is a test file, but it relates to potential cross-origin storage access 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/js/src/jit-test/tests/basic/plain-object-prototypes-error.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/jit-test/tests/basic/plain-object-prototypes-error.js@@ -25,7 +25,10 @@ assertThrowsObjectError(() => Map.prototype.has.call(FinalizationRegistry.prototype), "FinalizationRegistry.prototype"); assertThrowsObjectError(() => Map.prototype.has.call(Int32Array.prototype), "Int32Array.prototype"); assertThrowsObjectError(() => Map.prototype.has.call(Promise.prototype), "Promise.prototype");-assertThrowsObjectError(() => Map.prototype.has.call(ReadableStream.prototype), "ReadableStream.prototype");+if (this.hasOwnProperty("ReadableStream")) {+ // ReadableStream is only present for the JS Streams implementation+ assertThrowsObjectError(() => Map.prototype.has.call(ReadableStream.prototype), "ReadableStream.prototype");+} assertThrowsObjectError(() => Map.prototype.has.call(RegExp.prototype), "RegExp.prototype"); assertThrowsObjectError(() => Map.prototype.has.call(Set.prototype), "Set.prototype"); assertThrowsObjectError(() => Map.prototype.has.call(TypeError.prototype), "TypeError.prototype");
Here's the analysis of the provided code diff: Vulnerability Existed: not sure [Potential Prototype Pollution] [js/src/jit-test/tests/basic/plain-object-prototypes-error.js] [Lines 25] [Old Code] `assertThrowsObjectError(() => Map.prototype.has.call(ReadableStream.prototype), "ReadableStream.prototype");` [Fixed Code] `if (this.hasOwnProperty("ReadableStream")) { // ReadableStream is only present for the JS Streams implementation assertThrowsObjectError(() => Map.prototype.has.call(ReadableStream.prototype), "ReadableStream.prototype"); }` Additional Details: The change adds a check for the existence of `ReadableStream` before attempting to access its prototype. While this isn't a direct security fix for a known vulnerability, it prevents potential errors when `ReadableStream` isn't available in the environment. This could be related to defensive programming against prototype pollution or undefined behavior, but without more context about the test's purpose, we can't be certain if this was fixing an actual 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/dom/ipc/jsactor/JSActor.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/ipc/jsactor/JSActor.cpp@@ -372,7 +372,8 @@ mQueryId(aMetadata.queryId()) {} void JSActor::QueryHandler::RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { if (!mActor) { // Make sure that this rejection is reported. See comment below. if (!JS::CallOriginalPromiseReject(aCx, aValue)) {@@ -414,7 +415,8 @@ } void JSActor::QueryHandler::ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { if (!mActor) { return; }@@ -438,7 +440,7 @@ JS::Rooted<JS::Value> val(aCx); if (ToJSValue(aCx, exc, &val)) {- RejectedCallback(aCx, val);+ RejectedCallback(aCx, val, aRv); } else { JS_ClearPendingException(aCx); }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Error Handling Improvement] [dom/ipc/jsactor/JSActor.cpp] [Lines 372-440] [Old Code] ```cpp void JSActor::QueryHandler::RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) void JSActor::QueryHandler::ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) ``` [Fixed Code] ```cpp void JSActor::QueryHandler::RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) void JSActor::QueryHandler::ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) ``` The main change is the addition of an ErrorResult parameter to both callback functions. While this doesn't directly correspond to a known vulnerability, it appears to be improving error handling by: 1. Providing a way to propagate errors back to the caller 2. Making error handling more consistent (note how RejectedCallback is now called with aRv in the ResolvedCallback) This could potentially address cases where errors weren't being properly propagated, but without more context about the specific issues being fixed, I can't identify a specific vulnerability. The change appears to be more of a robustness improvement than a direct security fix.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/workers/ScriptLoader.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/workers/ScriptLoader.cpp@@ -87,7 +87,6 @@ #include "mozilla/StaticPrefs_security.h" #include "mozilla/UniquePtr.h" #include "Principal.h"-#include "WorkerPrivate.h" #include "WorkerRunnable.h" #include "WorkerScope.h"@@ -426,11 +425,11 @@ mLoaders.AppendElement(std::move(aLoader)); }- virtual void ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) override;-- virtual void RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) override;+ virtual void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override;++ virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override; // Try to load from cache with aPrincipal used for cache access. nsresult Load(nsIPrincipal* aPrincipal);@@ -492,11 +491,11 @@ void Load(Cache* aCache);- virtual void ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) override;-- virtual void RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) override;+ virtual void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override;++ virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override; private: ~CacheScriptLoader() { AssertIsOnMainThread(); }@@ -529,11 +528,11 @@ MOZ_ASSERT(mRunnable); }- virtual void ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) override;-- virtual void RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) override;+ virtual void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override;++ virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) override; private: ~CachePromiseHandler() { AssertIsOnMainThread(); }@@ -1565,7 +1564,8 @@ } void CachePromiseHandler::ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { AssertIsOnMainThread(); // May already have been canceled by CacheScriptLoader::Fail from // CancelMainThread.@@ -1582,7 +1582,8 @@ } void CachePromiseHandler::RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { AssertIsOnMainThread(); // May already have been canceled by CacheScriptLoader::Fail from // CancelMainThread.@@ -1679,13 +1680,15 @@ } void CacheCreator::RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { AssertIsOnMainThread(); FailLoaders(NS_ERROR_FAILURE); } void CacheCreator::ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { AssertIsOnMainThread(); if (!aValue.isObject()) {@@ -1802,14 +1805,16 @@ } void CacheScriptLoader::RejectedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { AssertIsOnMainThread(); MOZ_ASSERT(mLoadInfo.mCacheStatus == ScriptLoadInfo::Uncached); Fail(NS_ERROR_FAILURE); } void CacheScriptLoader::ResolvedCallback(JSContext* aCx,- JS::Handle<JS::Value> aValue) {+ JS::Handle<JS::Value> aValue,+ ErrorResult& aRv) { AssertIsOnMainThread(); // If we have already called 'Fail', we should not proceed. if (mFailed) {@@ -2223,11 +2228,15 @@ } nsresult ScriptExecutorRunnable::Cancel() {+ // We need to check first if cancel is called twice+ nsresult rv = MainThreadWorkerSyncRunnable::Cancel();+ NS_ENSURE_SUCCESS(rv, rv);+ if (AllScriptsExecutable()) { ShutdownScriptLoader(mWorkerPrivate->GetJSContext(), mWorkerPrivate, false, false); }- return MainThreadWorkerSyncRunnable::Cancel();+ return NS_OK; } void ScriptExecutorRunnable::ShutdownScriptLoader(JSContext* aCx,
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: yes [Error Handling Improvement] [dom/workers/ScriptLoader.cpp] [Lines 426-429, 492-495, 529-532, 1565-1582, 1679-1680, 1802-1805, 2223-2231] [Old Code] virtual void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) override; virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue) override; [Fixed Code] virtual void ResolvedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) override; virtual void RejectedCallback(JSContext* aCx, JS::Handle<JS::Value> aValue, ErrorResult& aRv) override; Additional Details: The changes add ErrorResult parameters to callback functions, improving error handling and propagation. This helps prevent uncaught exceptions and improves security by ensuring errors are properly handled. 2. Vulnerability Existed: yes [Double Cancellation Protection] [dom/workers/ScriptLoader.cpp] [Lines 2223-2231] [Old Code] nsresult ScriptExecutorRunnable::Cancel() { if (AllScriptsExecutable()) { ShutdownScriptLoader(mWorkerPrivate->GetJSContext(), mWorkerPrivate, false, false); } return MainThreadWorkerSyncRunnable::Cancel(); } [Fixed Code] nsresult ScriptExecutorRunnable::Cancel() { // We need to check first if cancel is called twice nsresult rv = MainThreadWorkerSyncRunnable::Cancel(); NS_ENSURE_SUCCESS(rv, rv); if (AllScriptsExecutable()) { ShutdownScriptLoader(mWorkerPrivate->GetJSContext(), mWorkerPrivate, false, false); } return NS_OK; } Additional Details: The fix adds protection against double cancellation, which could potentially lead to race conditions or inconsistent states. This improves the robustness of the cancellation mechanism. 3. Vulnerability Existed: not sure [Header Removal] [dom/workers/ScriptLoader.cpp] [Lines 87] [Old Code] #include "WorkerPrivate.h" [Fixed Code] (removed) Additional Details: The removal of the WorkerPrivate.h include might be related to some refactoring or optimization, but without more context, it's unclear if this has any security implications. It could potentially be related to reducing attack surface by removing unnecessary dependencies.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/jpeg-xl/lib/jxl/jpeg/dec_jpeg_data_writer.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/jpeg-xl/lib/jxl/jpeg/dec_jpeg_data_writer.h@@ -13,6 +13,7 @@ #include <functional>+#include "lib/jxl/codec_in_out.h" #include "lib/jxl/jpeg/jpeg_data.h" namespace jxl {@@ -24,6 +25,9 @@ Status WriteJpeg(const JPEGData& jpg, const JPEGOutput& out);+// Reconstructs the JPEG from the coefficients and metadata in CodecInOut.+Status EncodeImageJPGCoefficients(const CodecInOut* io, PaddedBytes* bytes);+ } // namespace jpeg } // namespace jxl
Analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be functional additions rather than security patches. Here's the analysis following your requested format: Vulnerability Existed: no [No security vulnerability found] [third_party/jpeg-xl/lib/jxl/jpeg/dec_jpeg_data_writer.h] [Lines 13,24-25] [Old Code] #include <functional> #include "lib/jxl/jpeg/jpeg_data.h" namespace jxl { namespace jpeg { Status WriteJpeg(const JPEGData& jpg, const JPEGOutput& out); [Fixed Code] #include <functional> #include "lib/jxl/codec_in_out.h" #include "lib/jxl/jpeg/jpeg_data.h" namespace jxl { namespace jpeg { Status WriteJpeg(const JPEGData& jpg, const JPEGOutput& out); // Reconstructs the JPEG from the coefficients and metadata in CodecInOut. Status EncodeImageJPGCoefficients(const CodecInOut* io, PaddedBytes* bytes); The changes consist of: 1. Adding a new include for "lib/jxl/codec_in_out.h" 2. Adding a new function declaration for EncodeImageJPGCoefficients These appear to be normal code additions/enhancements rather than security fixes. No vulnerability patterns (like buffer overflows, memory leaks, etc.) are being addressed in this diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js@@ -13,14 +13,14 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; 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, here's the analysis: Vulnerability Existed: no [No specific vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.css-color-4-hsla-4.worker.js] [Lines 13-21] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; ctx.fillRect(0, 0, 100, 50); _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'); ctx.fillStyle = '#f00'; ctx.fillStyle = 'hsl(120.0, 100.0%, 50.0%, 20%)'; ctx.fillRect(0, 0, 100, 50); _assertPixel(canvas, 50,25, 0,255,0,51, "50,25", "0,255,0,51"); The changes appear to be purely variable name changes (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/html/canvas/offscreen/path-objects/2d.path.roundrect.4.radii.1.dompointinit.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.roundrect.4.radii.1.dompointinit.html@@ -17,8 +17,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -27,15 +27,15 @@ ctx.fill(); // top-left corner-_assertPixel(offscreenCanvas, 20,1, 255,0,0,255, "20,1", "255,0,0,255");-_assertPixel(offscreenCanvas, 41,1, 0,255,0,255, "41,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,10, 255,0,0,255, "1,10", "255,0,0,255");-_assertPixel(offscreenCanvas, 1,21, 0,255,0,255, "1,21", "0,255,0,255");+_assertPixel(canvas, 20,1, 255,0,0,255, "20,1", "255,0,0,255");+_assertPixel(canvas, 41,1, 0,255,0,255, "41,1", "0,255,0,255");+_assertPixel(canvas, 1,10, 255,0,0,255, "1,10", "255,0,0,255");+_assertPixel(canvas, 1,21, 0,255,0,255, "1,21", "0,255,0,255"); // other corners-_assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+_assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");+_assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");+_assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't identify any security vulnerabilities. The changes appear to be purely variable name refactoring from `offscreenCanvas` to `canvas` and corresponding updates to the assertions. Here's the analysis: 1. Vulnerability Existed: no No Vulnerability Found [File] [Lines 17-18, 27-35] Old Code: Used variable name `offscreenCanvas` Fixed Code: Changed to variable name `canvas` 2. Vulnerability Existed: no No Vulnerability Found [File] [Lines 27-35] Old Code: Used `_assertPixel(offscreenCanvas,...)` Fixed Code: Changed to `_assertPixel(canvas,...)` The changes are consistent throughout the file and don't introduce or fix any security-related issues. The modifications are purely about variable naming consistency and don't affect the security posture of the code.
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/dav1d/src/internal.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/dav1d/src/internal.h@@ -156,6 +156,8 @@ unsigned operating_point_idc; int all_layers; unsigned frame_size_limit;+ int strict_std_compliance;+ int output_invisible_frames; int drain; enum PictureFlags frame_flags; enum Dav1dEventFlags event_flags;
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: not sure [Configuration Control Vulnerability] [third_party/dav1d/src/internal.h] [Lines 156-158] [Old Code] unsigned frame_size_limit; int drain; [Fixed Code] unsigned frame_size_limit; int strict_std_compliance; int output_invisible_frames; int drain; Additional Details: - The diff shows the addition of two new configuration flags: `strict_std_compliance` and `output_invisible_frames` - While these appear to be feature additions rather than direct security fixes, they could potentially relate to security by: - `strict_std_compliance` might enforce stricter parsing of input streams - `output_invisible_frames` might control handling of frames not meant for display - Without more context about how these flags are used, it's difficult to determine if they fix specific vulnerabilities - The changes appear to be more about functionality and compliance than direct 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/dom/cache/test/mochitest/test_cache_padding.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/cache/test/mochitest/test_cache_padding.html@@ -100,6 +100,12 @@ // Note: For the cloned and cached opaque response, the padding size shouldn't // be changed. Thus, it makes the attacker harder to get the padding size.+ // Bug 1746646: Make mochitests work with TCP enabled (cookieBehavior = 5)+ // Acquire storage access permission here so that the Cache API is avaialable+ SpecialPowers.wrap(document).notifyUserGestureActivation();+ await SpecialPowers.addPermission("storageAccessAPI", true, window.location.href);+ await SpecialPowers.wrap(document).requestStorageAccess();+ const name = "cachePadding"; const other_name = "cachePaddingOther"; const cors_base = "https://example.com/test/dom/cache/test/mochitest/";
Based on the provided diff, here's the analysis: Vulnerability Existed: no [No Vulnerability Found] [dom/cache/test/mochitest/test_cache_padding.html] [Lines 100-106] [Old Code] // Note: For the cloned and cached opaque response, the padding size shouldn't // be changed. Thus, it makes the attacker harder to get the padding size. [Fixed Code] // Note: For the cloned and cached opaque response, the padding size shouldn't // be changed. Thus, it makes the attacker harder to get the padding size. // Bug 1746646: Make mochitests work with TCP enabled (cookieBehavior = 5) // Acquire storage access permission here so that the Cache API is avaialable SpecialPowers.wrap(document).notifyUserGestureActivation(); await SpecialPowers.addPermission("storageAccessAPI", true, window.location.href); await SpecialPowers.wrap(document).requestStorageAccess(); Additional Details: The changes appear to be test-related modifications to handle storage access permissions when TCP (Total Cookie Protection) is enabled. This is not a security fix but rather a test infrastructure update to ensure tests work correctly with enhanced privacy protections. The changes add necessary permissions for the test to access the Cache API when cookieBehavior is set to 5 (strict privacy mode).
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/font-access/resources/window-tests-blob.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/font-access/resources/window-tests-blob.js@@ -1,7 +1,7 @@ 'use strict'; font_access_test(async t => {- const fonts = await navigator.fonts.query({persistentAccess: true});+ const fonts = await navigator.fonts.query(); const expectedFonts = await filterEnumeration( fonts, getEnumerationTestSet({labelFilter: [TEST_SIZE_CATEGORY.small]})); const additionalExpectedTables = getMoreExpectedTables(expectedFonts);
Let me analyze this code diff for potential security vulnerabilities. Vulnerability Existed: yes Insecure Permissions Request [File] testing/web-platform/tests/font-access/resources/window-tests-blob.js [Lines] 3 [Old Code] const fonts = await navigator.fonts.query({persistentAccess: true}); [Fixed Code] const fonts = await navigator.fonts.query(); Additional Details: The vulnerability relates to requesting persistent access to fonts without proper justification. The old code requested persistent access to font data through the `{persistentAccess: true}` parameter, which could potentially allow long-term tracking or fingerprinting of users. The fixed code removes this persistent access request, making it a one-time access request which is more privacy-conscious. This change aligns with the principle of least privilege by only requesting the minimum necessary access. Note: While this isn't a classic security vulnerability like XSS or SQL injection, it does represent a privacy/security improvement by reducing unnecessary persistent permissions.
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/drawing-rectangles-to-the-canvas/2d.fillRect.zero.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/drawing-rectangles-to-the-canvas/2d.fillRect.zero.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 = '#0f0'; ctx.fillRect(0, 0, 100, 50);@@ -22,7 +22,7 @@ ctx.fillRect(0, 0, 100, 0); ctx.fillRect(0, 0, 0, 50); ctx.fillRect(0, 0, 0, 0);-_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(); });
I'll analyze the provided code diff according to the specified format. In this case, the changes appear to be primarily variable renaming rather than security fixes. Vulnerability Existed: no Variable Renaming [testing/web-platform/tests/html/canvas/offscreen/drawing-rectangles-to-the-canvas/2d.fillRect.zero.worker.js] [Lines 13-22] [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"); Additional Details: The changes in this diff consist solely of renaming the variable `offscreenCanvas` to `canvas`. There are no security-related changes or vulnerability fixes in this diff. The modification appears to be for consistency or readability purposes rather than addressing any security issues. 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.