Shared security patch analysis results
AI Used: DEEPSEEK deepseek-chat--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.outside2.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.gradient.radial.outside2.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 @@ g.addColorStop(1, '#f00'); ctx.fillStyle = g; ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,1, 0,255,0,255, "50,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,25, 0,255,0,255, "1,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,25, 0,255,0,255, "98,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,48, 0,255,0,255, "50,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");+_assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");+_assertPixel(canvas, 50,1, 0,255,0,255, "50,1", "0,255,0,255");+_assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");+_assertPixel(canvas, 1,25, 0,255,0,255, "1,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 98,25, 0,255,0,255, "98,25", "0,255,0,255");+_assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+_assertPixel(canvas, 50,48, 0,255,0,255, "50,48", "0,255,0,255");+_assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "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, renaming a variable from `offscreenCanvas` to `canvas` and updating all references to it. 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.gradient.radial.outside2.html] [17-48] [Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, ...)] [Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, ...)] The changes are purely variable naming improvements with no security implications. 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/security/sandbox/linux/reporter/SandboxReporterCommon.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/security/sandbox/linux/reporter/SandboxReporterCommon.h@@ -35,6 +35,7 @@ MEDIA_PLUGIN, RDD, SOCKET_PROCESS,+ UTILITY, }; // The syscall number and arguments are usually `unsigned long`, but
Let me analyze this code diff for potential security fixes: Vulnerability Existed: not sure [Potential Missing Enum Value] [security/sandbox/linux/reporter/SandboxReporterCommon.h] [Lines 35-36] [Old Code] MEDIA_PLUGIN, RDD, SOCKET_PROCESS, [Fixed Code] MEDIA_PLUGIN, RDD, SOCKET_PROCESS, UTILITY, Additional Details: - The diff shows the addition of a new enum value `UTILITY` to the existing list - While this isn't clearly fixing a security vulnerability, it might be related to process isolation/sandboxing improvements - The change could be part of a larger security enhancement to properly handle utility processes in the sandbox reporter - Without more context about the surrounding code and the purpose of this enum, I can't definitively say if this fixes a vulnerability
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/selectors/old-tests/css3-modsel-37.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-37.xml@@ -7,7 +7,6 @@ ]]></style> <link rel="author" title="Daniel Glazman" href="http://glazman.org/"/> <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"/> <!-- bogus link to make sure it gets found -->- <meta name="flags" content="" /> </head> <body> <div class="t1">
Analysis: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/css/selectors/old-tests/css3-modsel-37.xml [Lines] 7 [Old Code] <meta name="flags" content="" /> [Fixed Code] (line removed) Additional Details: - The diff shows only the removal of an empty meta tag with "flags" attribute, which doesn't appear to be security-related - This appears to be a test file cleanup rather than a security fix - No known vulnerability patterns (XSS, injection, etc.) are present in this change - The change doesn't affect any security-relevant functionality Note: The "bogus link" comment suggests this is a test file, and the changes are likely related to test maintenance rather than security fixes.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/dom/serviceworkers/ServiceWorkerManager.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/serviceworkers/ServiceWorkerManager.cpp@@ -432,8 +432,6 @@ NS_INTERFACE_MAP_BEGIN(ServiceWorkerManager) NS_INTERFACE_MAP_ENTRY(nsIServiceWorkerManager) NS_INTERFACE_MAP_ENTRY(nsIObserver)- NS_INTERFACE_MAP_ENTRY(nsITimerCallback)- NS_INTERFACE_MAP_ENTRY(nsINamed) NS_INTERFACE_MAP_ENTRY_AMBIGUOUS(nsISupports, nsIServiceWorkerManager) NS_INTERFACE_MAP_END@@ -443,9 +441,6 @@ ServiceWorkerManager::~ServiceWorkerManager() { // The map will assert if it is not empty when destroyed. mRegistrationInfos.Clear();- if (mTelemetryTimer) {- mTelemetryTimer->Cancel();- } // This can happen if the browser is started up in ProfileManager mode, in // which case XPCOM will startup and shutdown, but there won't be any@@ -510,22 +505,45 @@ } mActor = static_cast<ServiceWorkerManagerChild*>(actor);- constexpr uint32_t period_ms = 10 * 1000;-- NS_NewTimerWithCallback(getter_AddRefs(mTelemetryTimer), this, period_ms,- nsITimer::TYPE_REPEATING_SLACK);-}--NS_IMETHODIMP-ServiceWorkerManager::Notify(nsITimer* aTimer) {- ServiceWorkerPrivateImpl::ReportRunning();- return NS_OK;-}--// nsINamed implementation-NS_IMETHODIMP ServiceWorkerManager::GetName(nsACString& aNameOut) {- aNameOut.AssignLiteral("ServiceWorkerManager");- return NS_OK;++ mTelemetryLastChange = TimeStamp::Now();+}++void ServiceWorkerManager::RecordTelemetry(uint32_t aNumber, uint32_t aFetch) {+ // Submit N value pairs to Telemetry for the time we were at those values+ auto now = TimeStamp::Now();+ // round down, with a minimum of 1 repeat. In theory this gives+ // inaccuracy if there are frequent changes, but that's uncommon.+ uint32_t repeats = (uint32_t)((now - mTelemetryLastChange).ToMilliseconds()) /+ mTelemetryPeriodMs;+ mTelemetryLastChange = now;+ if (repeats == 0) {+ repeats = 1;+ }+ nsCOMPtr<nsIRunnable> runnable = NS_NewRunnableFunction(+ "ServiceWorkerTelemetryRunnable", [aNumber, aFetch, repeats]() {+ LOG(("ServiceWorkers running: %u samples of %u/%u", repeats, aNumber,+ aFetch));+ // Don't allocate infinitely huge arrays if someone visits a SW site+ // after a few months running. 1 month is about 500K repeats @ 5s+ // sampling+ uint32_t num_repeats = std::min(repeats, 1000000U); // 4MB max+ nsTArray<uint32_t> values;++ uint32_t* array = values.AppendElements(num_repeats);+ for (uint32_t i = 0; i < num_repeats; i++) {+ array[i] = aNumber;+ }+ Telemetry::Accumulate(Telemetry::SERVICE_WORKER_RUNNING, "All"_ns,+ values);++ for (uint32_t i = 0; i < num_repeats; i++) {+ array[i] = aFetch;+ }+ Telemetry::Accumulate(Telemetry::SERVICE_WORKER_RUNNING, "Fetch"_ns,+ values);+ });+ NS_DispatchBackgroundTask(runnable.forget(), nsIEventTarget::DISPATCH_NORMAL); } RefPtr<GenericErrorResultPromise> ServiceWorkerManager::StartControllingClient(@@ -700,7 +718,9 @@ nsresult rv = NS_DispatchToMainThread(runnable); Unused << NS_WARN_IF(NS_FAILED(rv)); mActor = nullptr;- ServiceWorkerPrivateImpl::CheckRunningShutdown();++ // This also submits final telemetry+ ServiceWorkerPrivateImpl::RunningShutdown(); } class ServiceWorkerResolveWindowPromiseOnRegisterCallback final
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Timer Resource Leak] [dom/serviceworkers/ServiceWorkerManager.cpp] [Lines 443-445] [Old Code] if (mTelemetryTimer) { mTelemetryTimer->Cancel(); } [Fixed Code] [Removed] 2. Vulnerability Existed: not sure [Potential Information Exposure] [dom/serviceworkers/ServiceWorkerManager.cpp] [Lines 510-522] [Old Code] constexpr uint32_t period_ms = 10 * 1000; NS_NewTimerWithCallback(getter_AddRefs(mTelemetryTimer), this, period_ms, nsITimer::TYPE_REPEATING_SLACK); [Fixed Code] mTelemetryLastChange = TimeStamp::Now(); 3. Vulnerability Existed: not sure [Potential Denial of Service] [dom/serviceworkers/ServiceWorkerManager.cpp] [Lines 505-545] [Old Code] NS_IMETHODIMP ServiceWorkerManager::Notify(nsITimer* aTimer) { ServiceWorkerPrivateImpl::ReportRunning(); return NS_OK; } [Fixed Code] [Removed and replaced with RecordTelemetry method] Note: The changes appear to be more about architectural improvements and telemetry reporting rather than clear security fixes. The removal of timer-related code could potentially address resource management issues, but without more context, it's not certain if these were actual vulnerabilities. The new telemetry implementation appears to be more controlled with limits on data collection (1000000U max repeats).
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/WorkerDebugger.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/workers/WorkerDebugger.cpp@@ -3,8 +3,6 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */--#include "WorkerDebugger.h" #include "mozilla/dom/BrowsingContext.h" #include "mozilla/dom/MessageEvent.h"@@ -18,9 +16,9 @@ #include "ScriptLoader.h" #include "WorkerCommon.h" #include "WorkerError.h"-#include "WorkerPrivate.h" #include "WorkerRunnable.h"-#include "WorkerScope.h"+#include "WorkerDebugger.h"+ #if defined(XP_WIN) # include <processthreadsapi.h> // for GetCurrentProcessId() #else@@ -548,8 +546,10 @@ } // We need to keep a ref on workerPrivate, passed to the promise,- // to make sure it's still aloive when collecting the info.- RefPtr<WorkerPrivate> workerRef = mWorkerPrivate;+ // to make sure it's still aloive when collecting the info+ // (and CheckedUnsafePtr does not convert directly to RefPtr).+ WorkerPrivate* workerPtr = mWorkerPrivate;+ RefPtr<WorkerPrivate> workerRef = workerPtr; RefPtr<AbstractThread> mainThread = AbstractThread::MainThread(); return CollectMemoryInfo(top, mainThread)
Here's the analysis following the specified format: 1. Vulnerability Existed: yes Missing Header Inclusion Guard [dom/workers/WorkerDebugger.cpp] [Lines 3-6] [Old Code] #include "WorkerDebugger.h" [Fixed Code] (removed line) Details: The removal of the explicit inclusion of "WorkerDebugger.h" suggests there might have been a potential header inclusion issue or circular dependency that could lead to compilation problems or incorrect symbol resolution. 2. Vulnerability Existed: yes Potential Use-After-Free [dom/workers/WorkerDebugger.cpp] [Lines 548-550] [Old Code] RefPtr<WorkerPrivate> workerRef = mWorkerPrivate; [Fixed Code] WorkerPrivate* workerPtr = mWorkerPrivate; RefPtr<WorkerPrivate> workerRef = workerPtr; Details: The change in how the WorkerPrivate reference is obtained suggests there might have been a potential use-after-free vulnerability or thread safety issue with directly converting CheckedUnsafePtr to RefPtr. The new code explicitly gets the raw pointer first before creating the RefPtr. 3. Vulnerability Existed: not sure Header Reorganization [dom/workers/WorkerDebugger.cpp] [Lines 16-20] [Old Code] #include "WorkerPrivate.h" #include "WorkerScope.h" [Fixed Code] #include "WorkerDebugger.h" Details: The reorganization of header inclusions might indicate some build system or compilation issues, but it's unclear if this had any security implications. The change could be related to build optimization or preventing circular 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/js/src/frontend/CompilationStencil.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/frontend/CompilationStencil.h@@ -937,6 +937,7 @@ [[nodiscard]] bool prepareStorageFor(JSContext* cx, size_t nonLazyScriptCount, size_t allScriptCount);+ [[nodiscard]] bool cloneFrom(JSContext* cx, const SharedDataContainer& other); // Returns index-th script's shared data, or nullptr if it doesn't have. js::SharedImmutableScriptData* get(ScriptIndex index) const;@@ -1025,14 +1026,10 @@ // Used during instantiation. bool canLazilyParse = false;- // FunctionKey is an encoded position of a function within the source text- // that is reproducible.- using FunctionKey = uint32_t;- static constexpr FunctionKey NullFunctionKey = 0;- // If this stencil is a delazification, this identifies location of the // function in the source text.- FunctionKey functionKey = NullFunctionKey;+ using FunctionKey = SourceExtent::FunctionKey;+ FunctionKey functionKey = SourceExtent::NullFunctionKey; // This holds allocations that do not require destructors to be run but are // live until the stencil is released.@@ -1102,15 +1099,9 @@ #endif public:- static FunctionKey toFunctionKey(const SourceExtent& extent) {- // In eval("x=>1"), the arrow function will have a sourceStart of 0 which- // conflicts with the NullFunctionKey, so shift all keys by 1 instead.- auto result = extent.sourceStart + 1;- MOZ_ASSERT(result != NullFunctionKey);- return result;- }-- bool isInitialStencil() const { return functionKey == NullFunctionKey; }+ bool isInitialStencil() const {+ return functionKey == SourceExtent::NullFunctionKey;+ } [[nodiscard]] static bool instantiateStencilAfterPreparation( JSContext* cx, CompilationInput& input, const CompilationStencil& stencil,@@ -1161,13 +1152,15 @@ const CompilationStencil& stencil, CompilationGCOutput& gcOutput); void setFunctionKey(BaseScript* lazy) {- functionKey = toFunctionKey(lazy->extent());+ functionKey = lazy->extent().toFunctionKey(); } inline size_t sizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const; size_t sizeOfIncludingThis(mozilla::MallocSizeOf mallocSizeOf) const { return mallocSizeOf(this) + sizeOfExcludingThis(mallocSizeOf); }++ const ParserAtomSpan& parserAtomsSpan() const { return parserAtomData; } bool isModule() const;@@ -1205,9 +1198,9 @@ struct ExtensibleCompilationStencil { bool canLazilyParse = false;- using FunctionKey = CompilationStencil::FunctionKey;-- FunctionKey functionKey = CompilationStencil::NullFunctionKey;+ using FunctionKey = SourceExtent::FunctionKey;++ FunctionKey functionKey = SourceExtent::NullFunctionKey; // Data pointed by other fields are allocated in this LifoAlloc, // and moved to `CompilationStencil.alloc`.@@ -1244,6 +1237,9 @@ explicit ExtensibleCompilationStencil(JSContext* cx, ScriptSource* source); ExtensibleCompilationStencil(JSContext* cx, CompilationInput& input);+ ExtensibleCompilationStencil(JSContext* cx,+ const JS::ReadOnlyCompileOptions& options,+ RefPtr<ScriptSource> source); ExtensibleCompilationStencil(ExtensibleCompilationStencil&& other) noexcept : canLazilyParse(other.canLazilyParse),@@ -1293,15 +1289,29 @@ } void setFunctionKey(const SourceExtent& extent) {- functionKey = CompilationStencil::toFunctionKey(extent);+ functionKey = extent.toFunctionKey(); } bool isInitialStencil() const {- return functionKey == CompilationStencil::NullFunctionKey;+ return functionKey == SourceExtent::NullFunctionKey; } // Steal CompilationStencil content. [[nodiscard]] bool steal(JSContext* cx, RefPtr<CompilationStencil>&& other);++ // Clone ExtensibleCompilationStencil content.+ [[nodiscard]] bool cloneFrom(JSContext* cx, const CompilationStencil& other);+ [[nodiscard]] bool cloneFrom(JSContext* cx,+ const ExtensibleCompilationStencil& other);++ private:+ template <typename Stencil>+ [[nodiscard]] bool cloneFromImpl(JSContext* cx, const Stencil& other);++ public:+ const ParserAtomVector& parserAtomsSpan() const {+ return parserAtoms.entries();+ } bool isModule() const;@@ -1655,7 +1665,7 @@ // ExtensibleCompilationStencil. struct CompilationStencilMerger { private:- using FunctionKey = ExtensibleCompilationStencil::FunctionKey;+ using FunctionKey = SourceExtent::FunctionKey; // The stencil for the initial compilation. // Delazifications are merged into this.
Analyzing the provided code diff, I don't see any clear security vulnerabilities being fixed. The changes appear to be primarily refactoring and functionality improvements rather than security patches. Here's my analysis: 1. Vulnerability Existed: no No specific vulnerability found in the diff. The changes are primarily: - Moving FunctionKey definition to SourceExtent - Adding cloneFrom methods - Refactoring function key handling - Adding parserAtomsSpan accessor 2. Vulnerability Existed: no The changes involve: - Removing the custom toFunctionKey implementation in favor of SourceExtent's version - Adding new constructors for ExtensibleCompilationStencil - Adding clone functionality The diff shows architectural improvements rather than security fixes: - Better encapsulation of FunctionKey logic in SourceExtent - Added cloning capability for stencils - Improved initialization options - Better const correctness with parserAtomsSpan accessor No CVE or specific vulnerability patterns (like buffer overflows, injection vulnerabilities, etc.) are evident in these changes. The modifications appear to be part of normal code maintenance and improvement.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.componentTransfer.discrete.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.componentTransfer.discrete.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'); // From https://www.w3.org/TR/SVG11/filters.html#feComponentTransferElement function getTransformedValue(C, V) {@@ -59,7 +59,7 @@ let outputColor = getColor(color, [tableValuesR, tableValuesG, tableValuesB]); ctx.fillStyle = `rgb(${color[0]}, ${color[1]}, ${color[2]})`; ctx.fillRect(0, 0, 10, 10);- _assertPixelApprox(offscreenCanvas, 5, 5, outputColor[0],outputColor[1],outputColor[2],255, "5,5", `${outputColor[0]},${outputColor[1]},${outputColor[2]}`, 2);+ _assertPixelApprox(canvas, 5, 5, outputColor[0],outputColor[1],outputColor[2],255, "5,5", `${outputColor[0]},${outputColor[1]},${outputColor[2]}`, 2); } t.done();
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and corresponding updates to variable references. Here's the analysis: 1. Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/filters/2d.filter.canvasFilterObject.componentTransfer.discrete.html Lines: 17-18, 59 Old Code: ```javascript var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _assertPixelApprox(offscreenCanvas, 5, 5, outputColor[0],outputColor[1],outputColor[2],255, "5,5", `${outputColor[0]},${outputColor[1]},${outputColor[2]}`, 2); ``` Fixed Code: ```javascript var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _assertPixelApprox(canvas, 5, 5, outputColor[0],outputColor[1],outputColor[2],255, "5,5", `${outputColor[0]},${outputColor[1]},${outputColor[2]}`, 2); ``` The changes are purely cosmetic/refactoring in nature and don't appear to address any security issues. The functionality remains exactly the same, only the variable name has been changed for consistency or clarity.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.transform.1.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.transform.1.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50);@@ -22,7 +22,7 @@ ctx.shadowColor = '#0f0'; ctx.translate(100, 100); ctx.fillRect(-100, -150, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
Based on the provided diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: no No security vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.transform.1.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"); The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) with no security implications. The functionality remains exactly the same, just with a different variable name. No security vulnerability was fixed in this change.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/taskcluster/ci/fuzzing/kind.yml+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/taskcluster/ci/fuzzing/kind.yml@@ -15,31 +15,52 @@ - build job-defaults:- platform: linux64/opt- require-build:- linux64/opt: build-linux64/opt worker-type: b-linux worker: max-run-time: 3600 docker-image: {in-tree: debian11-amd64-build}- env:- LD_LIBRARY_PATH: /builds/worker/fetches- JSSHELL: ./js treeherder: kind: test tier: 3- fetches:- build:- - target.jsshell.zip- - target.fuzztest.tests.tar.gz jobs: simple:+ platform: linux64/opt+ require-build:+ linux64/opt: build-linux64/opt description: Simple Fuzzing Test treeherder: symbol: simple-fuzzing+ fetches:+ build:+ - target.jsshell.zip+ - target.fuzztest.tests.tar.gz+ worker:+ env:+ LD_LIBRARY_PATH: /builds/worker/fetches+ JSSHELL: ./js run: using: run-task command: >- cd $MOZ_FETCHES_DIR && python3 tools/fuzzing/smoke/smoke.py++ python:+ platform: linux64-asan-fuzzing/opt+ require-build:+ linux64-asan-fuzzing/opt: build-linux64-asan-fuzzing/opt+ description: Python Fuzzing Smoke Tests+ treeherder:+ symbol: fuzzing-python+ fetches:+ build:+ - target.tar.bz2+ run:+ using: run-task+ cwd: '{checkout}'+ command: >+ export GECKO_BINARY_PATH=$MOZ_FETCHES_DIR/firefox/firefox &&+ ./mach python-test --subsuite fuzzing+ when:+ files-changed:+ - 'tools/fuzzing/smoke/**'
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Potential Environment Variable Exposure] [taskcluster/ci/fuzzing/kind.yml] [Lines 15-31, 35-52] [Old Code] ```yaml worker: max-run-time: 3600 docker-image: {in-tree: debian11-amd64-build} env: LD_LIBRARY_PATH: /builds/worker/fetches JSSHELL: ./js ``` [Fixed Code] ```yaml worker: max-run-time: 3600 docker-image: {in-tree: debian11-amd64-build} ``` Additional Details: The environment variables were moved to be job-specific rather than global defaults, which could potentially reduce exposure surface. However, this may just be a structural change rather than a security fix. 2. Vulnerability Existed: not sure [Potential Build Artifact Exposure] [taskcluster/ci/fuzzing/kind.yml] [Lines 15-31, 35-52] [Old Code] ```yaml fetches: build: - target.jsshell.zip - target.fuzztest.tests.tar.gz ``` [Fixed Code] ```yaml fetches: build: - target.jsshell.zip - target.fuzztest.tests.tar.gz ``` Additional Details: The fetch artifacts were moved to be job-specific rather than global defaults. While this doesn't change the actual artifacts being fetched, it could be part of a security architecture improvement by limiting artifact exposure to only jobs that need them. Note: The diff shows significant restructuring of the configuration file, moving job-specific configurations from global defaults to individual job definitions. While this improves modularity and may have security benefits, there's no clear vulnerability being fixed in this diff. The changes appear to be more about code organization 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/devtools/client/framework/toolbox-options.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/framework/toolbox-options.js@@ -12,12 +12,6 @@ "devtools/client/locales/toolbox.properties" );-loader.lazyRequireGetter(- this,- "AppConstants",- "resource://gre/modules/AppConstants.jsm",- true-); loader.lazyRequireGetter( this, "openDocLink",@@ -430,15 +424,19 @@ setupAdditionalOptions: function() { const prefDefinitions = [];- // New performance panel can be used in NIGHTLY or DEV_EDITION. We keep the- // setting hidden in RELEASE or BETA. Should be removed in Bug 1693316.- const isNewPerfAllowed =- AppConstants.NIGHTLY_BUILD || AppConstants.MOZ_DEV_EDITION;- if (isNewPerfAllowed) {+ prefDefinitions.push({+ pref: "devtools.performance.new-panel-enabled",+ label: L10N.getStr("options.enableNewPerformancePanel"),+ id: "devtools-new-performance",+ parentId: "context-options",+ });++ if (GetPref("devtools.custom-formatters")) { prefDefinitions.push({- pref: "devtools.performance.new-panel-enabled",- label: L10N.getStr("options.enableNewPerformancePanel"),- id: "devtools-new-performance",+ pref: "devtools.custom-formatters.enabled",+ l10nLabelId: "options-enable-custom-formatters-label",+ l10nTooltipId: "options-enable-custom-formatters-tooltip",+ id: "devtools-custom-formatters", parentId: "context-options", }); }@@ -481,8 +479,18 @@ }); }- const createPreferenceOption = ({ pref, label, id, onChange }) => {+ const createPreferenceOption = ({+ pref,+ label,+ l10nLabelId,+ l10nTooltipId,+ id,+ onChange,+ }) => { const inputLabel = this.panelDoc.createElement("label");+ if (l10nTooltipId) {+ this.panelDoc.l10n.setAttributes(inputLabel, l10nTooltipId);+ } const checkbox = this.panelDoc.createElement("input"); checkbox.setAttribute("type", "checkbox"); if (GetPref(pref)) {@@ -497,7 +505,11 @@ }); const inputSpanLabel = this.panelDoc.createElement("span");- inputSpanLabel.textContent = label;+ if (l10nLabelId) {+ this.panelDoc.l10n.setAttributes(inputSpanLabel, l10nLabelId);+ } else if (label) {+ inputSpanLabel.textContent = label;+ } inputLabel.appendChild(checkbox); inputLabel.appendChild(inputSpanLabel);
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/framework/toolbox-options.js [Lines] 12-6, 430-481 [Old Code] loader.lazyRequireGetter( this, "AppConstants", "resource://gre/modules/AppConstants.jsm", true ); // New performance panel can be used in NIGHTLY or DEV_EDITION. We keep the // setting hidden in RELEASE or BETA. Should be removed in Bug 1693316. const isNewPerfAllowed = AppConstants.NIGHTLY_BUILD || AppConstants.MOZ_DEV_EDITION; if (isNewPerfAllowed) { prefDefinitions.push({ pref: "devtools.performance.new-panel-enabled", label: L10N.getStr("options.enableNewPerformancePanel"), id: "devtools-new-performance", parentId: "context-options", }); } [Fixed Code] prefDefinitions.push({ pref: "devtools.performance.new-panel-enabled", label: L10N.getStr("options.enableNewPerformancePanel"), id: "devtools-new-performance", parentId: "context-options", }); Additional Details: This change appears to be a feature modification rather than a security fix. The code removes the AppConstants check and makes the performance panel option available in all builds. 2. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/framework/toolbox-options.js [Lines] 430-481 [Old Code] // Old version didn't have the custom formatters check [Fixed Code] if (GetPref("devtools.custom-formatters")) { prefDefinitions.push({ pref: "devtools.custom-formatters.enabled", l10nLabelId: "options-enable-custom-formatters-label", l10nTooltipId: "options-enable-custom-formatters-tooltip", id: "devtools-custom-formatters", parentId: "context-options", }); } Additional Details: This change adds a new feature option for custom formatters, which doesn't appear to be security-related. 3. Vulnerability Existed: no No specific vulnerability found [File] devtools/client/framework/toolbox-options.js [Lines] 481-505 [Old Code] const createPreferenceOption = ({ pref, label, id, onChange }) => { const inputLabel = this.panelDoc.createElement("label"); const checkbox = this.panelDoc.createElement("input"); checkbox.setAttribute("type", "checkbox"); if (GetPref(pref)) { checkbox.setAttribute("checked", "checked"); } checkbox.setAttribute("id", id); checkbox.addEventListener("change", () => { SetPref(pref, checkbox.checked); if (onChange) { onChange(checkbox.checked); } }); const inputSpanLabel = this.panelDoc.createElement("span"); inputSpanLabel.textContent = label; [Fixed Code] const createPreferenceOption = ({ pref, label, l10nLabelId, l10nTooltipId, id, onChange, }) => { const inputLabel = this.panelDoc.createElement("label"); if (l10nTooltipId) { this.panelDoc.l10n.setAttributes(inputLabel, l10nTooltipId); } const checkbox = this.panelDoc.createElement("input"); checkbox.setAttribute("type", "checkbox"); if (GetPref(pref)) { checkbox.setAttribute("checked", "checked"); } checkbox.setAttribute("id", id); checkbox.addEventListener("change", () => { SetPref(pref, checkbox.checked); if (onChange) { onChange(checkbox.checked); } }); const inputSpanLabel = this.panelDoc.createElement("span"); if (l10nLabelId) { this.panelDoc.l10n.setAttributes(inputSpanLabel, l10nLabelId); } else if (label) { inputSpanLabel.textContent = label; } Additional Details: This change adds support for localization attributes in the preference options, which is a feature enhancement rather than a security fix. No security vulnerabilities were identified in the provided diff. The changes appear to be feature modifications and improvements to the developer tools interface.
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/extensions/webidl-api/ExtensionBrowser.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/extensions/webidl-api/ExtensionBrowser.h@@ -9,6 +9,7 @@ #include "nsCOMPtr.h" #include "nsISupports.h"+#include "nsTHashMap.h" #include "nsWrapperCache.h" class nsIGlobalObject;
Based on the provided diff, here's the analysis following the required format: Vulnerability Existed: not sure [Potential Memory Management Issue] [ExtensionBrowser.h] [Lines 9-10] [Old Code] #include "nsCOMPtr.h" #include "nsISupports.h" [Fixed Code] #include "nsCOMPtr.h" #include "nsISupports.h" #include "nsTHashMap.h" Additional Details: 1. The change adds an include for "nsTHashMap.h", which suggests the file will now use hash map functionality 2. Without seeing the actual usage changes, it's difficult to determine if this was fixing a specific vulnerability 3. The addition could be related to fixing potential memory management issues or improving data structure safety, but this is speculative 4. The change might be part of a larger security fix that isn't visible in this isolated diff Note: This appears to be a preparatory change rather than a direct vulnerability fix. The actual security implications would depend on how nsTHashMap is used in the modified 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/testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.round.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData.create2.round.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); var imgdata1 = ctx.createImageData(10.01, 10.99); var imgdata2 = ctx.getImageData(0, 0, 10.01, 10.99);
Analysis of the provided code diff: 1. Vulnerability Existed: no Variable Renaming [File] [Lines 13-14] Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); Fixed Code: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); Additional Details: - This appears to be a simple variable renaming from `offscreenCanvas` to `canvas` for consistency or clarity. - No security vulnerability is being addressed here. - The change doesn't affect functionality or introduce/remove any security-related features. - The rest of the file (image data creation and manipulation) remains unchanged 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.stroke.prune.corner.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.stroke.prune.corner.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);@@ -29,7 +29,7 @@ ctx.lineTo(-100, 200); ctx.lineTo(-100, 1000); ctx.stroke();-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't find any security vulnerabilities. The changes appear to be purely cosmetic/refactoring changes where the variable name `offscreenCanvas` was renamed to `canvas` for consistency or clarity. The functionality remains the same. Vulnerability Existed: no No security vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/path-objects/2d.path.stroke.prune.corner.worker.js [Lines] Variable renaming throughout the file [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); The changes don't introduce or fix any security issues, they're just variable naming improvements. The canvas operations and assertions remain functionally identical.
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/remote/doc/marionette/Testing.md+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/remote/doc/marionette/Testing.md@@ -57,14 +57,14 @@ When working on Marionette it is often useful to surface the stdout from Gecko, which can be achieved using the `--gecko-log` option.-See <Debugging.html> for usage instructions, but the gist is that+See [Debugging](Debugging.md) for usage instructions, but the gist is that you can redirect all Gecko output to stdout: % ./mach marionette-test --gecko-log - TEST Our functional integration tests pop up Firefox windows sporadically, and a helpful tip is to suppress the window can be to use Firefox’-[headless mode]:+headless mode: % ./mach marionette-test -z TEST@@ -75,7 +75,7 @@ similar to using Xvfb(1) which you may know from the X windowing system, but has the additional benefit of also working on macOS and Windows.-[functional tests]: PythonTests.html+[functional tests]: PythonTests.md [Firefox Nightly]: https://nightly.mozilla.org/@@ -131,8 +131,7 @@ You should see output like `{"applicationType":"gecko","marionetteProtocol":3}`-[headless mode]: https://developer.mozilla.org/en-US/Firefox/Headless_mode-[geckodriver]: /testing/geckodriver/geckodriver+[geckodriver]: /testing/geckodriver/index.rst WPT functional tests@@ -151,12 +150,12 @@ enables more detailed logging, as well as `--jsdebugger` for opening the Browser Toolbox.-A particularly useful trick is to combine this with the [headless-mode] for Firefox we learned about earlier:-- % MOZ_HEADLESS=1 ./mach wpt --webdriver-arg='-vv' testing/web-platform/tests/webdriver--[WebDriver]: https://w3c.github.io/webdriver/webdriver-spec.html+A particularly useful trick is to combine this with the headless+mode for Firefox:++ % ./mach wpt --webdriver-arg='-vv' --headless testing/web-platform/tests/webdriver++[WebDriver]: https://w3c.github.io/webdriver/ Harness tests@@ -179,7 +178,7 @@ ----------------- Additionally, for debugging hard-to-reproduce test failures in CI,-one-click loaners from <Taskcluster.html> can be particularly useful.+one-click loaners from [Taskcluster](Taskcluster.md) can be particularly useful. Out-of-tree testing@@ -188,7 +187,7 @@ All the above examples show tests running _in-tree_, with a local checkout of _central_ and a local build of Firefox. It is also possibly to run the Marionette tests _without_ a local build and-with a downloaded test archive from <Taskcluster.html>.+with a downloaded test archive from [Taskcluster](Taskcluster.md) If you want to run tests from a downloaded test archive, you will need to download the `target.common.tests.tar.gz` artifact attached to
After analyzing the provided code diff, I don't find any security-related vulnerabilities being fixed. The changes appear to be documentation updates, link corrections, and formatting improvements. Here's the analysis: 1. Documentation Link Updates: Vulnerability Existed: no Documentation Link Updates [File] [Lines 57,75,131,151,178,188] [Old Code] - Various HTML links and references [Fixed Code] - Updated to use markdown links and correct paths 2. Headless Mode Reference Update: Vulnerability Existed: no Headless Mode Reference [File] [Lines 60,151] [Old Code] - Reference to external MDN link for headless mode [Fixed Code] - Simplified to direct description without external reference 3. WebDriver Link Update: Vulnerability Existed: no WebDriver Link Update [File] [Lines 151] [Old Code] - Link to specific section of WebDriver spec [Fixed Code] - Link to root of WebDriver spec The changes are primarily documentation improvements rather than security fixes. 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/testing/web-platform/tests/html/canvas/offscreen/drawing-images-to-the-canvas/2d.drawImage.9arg.destsize.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.9arg.destsize.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);@@ -50,10 +50,10 @@ ctx.drawImage(bitmap1, 0, 0, 100, 50, 100, 0, 50, 50); ctx.drawImage(bitmap1, 0, 0, 100, 50, 0, -25, 100, 25); ctx.drawImage(bitmap1, 0, 0, 100, 50, 0, 50, 100, 25);- _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);
After analyzing the provided code diff, here are the findings: 1. Vulnerability Existed: no Variable Renaming [File] [Lines 18-19, 50-53] Old Code: var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _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: var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _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); Additional Details: - The changes appear to be purely cosmetic, renaming the variable `offscreenCanvas` to `canvas` for consistency or readability. - There are no security-related changes or vulnerability fixes in this diff. - The functionality remains exactly the same, only the variable name has changed. - Note: There appears to be a typo in the fixed code where `canvas` is misspelled as `canvas` in some lines (though this might be a copy-paste error in the diff provided).
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/streams/readable-streams/default-reader.any.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/streams/readable-streams/default-reader.any.js@@ -1,4 +1,4 @@-// META: global=window,worker,jsshell+// META: global=window,worker // META: script=../resources/rs-utils.js 'use strict';@@ -512,3 +512,28 @@ reader.releaseLock(); }); }, 'controller.close() should clear the list of pending read requests');++promise_test(t => {++ let controller;+ const rs = new ReadableStream({+ start(c) {+ controller = c;+ }+ });++ const reader1 = rs.getReader();+ const promise1 = promise_rejects_js(t, TypeError, reader1.read(), 'read() from reader1 should reject when reader1 is released');+ reader1.releaseLock();++ controller.enqueue('a');++ const reader2 = rs.getReader();+ const promise2 = reader2.read().then(r => {+ assert_object_equals(r, { value: 'a', done: false }, 'read() from reader2 should resolve with enqueued chunk');+ })+ reader2.releaseLock();++ return Promise.all([promise1, promise2]);++}, 'Second reader can read chunks after first reader was released with pending read requests');
Here's the analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/streams/readable-streams/default-reader.any.js [Lines] 1 [Old Code] // META: global=window,worker,jsshell [Fixed Code] // META: global=window,worker Additional Details: This change simply removes 'jsshell' from the test environment globals, which appears to be a test configuration change rather than a security fix. 2. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/streams/readable-streams/default-reader.any.js [Lines] 512-536 [Old Code] (no code - this is new test addition) [Fixed Code] (new test case for reader behavior) Additional Details: The added test case verifies correct behavior when switching readers, which is a functional test rather than a security fix. The diff primarily contains test-related changes (removing a test environment and adding a new test case) rather than security fixes. No specific vulnerabilities are being addressed in these changes.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/ppv-lite86/src/types.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/ppv-lite86/src/types.rs@@ -75,7 +75,9 @@ /// NOTE: functions in this trait may be moved to Vec4 in any patch release. To avoid breakage, /// import Vec4Ext only together with Vec4, and don't qualify its methods. pub trait Vec4Ext<W> {- fn transpose4(a: Self, b: Self, c: Self, d: Self) -> (Self, Self, Self, Self) where Self: Sized;+ fn transpose4(a: Self, b: Self, c: Self, d: Self) -> (Self, Self, Self, Self)+ where+ Self: Sized; } pub trait Vector<T> { fn to_scalars(self) -> T;@@ -121,12 +123,7 @@ { } pub trait u64x2<M: Machine>:- BitOps64- + Store<vec128_storage>- + ArithOps- + Vec2<u64>- + MultiLane<[u64; 2]>- + Into<vec128_storage>+ BitOps64 + Store<vec128_storage> + ArithOps + Vec2<u64> + MultiLane<[u64; 2]> + Into<vec128_storage> { } pub trait u128x1<M: Machine>:
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely stylistic/formatting changes with no security implications. Here's the analysis following the requested format: Vulnerability Existed: no No security vulnerability found [third_party/rust/ppv-lite86/src/types.rs] [Lines 75-123] [Old Code] - fn transpose4(a: Self, b: Self, c: Self, d: Self) -> (Self, Self, Self, Self) where Self: Sized; ... - BitOps64 - + Store<vec128_storage> - + ArithOps - + Vec2<u64> - + MultiLane<[u64; 2]> - + Into<vec128_storage> [Fixed Code] + fn transpose4(a: Self, b: Self, c: Self, d: Self) -> (Self, Self, Self, Self) + where + Self: Sized; ... + BitOps64 + Store<vec128_storage> + ArithOps + Vec2<u64> + MultiLane<[u64; 2]> + Into<vec128_storage> The changes consist of: 1. Reformatting the `transpose4` function declaration to put the `where` clause on separate lines 2. Condensing the trait bounds for `u64x2` into a single line Neither change has any security impact - they're purely about code style and readability.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.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.invalid.css-color-4-hsl-2.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 = '#0f0'; try { ctx.fillStyle = 'hsl(0 100% 50%, 1)'; } catch (e) { } // this shouldn't throw, but it shouldn't matter here if it does ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); t.done(); });
Based on the provided diff, I don't see any security-related fixes. The changes appear to be purely cosmetic/refactoring (variable renaming) and don't affect security. Here's the analysis: Vulnerability Existed: no No security vulnerability found File: testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.css-color-4-hsl-2.worker.js Changes: - Renamed variable 'offscreenCanvas' to 'canvas' - Updated variable name in _assertPixel call - No functional or security-relevant changes The changes are: 1. Variable renaming from 'offscreenCanvas' to 'canvas' 2. Corresponding update in the _assertPixel call 3. No changes to the actual logic or security-sensitive operations These modifications don't address any security vulnerabilities but rather improve code consistency/readability.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/third_party/rust/strsim/README.md+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/strsim/README.md@@ -1,4 +1,9 @@-# strsim-rs [](https://crates.io/crates/strsim) [](https://github.com/dguo/strsim-rs/blob/master/LICENSE) [](https://travis-ci.org/dguo/strsim-rs) [](https://ci.appveyor.com/project/dguo/strsim-rs)+# strsim-rs++[](https://crates.io/crates/strsim)+[](https://github.com/dguo/strsim-rs/blob/master/LICENSE)+[](https://github.com/dguo/strsim-rs/actions?query=branch%3Amaster)+[](https://github.com/rust-secure-code/safety-dance/) [Rust](https://www.rust-lang.org) implementations of [string similarity metrics]: - [Hamming]@@ -6,26 +11,35 @@ - [Optimal string alignment] - [Damerau-Levenshtein] - distance & normalized - [Jaro and Jaro-Winkler] - this implementation of Jaro-Winkler does not limit the common prefix length+ - [Sørensen-Dice]-### Installation+The normalized versions return values between `0.0` and `1.0`, where `1.0` means+an exact match.++There are also generic versions of the functions for non-string inputs.++## Installation++`strsim` is available on [crates.io](https://crates.io/crates/strsim). Add it to+your `Cargo.toml`: ```toml-# Cargo.toml [dependencies]-strsim = "0.8.0"+strsim = "0.10.0" ```-### [Documentation](https://docs.rs/strsim/)-You can change the version in the url to see the documentation for an older-version in the-[changelog](https://github.com/dguo/strsim-rs/blob/master/CHANGELOG.md).+## Usage-### Usage+Go to [Docs.rs](https://docs.rs/strsim/) for the full documentation. You can+also clone the repo, and run `$ cargo doc --open`.++### Examples+ ```rust extern crate strsim; use strsim::{hamming, levenshtein, normalized_levenshtein, osa_distance, damerau_levenshtein, normalized_damerau_levenshtein, jaro,- jaro_winkler};+ jaro_winkler, sorensen_dice}; fn main() { match hamming("hamming", "hammers") {@@ -33,31 +47,49 @@ Err(why) => panic!("{:?}", why) }- assert_eq!(3, levenshtein("kitten", "sitting"));+ assert_eq!(levenshtein("kitten", "sitting"), 3);- assert!((normalized_levenshtein("kitten", "sitting") - 0.57142).abs() < 0.00001);+ assert!((normalized_levenshtein("kitten", "sitting") - 0.571).abs() < 0.001);- assert_eq!(3, osa_distance("ac", "cba"));+ assert_eq!(osa_distance("ac", "cba"), 3);- assert_eq!(2, damerau_levenshtein("ac", "cba"));+ assert_eq!(damerau_levenshtein("ac", "cba"), 2);- assert!((normalized_damerau_levenshtein("levenshtein", "löwenbräu") - 0.27272).abs() < 0.00001)-- assert!((0.392 - jaro("Friedrich Nietzsche", "Jean-Paul Sartre")).abs() <+ assert!((normalized_damerau_levenshtein("levenshtein", "löwenbräu") - 0.272).abs() < 0.001);- assert!((0.911 - jaro_winkler("cheeseburger", "cheese fries")).abs() <+ assert!((jaro("Friedrich Nietzsche", "Jean-Paul Sartre") - 0.392).abs() < 0.001);++ assert!((jaro_winkler("cheeseburger", "cheese fries") - 0.911).abs() <+ 0.001);++ assert_eq!(sorensen_dice("web applications", "applications of the web"),+ 0.7878787878787878); } ```-### Development+Using the generic versions of the functions:++```rust+extern crate strsim;++use strsim::generic_levenshtein;++fn main() {+ assert_eq!(2, generic_levenshtein(&[1, 2, 3], &[0, 2, 5]));+}+```++## Contributing+ If you don't want to install Rust itself, you can run `$ ./dev` for a development CLI if you have [Docker] installed.-Benchmarks require a Nightly toolchain. They are run by `cargo +nightly bench`.+Benchmarks require a Nightly toolchain. Run `$ cargo +nightly bench`.-### License+## License+ [MIT](https://github.com/dguo/strsim-rs/blob/master/LICENSE) [string similarity metrics]:http://en.wikipedia.org/wiki/String_metric@@ -66,4 +98,5 @@ [Levenshtein]:http://en.wikipedia.org/wiki/Levenshtein_distance [Hamming]:http://en.wikipedia.org/wiki/Hamming_distance [Optimal string alignment]:https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance#Optimal_string_alignment_distance+[Sørensen-Dice]:http://en.wikipedia.org/wiki/S%C3%B8rensen%E2%80%93Dice_coefficient [Docker]:https://docs.docker.com/engine/installation/
After analyzing the provided code diff for security fixes, here are the findings: 1. Vulnerability Existed: no The diff shows only documentation and version updates in the README.md file. No code changes that would indicate security fixes are present. The changes include: - Updated badge formats and CI status - Added new Sørensen-Dice metric documentation - Version bump from 0.8.0 to 0.10.0 - Improved documentation structure - Added example for generic_levenshtein - No security-related changes were made to the actual code 2. Vulnerability Existed: no The addition of "[unsafe forbidden]" badge indicates a security-conscious decision to prohibit unsafe Rust code, but this is a proactive measure rather than a fix for an existing vulnerability. The changes appear to be routine maintenance and documentation improvements rather than security fixes. The README.md file itself doesn't contain executable code that could have 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/testing/web-platform/tests/css/css-pseudo/target-text-dynamic-001.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-pseudo/target-text-dynamic-001.html@@ -19,7 +19,8 @@ <script> location.href = "#:~:text=Example"; requestAnimationFrame(() => requestAnimationFrame(() => {- document.styleSheets[0].cssRules[0].style.backgroundColor = "magenta";+ if (document.styleSheets[0].cssRules[0])+ document.styleSheets[0].cssRules[0].style.backgroundColor = "magenta"; takeScreenshot(); })); </script>
Here's the analysis of the provided code diff: 1. Vulnerability Existed: yes Null Pointer Dereference [File] testing/web-platform/tests/css/css-pseudo/target-text-dynamic-001.html [Lines] 19-22 [Old Code] `document.styleSheets[0].cssRules[0].style.backgroundColor = "magenta";` [Fixed Code] `if (document.styleSheets[0].cssRules[0]) document.styleSheets[0].cssRules[0].style.backgroundColor = "magenta";` The fix adds a null check before accessing the style property, preventing a potential null pointer dereference if `cssRules[0]` is undefined. This could have led to a JavaScript runtime error in the previous version.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.