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/layout/base/DisplayPortUtils.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/layout/base/DisplayPortUtils.h@@ -184,8 +184,10 @@ * @return the display port for the given element which should be used for * visibility testing purposes, relative to the scroll frame. *- * If low-precision buffers are enabled, this is the critical display port;- * otherwise, it's the same display port returned by GetDisplayPort().+ * This is the display port computed with a multipler of 1 which is the normal+ * display port unless low-precision buffers are enabled. If low-precision+ * buffers are enabled then GetDisplayPort() uses a multiplier to expand the+ * displayport, so this will differ from GetDisplayPort. */ static bool GetDisplayPortForVisibilityTesting(nsIContent* aContent, nsRect* aResult);@@ -234,18 +236,6 @@ const nsRect& aBase); /**- * Get the critical display port for the given element.- */- static bool GetCriticalDisplayPort(- nsIContent* aContent, nsRect* aResult,- const DisplayPortOptions& aOptions = DisplayPortOptions());-- /**- * Check whether the given element has a critical display port.- */- static bool HasCriticalDisplayPort(nsIContent* aContent);-- /** * Remove the displayport for the given element. */ static void RemoveDisplayPort(nsIContent* aContent);
Based on the provided diff, I'll analyze the changes for potential security vulnerabilities: 1. Vulnerability Existed: not sure [Documentation/API Change] [layout/base/DisplayPortUtils.h] [Lines 184-190] [Old Code] /** * @return the display port for the given element which should be used for * visibility testing purposes, relative to the scroll frame. * * If low-precision buffers are enabled, this is the critical display port; * otherwise, it's the same display port returned by GetDisplayPort(). */ [Fixed Code] /** * @return the display port for the given element which should be used for * visibility testing purposes, relative to the scroll frame. * * This is the display port computed with a multipler of 1 which is the normal * display port unless low-precision buffers are enabled. If low-precision * buffers are enabled then GetDisplayPort() uses a multiplier to expand the * displayport, so this will differ from GetDisplayPort. */ 2. Vulnerability Existed: not sure [Removed Critical DisplayPort Functions] [layout/base/DisplayPortUtils.h] [Lines 234-244] [Old Code] /** * Get the critical display port for the given element. */ static bool GetCriticalDisplayPort( nsIContent* aContent, nsRect* aResult, const DisplayPortOptions& aOptions = DisplayPortOptions()); /** * Check whether the given element has a critical display port. */ static bool HasCriticalDisplayPort(nsIContent* aContent); [Fixed Code] [These functions were completely removed] Notes: 1. The changes appear to be primarily documentation improvements and API simplifications rather than direct security fixes. 2. The removal of critical display port functions suggests a change in the display port handling strategy, but without more context, it's unclear if this was fixing a security vulnerability. 3. The documentation change clarifies the behavior difference between normal and low-precision buffer modes, which could potentially help prevent misuse, but doesn't appear to fix a specific vulnerability.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/toolkit/components/extensions/webidl-api/ExtensionBrowser.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/components/extensions/webidl-api/ExtensionBrowser.cpp@@ -8,7 +8,7 @@ #include "mozilla/dom/ExtensionBrowserBinding.h" #include "mozilla/dom/ExtensionPortBinding.h" // ExtensionPortDescriptor-#include "mozilla/dom/WorkerPrivate.h" // GetWorkerPrivateFromContext+#include "mozilla/dom/WorkerScope.h" // GetWorkerPrivateFromContext #include "mozilla/extensions/ExtensionAlarms.h" #include "mozilla/extensions/ExtensionMockAPI.h" #include "mozilla/extensions/ExtensionPort.h"
Based on the provided diff, I'll analyze it for security vulnerabilities: 1. Vulnerability Existed: no Header Include Change [File] [Lines 8-8] [Old Code] #include "mozilla/dom/WorkerPrivate.h" // GetWorkerPrivateFromContext [Fixed Code] #include "mozilla/dom/WorkerScope.h" // GetWorkerPrivateFromContext Additional Details: - This appears to be a simple header include change where the functionality (GetWorkerPrivateFromContext) was moved from WorkerPrivate.h to WorkerScope.h - No actual code logic was changed, just the include statement - No security vulnerability is apparent in this change - The change seems to be more about code organization than security fixes The diff shows only this single change, and it doesn't appear to be related to any security vulnerability. It's likely part of a larger code reorganization or maintenance effort.
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-cascade/all-prop-initial-color.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-cascade/all-prop-initial-color.html@@ -5,7 +5,6 @@ <title>CSS Cascade: "color" property preceded by "all: initial"</title> <link rel="help" href="https://www.w3.org/TR/css-cascade-4/#all-shorthand"> <link rel="match" href="reference/ref-green-text.html">- <meta name="flags" content=""> <meta name="assert" content="Own 'color', preceded by 'all: initial', overrides inherited 'color'."> <style> .outer {
Based on the provided code diff, I'll analyze it for potential security vulnerabilities: Vulnerability Existed: no No specific vulnerability [File] testing/web-platform/tests/css/css-cascade/all-prop-initial-color.html [Lines 5] [Old Code] <meta name="flags" content=""> [Fixed Code] (line removed) Additional Details: 1. The change simply removes an empty meta tag for "flags" which appears to be test-related metadata 2. There's no indication of any security vulnerability being fixed here 3. The change seems to be a cleanup rather than a security fix 4. No known vulnerability patterns (XSS, injection, etc.) are present in this change The modification is minor and doesn't appear to address any security concerns. It's likely just removing unused test metadata.
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/feature-policy/reporting/picture-in-picture-reporting.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/feature-policy/reporting/picture-in-picture-reporting.html@@ -12,7 +12,7 @@ <script> const check_report_format = (reports, observer) => { const report = reports[0];- assert_equals(report.type, "feature-policy-violation");+ assert_equals(report.type, "permissions-policy-violation"); assert_equals(report.url, document.location.href); assert_equals(report.body.featureId, "picture-in-picture"); assert_equals(report.body.sourceFile, document.location.href);@@ -32,7 +32,7 @@ promise_pip_test(async (t) => { const report = new Promise(resolve => { new ReportingObserver((reports, observer) => resolve([reports, observer]),- {types: ['feature-policy-violation']}).observe();+ {types: ['permissions-policy-violation']}).observe(); }); const videoElement = await loadVideo(); await test_driver.bless('picture-in-picture');
Analyzing the provided code diff for security fixes: 1. Vulnerability Existed: not sure [Feature Policy to Permissions Policy Renaming] [testing/web-platform/tests/feature-policy/reporting/picture-in-picture-reporting.html] [Lines 12, 32] [Old Code] assert_equals(report.type, "feature-policy-violation"); new ReportingObserver((reports, observer) => resolve([reports, observer]), {types: ['feature-policy-violation']}).observe(); [Fixed Code] assert_equals(report.type, "permissions-policy-violation"); new ReportingObserver((reports, observer) => resolve([reports, observer]), {types: ['permissions-policy-violation']}).observe(); Additional Details: - This appears to be a standardization change rather than a direct security fix, updating from "feature-policy" to "permissions-policy" terminology which was part of a larger specification change in web standards. - While not directly fixing a security vulnerability, keeping up with specification changes can help maintain security by ensuring proper policy enforcement. - The change aligns with the renaming of Feature Policy to Permissions Policy in the web standards (https://github.com/w3c/webappsec-permissions-policy/blob/main/rename.md)
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/browser/components/enterprisepolicies/schemas/policies-schema.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/components/enterprisepolicies/schemas/policies-schema.json@@ -499,7 +499,7 @@ "type": "array", "items": { "type": "string",- "enum": ["extension", "dictionary", "locale", "theme"]+ "enum": ["extension", "dictionary", "locale", "theme", "sitepermission"] } }, "blocked_install_message": {@@ -1258,6 +1258,9 @@ "SkipOnboarding": { "type": "boolean" },+ "MoreFromMozilla": {+ "type": "boolean"+ }, "Locked": { "type": "boolean" }
Here's the analysis of the provided code diff: 1. Vulnerability Existed: not sure [Potential Policy Control Enhancement] [File: browser/components/enterprisepolicies/schemas/policies-schema.json] [Lines: 499-499] [Old Code] `"enum": ["extension", "dictionary", "locale", "theme"]` [Fixed Code] `"enum": ["extension", "dictionary", "locale", "theme", "sitepermission"]` Additional Details: This appears to be an extension of policy control capabilities by adding "sitepermission" to the enum list. While not clearly a security fix, it could be related to controlling site permissions more granularly. 2. Vulnerability Existed: no [New Feature Addition] [File: browser/components/enterprisepolicies/schemas/policies-schema.json] [Lines: 1258-1261] [Old Code] (No corresponding code existed before) [Fixed Code] `"MoreFromMozilla": { "type": "boolean" }` Additional Details: This is clearly a new feature addition for enterprise policy control, not a security fix. It adds a new boolean policy option for controlling "MoreFromMozilla" content. Note: The changes appear to be feature enhancements and policy control additions rather than direct security fixes. The first change could potentially have security implications by allowing more granular control over site permissions, but there's no clear evidence this was fixing 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/js/src/threading/ExclusiveData.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/js/src/threading/ExclusiveData.h@@ -129,8 +129,11 @@ * Guard utilizes both. */ class MOZ_STACK_CLASS Guard {+ protected: const ExclusiveData* parent_;-+ explicit Guard(std::nullptr_t) : parent_(nullptr) {}++ private: Guard(const Guard&) = delete; Guard& operator=(const Guard&) = delete;@@ -171,9 +174,54 @@ }; /**+ * NullableGuard are similar to Guard, except that one the access to the+ * ExclusiveData might not always be granted. This is useful when contextual+ * information is enough to prevent useless use of Mutex.+ *+ * The NullableGuard can be manipulated as follows:+ *+ * if (NullableGuard guard = data.mightAccess()) {+ * // NullableGuard is acquired.+ * guard->...+ * }+ * // NullableGuard was either not acquired or released.+ *+ * Where mightAccess returns either a NullableGuard from `noAccess()` or a+ * Guard from `lock()`.+ */+ class MOZ_STACK_CLASS NullableGuard : public Guard {+ public:+ explicit NullableGuard(std::nullptr_t) : Guard((std::nullptr_t) nullptr) {}+ explicit NullableGuard(const ExclusiveData& parent) : Guard(parent) {}+ explicit NullableGuard(Guard&& rhs) : Guard(std::move(rhs)) {}++ NullableGuard& operator=(Guard&& rhs) {+ this->~NullableGuard();+ new (this) NullableGuard(std::move(rhs));+ return *this;+ }++ /**+ * Returns whether this NullableGuard has access to the exclusive data.+ */+ bool hasAccess() const { return this->parent_; }+ explicit operator bool() const { return hasAccess(); }+ };++ /** * Access the protected inner `T` value for exclusive reading and writing. */ Guard lock() const { return Guard(*this); }++ /**+ * Provide a no-access guard, which coerces to false when tested. This value+ * can be returned if the guard access is conditioned on external factors.+ *+ * See NullableGuard.+ */+ NullableGuard noAccess() const {+ return NullableGuard((std::nullptr_t) nullptr);+ } }; template <class T>@@ -220,6 +268,158 @@ Guard lock() const { return Guard(*this); } };+/**+ * Multiple-readers / single-writer variant of ExclusiveData.+ *+ * Readers call readLock() to obtain a stack-only RAII reader lock, which will+ * allow other readers to read concurrently but block writers; the yielded value+ * is const. Writers call writeLock() to obtain a ditto writer lock, which+ * yields exclusive access to non-const data.+ *+ * See ExclusiveData and its implementation for more documentation.+ */+template <typename T>+class RWExclusiveData {+ mutable Mutex lock_;+ mutable ConditionVariable cond_;+ mutable T value_;+ mutable int readers_;++ // We maintain a count of active readers. Writers may enter the critical+ // section only when the reader count is zero, so the reader that decrements+ // the count to zero must wake up any waiting writers.+ //+ // There can be multiple writers waiting, so a writer leaving the critical+ // section must also wake up any other waiting writers.++ void acquireReaderLock() const {+ lock_.lock();+ readers_++;+ lock_.unlock();+ }++ void releaseReaderLock() const {+ lock_.lock();+ MOZ_ASSERT(readers_ > 0);+ if (--readers_ == 0) {+ cond_.notify_all();+ }+ lock_.unlock();+ }++ void acquireWriterLock() const {+ lock_.lock();+ while (readers_ > 0) {+ cond_.wait(lock_);+ }+ }++ void releaseWriterLock() const {+ cond_.notify_all();+ lock_.unlock();+ }++ public:+ RWExclusiveData(const RWExclusiveData&) = delete;+ RWExclusiveData& operator=(const RWExclusiveData&) = delete;++ /**+ * Create a new `RWExclusiveData`, constructing the protected value in place.+ */+ template <typename... Args>+ explicit RWExclusiveData(const MutexId& id, Args&&... args)+ : lock_(id), value_(std::forward<Args>(args)...), readers_(0) {}++ class MOZ_STACK_CLASS ReadGuard {+ const RWExclusiveData* parent_;+ explicit ReadGuard(std::nullptr_t) : parent_(nullptr) {}++ public:+ ReadGuard(const ReadGuard&) = delete;+ ReadGuard& operator=(const ReadGuard&) = delete;++ explicit ReadGuard(const RWExclusiveData& parent) : parent_(&parent) {+ parent_->acquireReaderLock();+ }++ ReadGuard(ReadGuard&& rhs) : parent_(rhs.parent_) {+ MOZ_ASSERT(&rhs != this, "self-move disallowed!");+ rhs.parent_ = nullptr;+ }++ ReadGuard& operator=(ReadGuard&& rhs) {+ this->~ReadGuard();+ new (this) ReadGuard(std::move(rhs));+ return *this;+ }++ const T& get() const {+ MOZ_ASSERT(parent_);+ return parent_->value_;+ }++ operator const T&() const { return get(); }+ const T* operator->() const { return &get(); }++ const RWExclusiveData<T>* parent() const {+ MOZ_ASSERT(parent_);+ return parent_;+ }++ ~ReadGuard() {+ if (parent_) {+ parent_->releaseReaderLock();+ }+ }+ };++ class MOZ_STACK_CLASS WriteGuard {+ const RWExclusiveData* parent_;+ explicit WriteGuard(std::nullptr_t) : parent_(nullptr) {}++ public:+ WriteGuard(const WriteGuard&) = delete;+ WriteGuard& operator=(const WriteGuard&) = delete;++ explicit WriteGuard(const RWExclusiveData& parent) : parent_(&parent) {+ parent_->acquireWriterLock();+ }++ WriteGuard(WriteGuard&& rhs) : parent_(rhs.parent_) {+ MOZ_ASSERT(&rhs != this, "self-move disallowed!");+ rhs.parent_ = nullptr;+ }++ WriteGuard& operator=(WriteGuard&& rhs) {+ this->~WriteGuard();+ new (this) WriteGuard(std::move(rhs));+ return *this;+ }++ T& get() const {+ MOZ_ASSERT(parent_);+ return parent_->value_;+ }++ operator T&() const { return get(); }+ T* operator->() const { return &get(); }++ const RWExclusiveData<T>* parent() const {+ MOZ_ASSERT(parent_);+ return parent_;+ }++ ~WriteGuard() {+ if (parent_) {+ parent_->releaseWriterLock();+ }+ }+ };++ ReadGuard readLock() const { return ReadGuard(*this); }+ WriteGuard writeLock() const { return WriteGuard(*this); }+};+ } // namespace js #endif // threading_ExclusiveData_h
I'll analyze the provided code diff for security fixes. The diff shows significant changes to the threading/ExclusiveData.h file, introducing new functionality rather than fixing existing vulnerabilities. After careful review, I don't find any clear security vulnerabilities being fixed in this diff. The changes appear to be: 1. Adding a protected section to the Guard class 2. Introducing a new NullableGuard class 3. Adding a new RWExclusiveData class for multiple-reader/single-writer access patterns These changes are functional enhancements rather than security fixes. Here's the analysis following your format: Vulnerability Existed: no No security vulnerability found in this diff. The changes introduce new thread synchronization features (NullableGuard and RWExclusiveData) and modify access control in the Guard class, but don't appear to fix any existing vulnerabilities. The changes improve thread safety by: 1. Making parent_ protected in Guard class 2. Adding explicit nullptr constructors 3. Introducing new thread-safe access patterns 4. Adding move constructors and operators However, these are proactive improvements rather than fixes for identified 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/widget/windows/nsUXThemeData.h+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/widget/windows/nsUXThemeData.h@@ -29,7 +29,6 @@ eUXCommunicationsToolbar, eUXProgress, eUXTab,- eUXScrollbar, eUXTrackbar, eUXSpin, eUXStatus,
Let me analyze the diff according to the specified format. Vulnerability Existed: not sure [Potential Theme Enumeration Issue] [widget/windows/nsUXThemeData.h] [Lines 29-29] [Old Code] eUXCommunicationsToolbar, eUXProgress, eUXTab, eUXScrollbar, eUXTrackbar, eUXSpin, eUXStatus, [Fixed Code] eUXCommunicationsToolbar, eUXProgress, eUXTab, eUXTrackbar, eUXSpin, eUXStatus, Additional Details: 1. The diff shows removal of `eUXScrollbar` from the theme enumeration list 2. While this could potentially be related to security (as theme handling can sometimes be involved in UI-related vulnerabilities), there's not enough context to determine if this was an actual security fix 3. The removal might simply be a code cleanup or feature removal rather than a security fix 4. Without more context about why this enum value was removed, we can't definitively say this was a security vulnerability fix
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-cascade/all-prop-unset-color.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-cascade/all-prop-unset-color.html@@ -5,7 +5,6 @@ <title>CSS Cascade: "color" property preceded by "all: unset"</title> <link rel="help" href="https://www.w3.org/TR/css-cascade-4/#all-shorthand"> <link rel="match" href="reference/ref-green-text.html">- <meta name="flags" content=""> <meta name="assert" content="Own 'color', preceded by 'all: unset', overrides inherited 'color'."> <style> .outer {
Analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/css/css-cascade/all-prop-unset-color.html [Lines] 5 [Old Code] `<meta name="flags" content="">` [Fixed Code] (line removed) Additional Details: - The change simply removes an empty meta tag for "flags" which appears to be test-related metadata - No security implications or vulnerabilities are apparent in this change - This is likely just a cleanup of test metadata rather than a security fix No other vulnerabilities or changes were detected in the provided diff. The modification appears to be minor test file maintenance rather than addressing any security issues.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/css/css-contain/contain-size-052.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-contain/contain-size-052.html@@ -8,7 +8,6 @@ <link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-size"> <link rel="match" href="reference/contain-size-051-ref.html">- <meta name="flags" content=""> <style> div#table
Based on the provided code diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: no Meta Tag Removal [File] testing/web-platform/tests/css/css-contain/contain-size-052.html [Lines] 8 Old Code: `<meta name="flags" content="">` Fixed Code: (removed) Additional Details: - The change simply removes an empty meta tag that wasn't serving any apparent purpose - No security vulnerability was addressed here - this appears to be a minor cleanup change - The "flags" meta tag was sometimes used in test files to indicate test requirements, but its removal doesn't impact security No other changes were detected in the provided diff that would indicate security fixes. The modification appears to be a benign cleanup of test code rather than a security-related fix.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.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.lineWidth = 1; ctx.save();
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming without any security implications. Vulnerability Existed: no [No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/the-canvas-state/2d.state.saverestore.stack.html] [Lines 17-18] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); The change simply renames the variable from `offscreenCanvas` to `canvas`, which doesn't affect security in any way. This appears to be a code style/readability improvement rather than a security fix.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/streams/readable-streams/constructor.any.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/streams/readable-streams/constructor.any.js@@ -1,4 +1,4 @@-// META: global=window,worker,jsshell+// META: global=window,worker 'use strict'; const error1 = new Error('error1');
Analysis of the code diff: 1. Vulnerability Existed: not sure [Potential Removal of jsshell Environment] [testing/web-platform/tests/streams/readable-streams/constructor.any.js] [Lines 1] [Old Code] `// META: global=window,worker,jsshell` [Fixed Code] `// META: global=window,worker` Additional Details: The diff shows the removal of 'jsshell' from the META global directive. While this doesn't appear to be a direct security vulnerability, it could potentially affect test coverage or execution environments. The change might be related to security if 'jsshell' was considered an unsafe or unnecessary testing environment, but without more context, this is uncertain.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/text/2d.text.measure.fontBoundingBox.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); var f = new FontFace("CanvasTest", "url('/fonts/CanvasTest.ttf')"); let fonts = (self.fonts ? self.fonts : document.fonts);
Let me analyze the code diff for security vulnerabilities: 1. Vulnerability Existed: no No specific vulnerability found [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: - The changes appear to be purely variable naming changes (offscreenCanvas → canvas) - No security-related changes were made in this diff - The functionality remains identical, just with different variable names - No known vulnerabilities are addressed by this change The modification seems to be for code consistency/readability 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/devtools/client/inspector/animation/test/browser_animation_logic_adjust-time-with-playback-rate.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/devtools/client/inspector/animation/test/browser_animation_logic_adjust-time-with-playback-rate.js@@ -30,7 +30,7 @@ info("Change the playback rate to x10 after selecting '.div2'"); await selectNode(".div2", inspector); await waitUntil(() => panel.querySelectorAll(".animation-item").length === 1);- clickOnPlaybackRateSelector(animationInspector, panel, 10);+ await changePlaybackRateSelector(animationInspector, panel, 10); info("Check each adjusted result of animations after selecting 'body' again"); await selectNode("body", inspector);
Based on the provided code diff, here's the analysis: Vulnerability Existed: no [No specific vulnerability found] [devtools/client/inspector/animation/test/browser_animation_logic_adjust-time-with-playback-rate.js] [Lines 30] Old Code: clickOnPlaybackRateSelector(animationInspector, panel, 10); Fixed Code: await changePlaybackRateSelector(animationInspector, panel, 10); Additional Details: The change appears to be a test improvement rather than a security fix. The modification replaces a synchronous click operation with an asynchronous operation that properly waits for the playback rate change to complete. This helps ensure test reliability but doesn't address any security 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/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/mozapps/downloads/tests/unit/test_DownloadUtils.js@@ -76,6 +76,15 @@ } }+function testFormattedTimeStatus(aSec, aExpected) {+ dump("Formatted Time Status Test: [" + aSec + "]\n");++ let status = DownloadUtils.getFormattedTimeStatus(aSec);+ dump("Formatted Time Status Test Returns: (" + status.l10n.id + ")\n");++ Assert.equal(status.l10n.id, aExpected);+}+ function testURI(aURI, aDisp, aHost) { dump("URI Test: " + [aURI, aDisp, aHost] + "\n");@@ -363,6 +372,12 @@ Infinity, ]);+ testFormattedTimeStatus(-1, "downloading-file-opens-in-some-time");+ // Passing in null will return a status of file-opens-in-seconds, as Math.floor(null) = 0+ testFormattedTimeStatus(null, "downloading-file-opens-in-seconds");+ testFormattedTimeStatus(0, "downloading-file-opens-in-seconds");+ testFormattedTimeStatus(30, "downloading-file-opens-in-seconds");+ testURI("http://www.mozilla.org/", "mozilla.org", "www.mozilla.org"); testURI( "http://www.city.mikasa.hokkaido.jp/",
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be adding new test cases for the `getFormattedTimeStatus` function rather than addressing security issues. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [File] [Lines] [Old Code] - No security-related code removed [Fixed Code] - No security-related fixes added The changes are: 1. Adding a new test function `testFormattedTimeStatus` 2. Adding test cases for negative values, null, 0, and positive values 3. These appear to be normal test case additions to improve coverage rather than security fixes There are no: - Input validation issues being fixed - Security-related logic changes - Vulnerabilities being patched - Security-relevant test cases being added The changes seem focused on testing time formatting functionality under different input conditions.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html@@ -4,6 +4,7 @@ <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/test-helpers.sub.js"></script>+<script src="/common/utils.js"></script> <script> 'use strict';@@ -51,4 +52,18 @@ iframeTest(SCOPE + '?stream&use-fetch-stream', (t, iwin) => { assert_equals(iwin.document.body.textContent, 'PASS\n'); }, 'Main resource built from a ReadableStream - fetch stream');++iframeTest(SCOPE, async (t, iwin) => {+ const id = token();+ let response = await iwin.fetch('?stream&observe-cancel&id=${id}');+ response.body.cancel();++ // Wait for a while to avoid a race between the cancel handling and the+ // second fetch request.+ await new Promise(r => step_timeout(r, 10));++ response = await iwin.fetch('?stream&query-cancel&id=${id}');+ assert_equals(await response.text(), 'cancelled');+}, 'Cancellation in the page should be observable in the service worker');+ </script>
Here's the analysis following the specified format: 1. Vulnerability Existed: not sure [Potential Race Condition] [testing/web-platform/tests/service-workers/service-worker/fetch-event-respond-with-readable-stream.https.html] [Lines 52-63] [Old Code: (no equivalent code existed)] [Fixed Code: iframeTest(SCOPE, async (t, iwin) => { const id = token(); let response = await iwin.fetch('?stream&observe-cancel&id=${id}'); response.body.cancel(); // Wait for a while to avoid a race between the cancel handling and the // second fetch request. await new Promise(r => step_timeout(r, 10)); response = await iwin.fetch('?stream&query-cancel&id=${id}'); assert_equals(await response.text(), 'cancelled'); }, 'Cancellation in the page should be observable in the service worker');] Notes: 1. The diff shows a new test case being added that deals with stream cancellation behavior. 2. The test explicitly addresses a potential race condition by adding a delay (step_timeout). 3. While this isn't fixing a vulnerability in production code, it's testing for proper handling of stream cancellation which could be security-relevant if not handled correctly. 4. The addition of '/common/utils.js' might be related to the new test functionality but doesn't appear to be security-related.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.scale.basic.worker.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.scale.basic.worker.js@@ -13,15 +13,15 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); ctx.fillStyle = '#f00'; ctx.fillRect(0, 0, 100, 50); ctx.scale(2, 4); ctx.fillStyle = '#0f0'; ctx.fillRect(0, 0, 50, 12.5);-_assertPixel(offscreenCanvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255");+_assertPixel(canvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely cosmetic/refactoring changes where a variable name was changed from `offscreenCanvas` to `canvas` for consistency or readability. The functionality remains the same. Here's the structured response: Vulnerability Existed: no No security vulnerability found [testing/web-platform/tests/html/canvas/offscreen/transformations/2d.transformation.scale.basic.worker.js] [Lines 13-21] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 90,40, 0,255,0,255, "90,40", "0,255,0,255"); The changes don't address any security issues but rather improve code consistency by renaming a variable. No known vulnerabilities are 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/fill-and-stroke-styles/2d.gradient.linear.transform.3.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.gradient.linear.transform.3.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 g = ctx.createLinearGradient(0, 0, 200, 0); g.addColorStop(0, '#f00');@@ -25,9 +25,9 @@ ctx.fillRect(0, 0, 100, 50); ctx.translate(-50, 0); ctx.fillRect(50, 0, 100, 50);-_assertPixel(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255");+_assertPixel(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");+_assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255");+_assertPixel(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255"); t.done(); });
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be purely variable renaming from `offscreenCanvas` to `canvas` and corresponding updates to the assertions. Here's the analysis following your requested format: Vulnerability Existed: no No security vulnerability found [File] [Lines 13-25] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255"); The changes are purely cosmetic/refactoring in nature and don't relate to any security fixes. 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/dom/media/webrtc/third_party_build/gn-configs/x64_True_arm64_mac.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/media/webrtc/third_party_build/gn-configs/x64_True_arm64_mac.json@@ -24824,7 +24824,6 @@ "-Wno-shorten-64-to-32" ], "defines": [- "MULTI_MONITOR_SCREENSHARE", "_LIBCPP_HAS_NO_ALIGNED_ALLOCATION", "__STDC_CONSTANT_MACROS", "__STDC_FORMAT_MACROS",
Based on the provided diff, here's the analysis: Vulnerability Existed: not sure [Potential Information Exposure through Feature Flag] [dom/media/webrtc/third_party_build/gn-configs/x64_True_arm64_mac.json] [Lines 24824] [Old Code] "defines": [ "MULTI_MONITOR_SCREENSHARE", "_LIBCPP_HAS_NO_ALIGNED_ALLOCATION", "__STDC_CONSTANT_MACROS", "__STDC_FORMAT_MACROS", [Fixed Code] "defines": [ "_LIBCPP_HAS_NO_ALIGNED_ALLOCATION", "__STDC_CONSTANT_MACROS", "__STDC_FORMAT_MACROS", Additional Details: The removal of "MULTI_MONITOR_SCREENSHARE" could be related to security hardening, but without more context about what this define controlled, it's difficult to determine if this was an actual security fix. It might represent: 1. Removal of a potentially risky feature (screen sharing across multiple monitors) 2. Simplification of build configuration 3. Removal of a deprecated feature flag The change could potentially relate to reducing attack surface in screen sharing functionality, but this is speculative.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/feature-policy/reporting/fullscreen-reporting.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/feature-policy/reporting/fullscreen-reporting.html@@ -15,7 +15,7 @@ observer1.disconnect(); observer2.disconnect(); let report = reports[0];- assert_equals(report.type, "feature-policy-violation");+ assert_equals(report.type, "permissions-policy-violation"); assert_equals(report.url, document.location.href); assert_equals(report.body.featureId, "fullscreen"); assert_equals(report.body.sourceFile, document.location.href);@@ -26,16 +26,16 @@ var check_second_observer = (reports, observer) => { let report = reports[0];- assert_equals(report.type, "feature-policy-violation");+ assert_equals(report.type, "permissions-policy-violation"); assert_equals(report.body.featureId, "fullscreen"); }; async_test(t => { observer1 = new ReportingObserver(t.step_func(check_report_format),- {types: ['feature-policy-violation']});+ {types: ['permissions-policy-violation']}); observer1.observe(); observer2 = new ReportingObserver(t.step_func_done(check_second_observer),- {types: ['feature-policy-violation']});+ {types: ['permissions-policy-violation']}); observer2.observe(); document.getElementById('fs').requestFullscreen().then(t.unreached_func( "Fullscreen should not be allowed in this document.")).catch(()=>{});
Here's the analysis of the provided code diff: 1. Vulnerability Existed: no Feature Policy to Permissions Policy Renaming [testing/web-platform/tests/feature-policy/reporting/fullscreen-reporting.html] [Lines 15,26,32,35] Old Code: "feature-policy-violation" Fixed Code: "permissions-policy-violation" Additional Details: This appears to be a standardization update rather than a security fix. The change reflects the renaming of "Feature Policy" to "Permissions Policy" in the web specifications (https://github.com/w3c/webappsec-permissions-policy/blob/main/rename.md). The functionality remains the same, but the terminology was updated to better reflect the feature's purpose. No actual security vulnerability is being fixed here - it's purely a naming convention update to match the current spec.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/browser/themes/linux/browser.css+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/themes/linux/browser.css@@ -248,13 +248,12 @@ border-top-style: solid; color: -moz-dialogText; text-shadow: none;-}--@media (prefers-color-scheme: dark) {+ color-scheme: light;+}++@media (-moz-content-prefers-color-scheme: dark) { #statuspanel-label {- background-color: hsl(240, 1%, 20%);- border-color: hsl(240, 1%, 40%);- color: rgb(249, 249, 250);+ color-scheme: dark; } }
Here's the analysis following your requested format: 1. Vulnerability Existed: no [No specific vulnerability] [browser/themes/linux/browser.css] [Lines 248-258] [Old Code] @media (prefers-color-scheme: dark) { #statuspanel-label { background-color: hsl(240, 1%, 20%); border-color: hsl(240, 1%, 40%); color: rgb(249, 249, 250); } } [Fixed Code] @media (-moz-content-prefers-color-scheme: dark) { #statuspanel-label { color-scheme: dark; } } Additional Details: - This appears to be a theme/style update rather than a security fix - The changes involve: 1. Adding `color-scheme: light` to the default style 2. Changing the dark theme media query from `prefers-color-scheme` to `-moz-content-prefers-color-scheme` 3. Simplifying the dark theme styling by using `color-scheme` instead of specific colors - No security vulnerabilities are apparent in this CSS change - The modification seems focused on improving theme consistency and using Mozilla's preferred color scheme detection method
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.