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.cone.beside.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.cone.beside.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 = '#0f0'; 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-related fixes. The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and updating the corresponding assertions to use the new variable name. There are no security vulnerabilities being addressed in this diff. Here's the structured response: Vulnerability Existed: no [No security vulnerability found] [testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.gradient.radial.cone.beside.html] [Lines 17-48] [Old Code: Used variable name 'offscreenCanvas'] [Fixed Code: Changed variable name to 'canvas'] The changes are purely cosmetic/refactoring in nature and don't address any security issues. The functionality remains exactly the same, just with a different variable name.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/browser/components/places/content/controller.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/browser/components/places/content/controller.js@@ -3,10 +3,10 @@ * 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/. */-/* import-globals-from ../../../base/content/utilityOverlay.js */+/* import-globals-from /browser/base/content/utilityOverlay.js */ /* import-globals-from ../PlacesUIUtils.jsm */-/* import-globals-from ../../../../toolkit/components/places/PlacesUtils.jsm */-/* import-globals-from ../../../../toolkit/components/places/PlacesTransactions.jsm */+/* import-globals-from /toolkit/components/places/PlacesUtils.jsm */+/* import-globals-from /toolkit/components/places/PlacesTransactions.jsm */ /* import-globals-from ./places.js */ /**@@ -324,28 +324,7 @@ break; } case "placesCmd_showInFolder":- // Open containing folder in left pane bookmark tree- let currentNode = this._view.selectedNode;- if (this._view.parentElement.id.includes("Panel")) {- // We're in the sidebar - clear the search box first- let searchBox = document.getElementById("search-box");- searchBox.value = "";- searchBox.doCommand();- // And go to the node- this._view.selectItems([currentNode.bookmarkGuid], true);- } else {- PlacesUtils.bookmarks- .fetch(currentNode.bookmarkGuid, null, { includePath: true })- .then(b => {- let containers = b.path.map(obj => {- return obj.guid;- });- // selectLeftPane looks for literal "AllBookmarks" as a "built-in"- containers.splice(0, 0, "AllBookmarks");- PlacesOrganizer.selectLeftPaneContainerByHierarchy(containers);- this._view.selectItems([currentNode.bookmarkGuid], false);- });- }+ this.showInFolder(this._view.selectedNode.bookmarkGuid); break; } },@@ -1401,6 +1380,31 @@ await this.ForgetAboutSite.removeDataFromDomain(host); } },++ showInFolder(aBookmarkGuid) {+ // Open containing folder in left pane/sidebar bookmark tree+ if (this._view.parentElement.id.includes("Panel")) {+ // We're in the sidebar - clear the search box first+ let searchBox = document.getElementById("search-box");+ searchBox.value = "";+ searchBox.doCommand();++ // And go to the node+ this._view.selectItems([aBookmarkGuid], true);+ } else {+ PlacesUtils.bookmarks+ .fetch(aBookmarkGuid, null, { includePath: true })+ .then(b => {+ let containers = b.path.map(obj => {+ return obj.guid;+ });+ // selectLeftPane looks for literal "AllBookmarks" as a "built-in"+ containers.splice(0, 0, "AllBookmarks");+ PlacesOrganizer.selectLeftPaneContainerByHierarchy(containers);+ this._view.selectItems([aBookmarkGuid], false);+ });+ }+ }, }; /**@@ -1531,6 +1535,16 @@ parentId = PlacesUtils.bookmarks.getFolderIdForItem(parentId); } }++ // Disallow the dropping of multiple bookmarks if they include+ // a javascript: bookmarklet+ if (+ !flavor.startsWith("text/x-moz-place") &&+ (nodes.length > 1 || dropCount > 1) &&+ nodes.some(n => n.uri?.startsWith("javascript:"))+ ) {+ return false;+ } } } return true;@@ -1542,7 +1556,7 @@ * @param {object} insertionPoint The insertion point where the items should * be dropped. * @param {object} dt The dataTransfer information for the drop.- * @param {object} view The view or the tree element. This allows+ * @param {object} [view] The view or the tree element. This allows * batching to take place. */ async onDrop(insertionPoint, dt, view) {@@ -1559,6 +1573,7 @@ // DataTransfer is only valid during the synchronous handling of the `drop` // event handler callback. let nodes = [];+ let externalDrag = false; for (let i = 0; i < dropCount; ++i) { let flavor = this.getFirstValidFlavor(dt.mozTypesAt(i)); if (!flavor) {@@ -1572,6 +1587,11 @@ continue; } handled.add(data);+ }++ // Check that the drag/drop is not internal+ if (i == 0 && !flavor.startsWith("text/x-moz-place")) {+ externalDrag = true; } if (flavor != TAB_DROP_TYPE) {@@ -1593,6 +1613,51 @@ } }+ // If a multiple urls are being dropped from the urlbar or an external source,+ // and they include javascript url, not bookmark any of them+ if (+ externalDrag &&+ (nodes.length > 1 || dropCount > 1) &&+ nodes.some(n => n.uri?.startsWith("javascript:"))+ ) {+ throw new Error("Javascript bookmarklet passed with uris");+ }++ // If a single javascript url is being dropped from the urlbar or an external source,+ // show the bookmark dialog as a speedbump protection against malicious cases.+ if (+ nodes.length == 1 &&+ externalDrag &&+ nodes[0].uri?.startsWith("javascript")+ ) {+ let uri;+ try {+ uri = Services.io.newURI(nodes[0].uri);+ } catch (ex) {+ // Invalid uri, we skip this code and the entry will be discarded later.+ }++ if (uri) {+ let bookmarkGuid = await PlacesUIUtils.showBookmarkDialog(+ {+ action: "add",+ type: "bookmark",+ defaultInsertionPoint: insertionPoint,+ hiddenRows: ["folderPicker"],+ title: nodes[0].title,+ uri,+ },+ BrowserWindowTracker.getTopWindow() // `window` may be the Library.+ );++ if (bookmarkGuid && view) {+ view.selectItems([bookmarkGuid], false);+ }++ return;+ }+ }+ await PlacesUIUtils.handleTransferItems( nodes, insertionPoint,
Here's the security analysis following your requested format: 1. Vulnerability Existed: yes [XSS via JavaScript Bookmarklet Drag-and-Drop] [browser/components/places/content/controller.js] [Lines 1531-1542] [Old Code] (No previous validation for JavaScript bookmarklets in drag-and-drop operations) [Fixed Code] Added validation to disallow dropping multiple bookmarks if they include a javascript: bookmarklet: ``` if ( !flavor.startsWith("text/x-moz-place") && (nodes.length > 1 || dropCount > 1) && nodes.some(n => n.uri?.startsWith("javascript:")) ) { return false; } ``` 2. Vulnerability Existed: yes [XSS via External JavaScript Bookmarklet Drag] [browser/components/places/content/controller.js] [Lines 1613-1656] [Old Code] (No special handling for external JavaScript bookmarklet drops) [Fixed Code] Added protection that shows bookmark dialog for external JavaScript drops: ``` if ( nodes.length == 1 && externalDrag && nodes[0].uri?.startsWith("javascript") ) { // Show confirmation dialog ... } ``` 3. Vulnerability Existed: yes [XSS via Multiple External JavaScript Bookmarklet Drops] [browser/components/places/content/controller.js] [Lines 1613-1620] [Old Code] (No validation for multiple external JavaScript drops) [Fixed Code] Added block for multiple external JavaScript drops: ``` if ( externalDrag && (nodes.length > 1 || dropCount > 1) && nodes.some(n => n.uri?.startsWith("javascript:")) ) { throw new Error("Javascript bookmarklet passed with uris"); } ``` 4. Vulnerability Existed: not sure [Potential Path Traversal] [browser/components/places/content/controller.js] [Lines 3-7] [Old Code] ``` /* import-globals-from ../../../base/content/utilityOverlay.js */ /* import-globals-from ../../../../toolkit/components/places/PlacesUtils.jsm */ ``` [Fixed Code] ``` /* import-globals-from /browser/base/content/utilityOverlay.js */ /* import-globals-from /toolkit/components/places/PlacesUtils.jsm */ ``` The change to absolute paths might be security-related to prevent potential path traversal, but this is uncertain without more context about the build system.
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.outside.html+++ /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.outside.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);@@ -32,10 +32,10 @@ ctx.fillRect(25, -100, 50, 25); ctx.shadowOffsetY = -100; ctx.fillRect(25, 125, 50, 25);-_assertPixel(offscreenCanvas, 12,25, 0,255,0,255, "12,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 87,25, 0,255,0,255, "87,25", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,12, 0,255,0,255, "50,12", "0,255,0,255");-_assertPixel(offscreenCanvas, 50,37, 0,255,0,255, "50,37", "0,255,0,255");+_assertPixel(canvas, 12,25, 0,255,0,255, "12,25", "0,255,0,255");+_assertPixel(canvas, 87,25, 0,255,0,255, "87,25", "0,255,0,255");+_assertPixel(canvas, 50,12, 0,255,0,255, "50,12", "0,255,0,255");+_assertPixel(canvas, 50,37, 0,255,0,255, "50,37", "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: 1. Vulnerability Existed: no No Vulnerability Found [File] [Lines 17-18, 32-35] Old Code: ```javascript var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _assertPixel(offscreenCanvas, 12,25, 0,255,0,255, "12,25", "0,255,0,255"); ``` Fixed Code: ```javascript var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _assertPixel(canvas, 12,25, 0,255,0,255, "12,25", "0,255,0,255"); ``` The changes are purely cosmetic/refactoring in nature and don't 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/third_party/rust/syn/.cargo-checksum.json+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/syn/.cargo-checksum.json@@ -1 +1 @@-{"files":{"Cargo.toml":"ff4efa5a0f36433a84123d4e33d34510c356ebdaf715f096f5c76fe276b6cdd0","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"417bb33dc685fb0036f91229dd0d828b104a4c35010d362f2a6e5d8b4cf1e36d","benches/file.rs":"b5f458687896253823b642778ee091e42b0d423282e5c177a66d74d429cc39e6","benches/rust.rs":"9c41ecf8cff9ea278befa2f0336dea392c4e85041909ea9eff3402f15b2312c1","build.rs":"9c7f8cdcfd97bba0e7c893f7a2eb68e8362106cd5d2e4db9cc4bcf0652583ce1","src/attr.rs":"234d9cebe2c5e92cd0f5e1117bf5755037e2e905788a337000a65d4bd82b63aa","src/await.rs":"8aa22e3c201cb2bdb6b4817fa00901f308ab06817607aa7b884c58c957705969","src/bigint.rs":"efc7f64959980653d73fe4f8bc2a3a2904dc05f45b02c6dc15cd316fa3d7c338","src/buffer.rs":"a5d6692938c2ec6ec140f70ec89fa93659fa227b52e8d381e9da7dd440f0249e","src/custom_keyword.rs":"a834c617b4a0aa87c21275ded72a4e04d7fac2d2255cfc037c0690d21488fc31","src/custom_punctuation.rs":"8a666298e774b0d326642f0f73284f6677d0d0a7c9e4a712c9c98d010b4d8a2c","src/data.rs":"ff565899aa435104a0cc6fdf3184ad4b8a4524de2f917a3efe8c3ae0559deed3","src/derive.rs":"d4205fb2b699e784c0889bcde7e80b77ab222ee74ec3c349b5b1fa63a5f3b0b0","src/discouraged.rs":"6c6a9298f8d24f578da119557bc588f3bd928f7b79fca27d6bdfe3e786dd005f","src/error.rs":"30ed3ab35ba852ac2cfc1f5f388845bf0d0576aa485f045c7da3af0fb24b9f84","src/export.rs":"60e27ba28108b56e63981b6e946273cd159e9cae42d665dc9c6a09ad8c20046a","src/expr.rs":"dd4fffbe2b616c7cea6b2441738205157a0b52f3ebfb6f86846a77408241c9cd","src/ext.rs":"1f648cff1d705a1cea64b32b77482b97a82d2fe0aaf63b40cade91e5c02dc969","src/file.rs":"f86697655222ae294215114f4eae8e6b0b5e2a935d6c479ff8f8f889c4efd2e2","src/gen/clone.rs":"8db60fc2bf515f9a65f4e98669427ce02ed0ccc9ffdad25d8fb39b38768ecaf1","src/gen/debug.rs":"facf4fb5c7e017dd890c4a9531f337659d7b55475aa44124abf48e088ad56fc5","src/gen/eq.rs":"576a4f1e4030434b0f0170f4d681d2c46292fda64ad5f3913623e1c6e858c24f","src/gen/fold.rs":"3f59e59ed8ad2ab5dd347bfbe41bbc785c2aabd8ae902087a584a6daed597182","src/gen/hash.rs":"458052bb0d64b2a722eaeef4461af80bce109cd97d19bd44dbd608e4c53a6520","src/gen/visit.rs":"94f2c6bed4ef1cd0e83d91dddaa95730619fa48fdd4a0be2fd8740e730ff744d","src/gen/visit_mut.rs":"abc8cb67ad3300d0667761daf1e057b80b4d3f3980d94e8d6f3ed68bdcda3776","src/gen_helper.rs":"ea6c66388365971db6a2fc86cbb208f7eacde77e245bc8623f27a3642a3d7741","src/generics.rs":"46ed41bf116448822ddfefcb62e803fd33264ca8ba672efc0612674d85b6dd11","src/group.rs":"d9cd30ea5bd4d453293e8e8debbe388a0360c3c766f67c8499fec453a9a43cdc","src/ident.rs":"d67975d3dd89becde96579c0454a1357aa7c62da11bdf94f29ccf63514ffbc9d","src/item.rs":"9abf51aaaa0c2fbb3c633f407fa200a3274de68ce735c7d4da9aa97905a3c3ab","src/lib.rs":"735b88b12afc3bb233aadb74a3d3bb46fe4bdcfd551192899803c79f49fc7d76","src/lifetime.rs":"b18862ef1e690037a4f308ea897debad7bc5038584e3b26c6d8809752ea0e3c2","src/lit.rs":"61c15a44267281c9970e1994ae4b64068305957272d1fcc112c091a3257d9fad","src/lookahead.rs":"92ee63b48de02d3f6f1b09121f0fbac41d55cebc5771c8320e27df8482906152","src/mac.rs":"004cb89f9697564f6c9ee837e08ead68463ef946fb4c13c6c105adf2ba364b2b","src/macros.rs":"266590fd63a4a9d8637c6f8d36702acaace4ba59ab74c0883859efd1e260bae5","src/op.rs":"9d499022902743a6a0a19223b356449a979b90e60552d0446497d72750e646a4","src/parse.rs":"8b4aa518660dfd6310a5455b5624de01ad7ba42d11527b217f811b687b26e1fc","src/parse_macro_input.rs":"88929a1a7e5e72aa2d0b3459e52d8975afea856d159047ba4ab02ecbc5878a9c","src/parse_quote.rs":"2b3504a0e4e360b10d746968842a66e69392c680a39897a487c51097e6a4d623","src/pat.rs":"c78c394b8a31bd41b3d3bec7e9746a75838a895d17e3b651c0b7d0d105426206","src/path.rs":"0dc7b979976e66c064191ae6f585af4ea28b51717dc70243b395b5b2e4bd88ab","src/print.rs":"da6529c1d9d21aaf6c835f66b4e67eacb7cf91a10eb5e9a2143b49bf99b3b5e1","src/punctuated.rs":"838fa432149d064f5d5dca6501df2e1051f15f753398493e7740aec22fe13b8c","src/reserved.rs":"e70e028bd55cfa43e23cab4ba29e4dc53a3d91eff685ef2b6e57efc2b87a3428","src/sealed.rs":"896a495a5340eec898527f18bd4ddca408ea03ea0ee3af30074ff48deace778d","src/span.rs":"748c51c6feb223c26d3b1701f5bb98aee823666c775c98106cfa24fe29d8cec1","src/spanned.rs":"3ca016a943637653ab98e373dfb826a120f3c159867346fa38a844439944eb39","src/stmt.rs":"33e575004fe74d792e19ed3753eca1f5e51dba442b4da2418e6d2b82e85a1064","src/thread.rs":"815eca6bd64f4eef7c447f0809e84108f5428ff50225224b373efd8fbb696874","src/token.rs":"5e423a696f80e281c322f37c87577f9fdc28607e9c007e24896a2b12da62d5ad","src/tt.rs":"32402645b6e82ef1e882945721b59b5fb7b0ee337d1972876362ecacef643d0f","src/ty.rs":"6d419d1b19f484f79e6d14ad414eaab20e4a126fecd903a29fd95397126c4f5e","src/verbatim.rs":"802a97df997432f18cac6e6200ff6ea29fb2474986005e0fcdbc2b65197f87f7","src/whitespace.rs":"e63dd0aa3d34029f17766a8b09c1a6e4479e36c552c8b7023d710a399333aace","tests/.gitignore":"22e782449a3c216db3f7215d5fb8882e316768e40beeec3833aae419ad8941db","tests/common/eq.rs":"ccd0e47c1c98685b4b109463a970392a6ae3cfd32c727c3fbc1a03ac6dd5a1f3","tests/common/mod.rs":"432ad35577f836a20b517d8c26ed994ac25fe73ef2f461c67688b61b99762015","tests/common/parse.rs":"81580f23583723f7a2a337c4d13ebc021057cd825562fb4e474caa7cc641fed9","tests/debug/gen.rs":"e30e2b6c61feb15abe11cee86c4edff9f7e7c9c79080447d44be97869c9a3adb","tests/debug/mod.rs":"73e702b67e0708a79c084b051bd47745daf12079d3c7c411dc8d7463e81f228c","tests/macros/mod.rs":"a93136b172377ffebe8b68fd596a86d6625f64ed6c3d5e7f5d6ad859e25d5623","tests/repo/mod.rs":"6078d2d15885d15ccb01eefe444a266e1ce3426dc01f2ce4bb2b956a7426b1f6","tests/repo/progress.rs":"c08d0314a7f3ecf760d471f27da3cd2a500aeb9f1c8331bffb2aa648f9fabf3f","tests/test_asyncness.rs":"cff01db49d28ab23b0b258bc6c0a5cc4071be4fe7248eef344a5d79d2fb649b7","tests/test_attribute.rs":"0ffd99384e1a52ae17d9fed5c4053e411e8f9018decef07ffa621d1faa7329d8","tests/test_derive_input.rs":"63f0b4d56f3f421e0bb523ce2924afe9e349f0ccefda52ccb8e1e5f342e6d525","tests/test_expr.rs":"e68b5827415471ccfb7efd91bbfba2f025f1cb8f993c417e7b3c0c3bec6a1fa6","tests/test_generics.rs":"54b7d2afc19aa6e9049585f4c8f7d3f0c29ac3bd11a2c769e9df76f18a4f5ecb","tests/test_grouping.rs":"6276c3c73bba649dec5c97904ad2492879f918bc887a2c425d095c654ca0d925","tests/test_ident.rs":"9eb53d1e21edf23e7c9e14dc74dcc2b2538e9221e19dbcc0a44e3acc2e90f3f6","tests/test_item.rs":"a3642c80066f1e7787becfd0278af90a6b7968d6c1249e25e81663aa454cfb2a","tests/test_iterators.rs":"53ed6078d37550bd6765d2411e3660be401aef8a31a407350cc064a7d08c7c33","tests/test_lit.rs":"19740ea9cd4a980bcab9b0dcaa4b032bb6ebb137fa5e4237140b97da1d9679fa","tests/test_meta.rs":"65d4586d131f6cac66694ca5e936748ec4e7f7423af6d8da509240e6be14800b","tests/test_parse_buffer.rs":"68d857f776396d064fcc0023c37093c2fbf75ee68e8241d4014d00d1423c18e9","tests/test_parse_stream.rs":"2f449a2c41a3dee6fd14bee24e1666a453cb808eda17332fd91afd127fcdd2a6","tests/test_pat.rs":"d4465f4fc3fd5d6e534ba8efabe1e0ed6da89de4ac7c96effa6bfb880c4287cf","tests/test_path.rs":"71092a5ae2c9143b92a8fe15a92d39958b3c28bd4d4275cfb2d22cbdd53ada07","tests/test_precedence.rs":"4b51c2b4dc60f17ac0a2d3e5d9abfc13d8b35daaa87f794c231c29c0cd68f8e0","tests/test_receiver.rs":"084eca59984b9a18651da52f2c4407355da3de1335916a12477652999e2d01cc","tests/test_round_trip.rs":"56d2c974b9941090dac0559e75f02f877e0424012251bb17be90abbe82c89c83","tests/test_shebang.rs":"f5772cadad5b56e3112cb16308b779f92bce1c3a48091fc9933deb2276a69331","tests/test_should_parse.rs":"1d3535698a446e2755bfc360676bdb161841a1f454cdef6e7556c6d06a95c89d","tests/test_size.rs":"1aa0dd489bd844a4a9cf32a5310abd66dad1dae3ffb24fe1288b62a26bfdd8dc","tests/test_stmt.rs":"4bf9979705792cbfa8811f8eb5e1350efcbf10200ad43e38680f88c2903b9708","tests/test_token_trees.rs":"43e56a701817e3c3bfd0cae54a457dd7a38ccb3ca19da41e2b995fdf20e6ed18","tests/test_ty.rs":"bf9fe1f31a7115286f9f98cd56a749ff2a410cecf0badfa482b88860e00169a9","tests/test_visibility.rs":"7456fcb3a6634db509748aededff9c2d8b242d511a3e5ee3022e40b232892704","tests/zzz_stable.rs":"2a862e59cb446235ed99aec0e6ada8e16d3ecc30229b29d825b7c0bbc2602989"},"package":"8daf5dd0bb60cbd4137b1b587d2fc0ae729bc07cf01cd70b36a1ed5ade3b9d59"}+{"files":{"Cargo.toml":"639b739833e3ceab4196d26851e6876bf0e0afc0cf2eaed0b77d5c5fffd6ff62","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"417bb33dc685fb0036f91229dd0d828b104a4c35010d362f2a6e5d8b4cf1e36d","benches/file.rs":"af4671030b7fbc3a5dbc37b492e80fcae2893ad7a64dd43dac12cf5906c32301","benches/rust.rs":"c8feb12fb09434bea29426178dd109bc2c2a0d9466af6af7b2fabc55bc9caa93","build.rs":"67a54ac8c1a412b32761156fc7c7d8d3948ad941d9a74e102f618cb6cdada748","src/attr.rs":"234d9cebe2c5e92cd0f5e1117bf5755037e2e905788a337000a65d4bd82b63aa","src/await.rs":"8aa22e3c201cb2bdb6b4817fa00901f308ab06817607aa7b884c58c957705969","src/bigint.rs":"efc7f64959980653d73fe4f8bc2a3a2904dc05f45b02c6dc15cd316fa3d7c338","src/buffer.rs":"5cde45a2f4f9af022faab76af3b603ee7617b9ddb020d67ba5a98d9df4c4ae1f","src/custom_keyword.rs":"a834c617b4a0aa87c21275ded72a4e04d7fac2d2255cfc037c0690d21488fc31","src/custom_punctuation.rs":"8a666298e774b0d326642f0f73284f6677d0d0a7c9e4a712c9c98d010b4d8a2c","src/data.rs":"ff565899aa435104a0cc6fdf3184ad4b8a4524de2f917a3efe8c3ae0559deed3","src/derive.rs":"d4205fb2b699e784c0889bcde7e80b77ab222ee74ec3c349b5b1fa63a5f3b0b0","src/discouraged.rs":"6c6a9298f8d24f578da119557bc588f3bd928f7b79fca27d6bdfe3e786dd005f","src/error.rs":"49439196c26eec7cfbabd9f5d3ff04d2f0f88fd88986f4623fde1b6886cab500","src/export.rs":"60e27ba28108b56e63981b6e946273cd159e9cae42d665dc9c6a09ad8c20046a","src/expr.rs":"dd4fffbe2b616c7cea6b2441738205157a0b52f3ebfb6f86846a77408241c9cd","src/ext.rs":"1f648cff1d705a1cea64b32b77482b97a82d2fe0aaf63b40cade91e5c02dc969","src/file.rs":"f86697655222ae294215114f4eae8e6b0b5e2a935d6c479ff8f8f889c4efd2e2","src/gen/clone.rs":"8db60fc2bf515f9a65f4e98669427ce02ed0ccc9ffdad25d8fb39b38768ecaf1","src/gen/debug.rs":"facf4fb5c7e017dd890c4a9531f337659d7b55475aa44124abf48e088ad56fc5","src/gen/eq.rs":"576a4f1e4030434b0f0170f4d681d2c46292fda64ad5f3913623e1c6e858c24f","src/gen/fold.rs":"3f59e59ed8ad2ab5dd347bfbe41bbc785c2aabd8ae902087a584a6daed597182","src/gen/hash.rs":"458052bb0d64b2a722eaeef4461af80bce109cd97d19bd44dbd608e4c53a6520","src/gen/visit.rs":"94f2c6bed4ef1cd0e83d91dddaa95730619fa48fdd4a0be2fd8740e730ff744d","src/gen/visit_mut.rs":"abc8cb67ad3300d0667761daf1e057b80b4d3f3980d94e8d6f3ed68bdcda3776","src/gen_helper.rs":"ea6c66388365971db6a2fc86cbb208f7eacde77e245bc8623f27a3642a3d7741","src/generics.rs":"46ed41bf116448822ddfefcb62e803fd33264ca8ba672efc0612674d85b6dd11","src/group.rs":"d9cd30ea5bd4d453293e8e8debbe388a0360c3c766f67c8499fec453a9a43cdc","src/ident.rs":"d67975d3dd89becde96579c0454a1357aa7c62da11bdf94f29ccf63514ffbc9d","src/item.rs":"7ee565cc1982b63858172c1dee3f86cdbdef3e102ccf17f022e6053de7c48c23","src/lib.rs":"ca77f0a78c7d66f029da9d2a4dea5318042b67aafd342722840d4cbda5cfcc5f","src/lifetime.rs":"b18862ef1e690037a4f308ea897debad7bc5038584e3b26c6d8809752ea0e3c2","src/lit.rs":"e9d1e548e5e1877fa91ba61cb67ab06069750e0e8ae313aec54b0937bd8c17de","src/lookahead.rs":"92ee63b48de02d3f6f1b09121f0fbac41d55cebc5771c8320e27df8482906152","src/mac.rs":"004cb89f9697564f6c9ee837e08ead68463ef946fb4c13c6c105adf2ba364b2b","src/macros.rs":"266590fd63a4a9d8637c6f8d36702acaace4ba59ab74c0883859efd1e260bae5","src/op.rs":"9d499022902743a6a0a19223b356449a979b90e60552d0446497d72750e646a4","src/parse.rs":"8b4aa518660dfd6310a5455b5624de01ad7ba42d11527b217f811b687b26e1fc","src/parse_macro_input.rs":"88929a1a7e5e72aa2d0b3459e52d8975afea856d159047ba4ab02ecbc5878a9c","src/parse_quote.rs":"d7d996f1382c68b5fbfd4b7327ce1d389cd43c3bb3c4f382a35994d0bb79d8ab","src/pat.rs":"c78c394b8a31bd41b3d3bec7e9746a75838a895d17e3b651c0b7d0d105426206","src/path.rs":"0dc7b979976e66c064191ae6f585af4ea28b51717dc70243b395b5b2e4bd88ab","src/print.rs":"da6529c1d9d21aaf6c835f66b4e67eacb7cf91a10eb5e9a2143b49bf99b3b5e1","src/punctuated.rs":"838fa432149d064f5d5dca6501df2e1051f15f753398493e7740aec22fe13b8c","src/reserved.rs":"e70e028bd55cfa43e23cab4ba29e4dc53a3d91eff685ef2b6e57efc2b87a3428","src/sealed.rs":"896a495a5340eec898527f18bd4ddca408ea03ea0ee3af30074ff48deace778d","src/span.rs":"748c51c6feb223c26d3b1701f5bb98aee823666c775c98106cfa24fe29d8cec1","src/spanned.rs":"3ca016a943637653ab98e373dfb826a120f3c159867346fa38a844439944eb39","src/stmt.rs":"8115bc96090022baad91660d7e5e986664c3f1fbd2f112d1c5d1d77e5c3f227e","src/thread.rs":"815eca6bd64f4eef7c447f0809e84108f5428ff50225224b373efd8fbb696874","src/token.rs":"5e423a696f80e281c322f37c87577f9fdc28607e9c007e24896a2b12da62d5ad","src/tt.rs":"32402645b6e82ef1e882945721b59b5fb7b0ee337d1972876362ecacef643d0f","src/ty.rs":"6d419d1b19f484f79e6d14ad414eaab20e4a126fecd903a29fd95397126c4f5e","src/verbatim.rs":"802a97df997432f18cac6e6200ff6ea29fb2474986005e0fcdbc2b65197f87f7","src/whitespace.rs":"e63dd0aa3d34029f17766a8b09c1a6e4479e36c552c8b7023d710a399333aace","tests/.gitignore":"22e782449a3c216db3f7215d5fb8882e316768e40beeec3833aae419ad8941db","tests/common/eq.rs":"a7c61be78d0eec241114b7c08ac7b72cc0591be98a7dc25ac1197c76e47cc896","tests/common/mod.rs":"432ad35577f836a20b517d8c26ed994ac25fe73ef2f461c67688b61b99762015","tests/common/parse.rs":"81580f23583723f7a2a337c4d13ebc021057cd825562fb4e474caa7cc641fed9","tests/debug/gen.rs":"e30e2b6c61feb15abe11cee86c4edff9f7e7c9c79080447d44be97869c9a3adb","tests/debug/mod.rs":"73e702b67e0708a79c084b051bd47745daf12079d3c7c411dc8d7463e81f228c","tests/macros/mod.rs":"ef7847fa9b227561f631d641a8d2e17e3787046fe2bcfc621235f6f3f491e556","tests/regression.rs":"f962ebf24007f631f7e702e34e142d07581da7c9a36321ac142cafed1a0afc69","tests/regression/issue1108.rs":"f32db35244a674e22ff824ca9e5bbec2184e287b59f022db68c418b5878a2edc","tests/repo/mod.rs":"5b945c3a19b2a10bda993898afe8b88b2496b1ac394b3bda8d313c9aa28dcf13","tests/repo/progress.rs":"c08d0314a7f3ecf760d471f27da3cd2a500aeb9f1c8331bffb2aa648f9fabf3f","tests/test_asyncness.rs":"cff01db49d28ab23b0b258bc6c0a5cc4071be4fe7248eef344a5d79d2fb649b7","tests/test_attribute.rs":"0ffd99384e1a52ae17d9fed5c4053e411e8f9018decef07ffa621d1faa7329d8","tests/test_derive_input.rs":"63f0b4d56f3f421e0bb523ce2924afe9e349f0ccefda52ccb8e1e5f342e6d525","tests/test_expr.rs":"e68b5827415471ccfb7efd91bbfba2f025f1cb8f993c417e7b3c0c3bec6a1fa6","tests/test_generics.rs":"54b7d2afc19aa6e9049585f4c8f7d3f0c29ac3bd11a2c769e9df76f18a4f5ecb","tests/test_grouping.rs":"6276c3c73bba649dec5c97904ad2492879f918bc887a2c425d095c654ca0d925","tests/test_ident.rs":"9eb53d1e21edf23e7c9e14dc74dcc2b2538e9221e19dbcc0a44e3acc2e90f3f6","tests/test_item.rs":"a3642c80066f1e7787becfd0278af90a6b7968d6c1249e25e81663aa454cfb2a","tests/test_iterators.rs":"53ed6078d37550bd6765d2411e3660be401aef8a31a407350cc064a7d08c7c33","tests/test_lit.rs":"19740ea9cd4a980bcab9b0dcaa4b032bb6ebb137fa5e4237140b97da1d9679fa","tests/test_meta.rs":"65d4586d131f6cac66694ca5e936748ec4e7f7423af6d8da509240e6be14800b","tests/test_parse_buffer.rs":"68d857f776396d064fcc0023c37093c2fbf75ee68e8241d4014d00d1423c18e9","tests/test_parse_stream.rs":"2f449a2c41a3dee6fd14bee24e1666a453cb808eda17332fd91afd127fcdd2a6","tests/test_pat.rs":"d4465f4fc3fd5d6e534ba8efabe1e0ed6da89de4ac7c96effa6bfb880c4287cf","tests/test_path.rs":"71092a5ae2c9143b92a8fe15a92d39958b3c28bd4d4275cfb2d22cbdd53ada07","tests/test_precedence.rs":"035c048b77b6bc42b89c6757216adff8027332177541d7d65e4a360f6bdccdc0","tests/test_receiver.rs":"084eca59984b9a18651da52f2c4407355da3de1335916a12477652999e2d01cc","tests/test_round_trip.rs":"47802f4089b28e06d6445158fc8226618857869000378a1cbe067277a32702ad","tests/test_shebang.rs":"f5772cadad5b56e3112cb16308b779f92bce1c3a48091fc9933deb2276a69331","tests/test_should_parse.rs":"1d3535698a446e2755bfc360676bdb161841a1f454cdef6e7556c6d06a95c89d","tests/test_size.rs":"1aa0dd489bd844a4a9cf32a5310abd66dad1dae3ffb24fe1288b62a26bfdd8dc","tests/test_stmt.rs":"4bf9979705792cbfa8811f8eb5e1350efcbf10200ad43e38680f88c2903b9708","tests/test_token_trees.rs":"43e56a701817e3c3bfd0cae54a457dd7a38ccb3ca19da41e2b995fdf20e6ed18","tests/test_ty.rs":"bf9fe1f31a7115286f9f98cd56a749ff2a410cecf0badfa482b88860e00169a9","tests/test_visibility.rs":"7456fcb3a6634db509748aededff9c2d8b242d511a3e5ee3022e40b232892704","tests/zzz_stable.rs":"2a862e59cb446235ed99aec0e6ada8e16d3ecc30229b29d825b7c0bbc2602989"},"package":"a684ac3dcd8913827e18cd09a68384ee66c1de24157e3c556c9ab16d85695fb7"}=========tools/tryselect/push.py========--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/tools/tryselect/push.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/tools/tryselect/push.py@@ -154,9 +154,12 @@ durations["dependency_duration"] + durations["selected_duration"] ) )- print(- "estimates: In the top {}% of durations".format(100 - durations["percentile"])- )+ if "percentile" in durations:+ print(+ "estimates: In the top {}% of durations".format(+ 100 - durations["percentile"]+ )+ ) print( "estimates: Should take about {} (Finished around {})".format( durations["wall_duration_seconds"],
Based on the provided diff content, I'll analyze the changes for potential security fixes: 1. First vulnerability analysis (from rust/syn/.cargo-checksum.json changes): Vulnerability Existed: not sure [Potential Dependency Updates] third_party/rust/syn/.cargo-checksum.json [Entire file] [Old checksums for multiple files] [New checksums for multiple files] Additional Details: The checksum file shows updates to multiple source files in the syn crate, but without seeing the actual source changes, it's impossible to determine if these were security fixes or general updates. 2. Second vulnerability analysis (from tools/tryselect/push.py changes): Vulnerability Existed: no [Defensive Programming Fix] tools/tryselect/push.py [Lines 154-159] [Old Code: Unconditionally accessing 'percentile' key] [Fixed Code: Added check for 'percentile' key existence before access] Additional Details: This change adds a defensive check to prevent potential KeyError exceptions, but it's not addressing a security vulnerability - just improving code robustness. The most significant change appears to be the update to the syn crate (a Rust library for parsing Rust code), but without seeing the actual source changes that led to the checksum updates, I can't determine if any security vulnerabilities were fixed. The push.py change is clearly not 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/taskcluster/gecko_taskgraph/transforms/release_msix_push.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/taskcluster/gecko_taskgraph/transforms/release_msix_push.py@@ -52,6 +52,12 @@ ) resolve_keyed_by( job,+ "worker.publish-mode",+ item_name=job["name"],+ **{"release-type": config.params["release_type"]},+ )+ resolve_keyed_by(+ job, "worker-type", item_name=job["name"], **{"release-level": release_level(config.params["project"])},
Let me analyze the code diff for security fixes. Vulnerability Existed: not sure [Potential Information Exposure] [taskcluster/gecko_taskgraph/transforms/release_msix_push.py] [Lines 52-58] [Old Code] resolve_keyed_by( job, "worker-type", item_name=job["name"], **{"release-level": release_level(config.params["project"])}, [Fixed Code] resolve_keyed_by( job, "worker.publish-mode", item_name=job["name"], **{"release-type": config.params["release_type"]}, ) resolve_keyed_by( job, "worker-type", item_name=job["name"], **{"release-level": release_level(config.params["project"])}, Additional Details: The change adds a new configuration resolution for "worker.publish-mode" using release_type parameter. While this doesn't directly show a security vulnerability, it could potentially expose sensitive information if the publish-mode isn't properly secured or validated. However, without more context about how these parameters are used, I can't be certain if this was an actual security fix or just a functional change. The change does show increased attention to configuration management which could 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/shadows/2d.shadow.canvas.transparent.2.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/html/canvas/offscreen/shadows/2d.shadow.canvas.transparent.2.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'); var offscreenCanvas2 = new OffscreenCanvas(100, 50); var ctx2 = offscreenCanvas2.getContext('2d');@@ -33,9 +33,9 @@ ctx.drawImage(offscreenCanvas2, 50, -50); ctx.shadowColor = '#f00'; ctx.drawImage(offscreenCanvas2, -50, -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(); });
After analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 17-18, 33-35] [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 appear to be purely variable name refactoring (renaming 'offscreenCanvas' to 'canvas') with no security implications. The functionality remains identical, just with a different variable name. No security vulnerabilities were introduced or 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/testing/web-platform/tests/css/css-shapes/shape-outside/shape-box/shape-outside-border-box-border-radius-011.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-shapes/shape-outside/shape-box/shape-outside-border-box-border-radius-011.html@@ -9,7 +9,6 @@ <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#shapes-from-box-values"> <link rel="match" href="reference/shape-outside-border-box-border-radius-011-ref.html">- <meta name="flags" content=""> <meta name="assert" content="Test the boxes are wrapping around the left float shape defined by the border-box and border-top-right-radius value under sideways-lr writing-mode."> <style> .container {
Based on the provided diff, I'll analyze it for potential security vulnerabilities: Vulnerability Existed: no No security vulnerability found [File] [Lines 9] [Old Code] <meta name="flags" content=""> [Fixed Code] <meta name="flags" content=""> (removed) Additional Details: - This appears to be a simple cleanup of test metadata (removing an empty flags meta tag) - No security implications are evident from this change - The change is likely related to test organization rather than security fixes - No known vulnerability patterns match this change - The modification doesn't affect any security-sensitive functionality The change seems purely cosmetic/structural for test organization purposes rather than addressing any security concern.
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/gfx/layers/ipc/ContentCompositorBridgeParent.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/gfx/layers/ipc/ContentCompositorBridgeParent.cpp@@ -24,7 +24,6 @@ #include "mozilla/layers/RemoteContentController.h" #include "mozilla/layers/WebRenderBridgeParent.h" #include "mozilla/layers/AsyncImagePipelineManager.h"-#include "mozilla/webgpu/WebGPUParent.h" #include "mozilla/mozalloc.h" // for operator new, etc #include "nsDebug.h" // for NS_ASSERTION, etc #include "nsTArray.h" // for nsTArray@@ -205,19 +204,6 @@ return true; }-webgpu::PWebGPUParent* ContentCompositorBridgeParent::AllocPWebGPUParent() {- webgpu::WebGPUParent* parent = new webgpu::WebGPUParent();- parent->AddRef(); // IPDL reference- return parent;-}--bool ContentCompositorBridgeParent::DeallocPWebGPUParent(- webgpu::PWebGPUParent* aActor) {- webgpu::WebGPUParent* parent = static_cast<webgpu::WebGPUParent*>(aActor);- parent->Release(); // IPDL reference- return true;-}- mozilla::ipc::IPCResult ContentCompositorBridgeParent::RecvNotifyChildCreated( const LayersId& child, CompositorOptions* aOptions) { MonitorAutoLock lock(*sIndirectLayerTreesLock);@@ -239,6 +225,12 @@ CompositorOptions* aOptions) { // This can only be called from the browser process, as the mapping // ensures proper window ownership of layer trees.+ return IPC_FAIL_NO_REASON(this);+}++mozilla::ipc::IPCResult+ContentCompositorBridgeParent::RecvNotifyMemoryPressure() {+ // This can only be called from the browser process. return IPC_FAIL_NO_REASON(this); }
Here's the analysis of the provided code diff following the specified format: 1. Vulnerability Existed: not sure [Potential Removal of WebGPU Interface] [gfx/layers/ipc/ContentCompositorBridgeParent.cpp] [Lines 24, 205-215] [Old Code] ```cpp #include "mozilla/webgpu/WebGPUParent.h" ... webgpu::PWebGPUParent* ContentCompositorBridgeParent::AllocPWebGPUParent() { webgpu::WebGPUParent* parent = new webgpu::WebGPUParent(); parent->AddRef(); // IPDL reference return parent; } bool ContentCompositorBridgeParent::DeallocPWebGPUParent( webgpu::PWebGPUParent* aActor) { webgpu::WebGPUParent* parent = static_cast<webgpu::WebGPUParent*>(aActor); parent->Release(); // IPDL reference return true; } ``` [Fixed Code] ```cpp // Entire WebGPU-related code removed ``` Additional Details: The removal of WebGPU-related code might indicate a security concern, but without more context, it's unclear if this was an actual vulnerability fix or just code cleanup. 2. Vulnerability Existed: not sure [Added Memory Pressure Notification Handler] [gfx/layers/ipc/ContentCompositorBridgeParent.cpp] [Lines 225-229] [Old Code] ```cpp // No corresponding function existed before ``` [Fixed Code] ```cpp mozilla::ipc::IPCResult ContentCompositorBridgeParent::RecvNotifyMemoryPressure() { // This can only be called from the browser process. return IPC_FAIL_NO_REASON(this); } ``` Additional Details: The addition of a memory pressure notification handler with explicit process restriction might indicate a security hardening measure, but it's unclear if this fixes a specific vulnerability. Note: The diff shows two main changes - removal of WebGPU-related code and addition of a memory pressure handler. While these could be security-related changes, there isn't enough context to definitively identify specific vulnerabilities being fixed. The changes appear to be hardening measures rather than fixes for known 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/third_party/rust/textwrap/tests/version-numbers.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/textwrap/tests/version-numbers.rs@@ -1,17 +1,22 @@-#[macro_use]-extern crate version_sync;- #[test] fn test_readme_deps() {- assert_markdown_deps_updated!("README.md");+ version_sync::assert_markdown_deps_updated!("README.md"); } #[test]-fn test_readme_changelog() {- assert_contains_regex!("README.md", r"^### Version {version} — .* \d\d?.., 20\d\d$");+fn test_changelog() {+ version_sync::assert_contains_regex!(+ "CHANGELOG.md",+ r"^## Version {version} \(20\d\d-\d\d-\d\d\)"+ ); } #[test] fn test_html_root_url() {- assert_html_root_url_updated!("src/lib.rs");+ version_sync::assert_html_root_url_updated!("src/lib.rs"); }++#[test]+fn test_dependency_graph() {+ version_sync::assert_contains_regex!("src/lib.rs", "master/images/textwrap-{version}.svg");+}
Based on the provided code diff, I don't see any security vulnerabilities being fixed. The changes appear to be related to test improvements and version synchronization updates rather than security fixes. Here's the analysis: 1. Vulnerability Existed: no Test Improvements [third_party/rust/textwrap/tests/version-numbers.rs] [Lines 1-22] Old Code: ``` #[macro_use] extern crate version_sync; #[test] fn test_readme_deps() { assert_markdown_deps_updated!("README.md"); } #[test] fn test_readme_changelog() { assert_contains_regex!("README.md", r"^### Version {version} — .* \d\d?.., 20\d\d$"); } #[test] fn test_html_root_url() { assert_html_root_url_updated!("src/lib.rs"); } ``` Fixed Code: ``` #[test] fn test_readme_deps() { version_sync::assert_markdown_deps_updated!("README.md"); } #[test] fn test_changelog() { version_sync::assert_contains_regex!( "CHANGELOG.md", r"^## Version {version} \(20\d\d-\d\d-\d\d\)" ); } #[test] fn test_html_root_url() { version_sync::assert_html_root_url_updated!("src/lib.rs"); } #[test] fn test_dependency_graph() { version_sync::assert_contains_regex!("src/lib.rs", "master/images/textwrap-{version}.svg"); } ``` The changes include: 1. Removal of `#[macro_use]` and direct crate import 2. Updated test function names and patterns 3. Added a new test for dependency graph 4. Changed to explicit version_sync namespace usage None of these changes appear to address security vulnerabilities. They seem to be test improvements and modernization of the code.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/taskcluster/gecko_taskgraph/test/test_morph.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/taskcluster/gecko_taskgraph/test/test_morph.py@@ -4,10 +4,10 @@ import pytest+from taskgraph.parameters import Parameters from gecko_taskgraph import morph from gecko_taskgraph.graph import Graph-from gecko_taskgraph.parameters import Parameters from gecko_taskgraph.taskgraph import TaskGraph from gecko_taskgraph.task import Task
Based on the provided code diff, I'll analyze it for potential security vulnerabilities: 1. Vulnerability Existed: no Import Reorganization [taskcluster/gecko_taskgraph/test/test_morph.py] [Lines 4-10] [Old Code] import pytest from gecko_taskgraph import morph from gecko_taskgraph.graph import Graph from gecko_taskgraph.parameters import Parameters from gecko_taskgraph.taskgraph import TaskGraph from gecko_taskgraph.task import Task [Fixed Code] import pytest from taskgraph.parameters import Parameters from gecko_taskgraph import morph from gecko_taskgraph.graph import Graph from gecko_taskgraph.taskgraph import TaskGraph from gecko_taskgraph.task import Task Additional Details: - The change appears to be purely organizational, moving the Parameters import from a gecko-specific path to a more generic taskgraph path. - There are no visible security implications in this change as it doesn't affect functionality, just import paths. - No known vulnerability patterns are present in this change. - The modification doesn't involve any security-sensitive operations like input validation, authentication, or data handling.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/python/mozbuild/mozbuild/mozconfig.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/python/mozbuild/mozbuild/mozconfig.py@@ -106,6 +106,8 @@ """ if path is self.AUTODETECT: path = find_mozconfig(self.topsrcdir)+ if isinstance(path, Path):+ path = str(path) result = { "path": path,
Let me analyze the code diff for potential security vulnerabilities. Vulnerability Existed: not sure Path Object Handling Vulnerability python/mozbuild/mozbuild/mozconfig.py [Lines 106-108] [Old Code] if path is self.AUTODETECT: path = find_mozconfig(self.topsrcdir) [Fixed Code] if path is self.AUTODETECT: path = find_mozconfig(self.topsrcdir) if isinstance(path, Path): path = str(path) Additional Details: The change adds handling for Path objects by converting them to strings. While not clearly a security vulnerability, this could potentially prevent path handling issues that might lead to security problems if Path objects were not properly handled in subsequent code. The fix ensures consistent string path handling. I couldn't identify any clear, named security vulnerabilities in this diff, but the change does improve robustness in path handling which could have security implications in edge cases.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/python/mozboot/mozboot/mach_commands.py+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/python/mozboot/mozboot/mach_commands.py@@ -7,6 +7,7 @@ import errno import sys+from pathlib import Path from mach.decorators import CommandArgument, Command from mozboot.bootstrap import APPLICATIONS@@ -71,6 +72,7 @@ import mozboot.bootstrap as bootstrap import mozversioncontrol from mozfile import which+ from mach.util import to_optional_path repo = mozversioncontrol.get_repository_object(command_context._mach_context.topdir) tool = "hg"@@ -83,7 +85,7 @@ if sys.platform in ("win32", "msys"): tool += ".exe"- vcs = which(tool)+ vcs = to_optional_path(which(tool)) if not vcs: raise OSError(errno.ENOENT, "Could not find {} on $PATH".format(tool))@@ -91,18 +93,19 @@ if repo.name == "git": bootstrap.update_git_tools( vcs,- command_context._mach_context.state_dir,- command_context._mach_context.topdir,+ Path(command_context._mach_context.state_dir), ) else:- bootstrap.update_vct(vcs, command_context._mach_context.state_dir)+ bootstrap.update_vct(vcs, Path(command_context._mach_context.state_dir)) else: if repo.name == "git": bootstrap.configure_git( vcs,- which("git-cinnabar"),- command_context._mach_context.state_dir,- command_context._mach_context.topdir,+ to_optional_path(which("git-cinnabar")),+ Path(command_context._mach_context.state_dir),+ Path(command_context._mach_context.topdir), ) else:- bootstrap.configure_mercurial(vcs, command_context._mach_context.state_dir)+ bootstrap.configure_mercurial(+ vcs, Path(command_context._mach_context.state_dir)+ )
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: not sure Path Traversal Vulnerability Prevention [python/mozboot/mozboot/mach_commands.py] [Lines 71-93] [Old Code] ```python bootstrap.update_git_tools( vcs, command_context._mach_context.state_dir, command_context._mach_context.topdir, ) ``` [Fixed Code] ```python bootstrap.update_git_tools( vcs, Path(command_context._mach_context.state_dir), ) ``` Additional Details: The change involves using Path() for path handling, which generally provides better path manipulation security, though it's not clear if this was specifically fixing a known vulnerability. 2. Vulnerability Existed: not sure Path Handling Security Improvement [python/mozboot/mozboot/mach_commands.py] [Lines 83-85] [Old Code] ```python vcs = which(tool) ``` [Fixed Code] ```python vcs = to_optional_path(which(tool)) ``` Additional Details: The addition of to_optional_path() suggests improved path handling security, but it's unclear if this was fixing a specific known vulnerability. 3. Vulnerability Existed: not sure Path Security in Configuration [python/mozboot/mozboot/mach_commands.py] [Lines 91-97] [Old Code] ```python bootstrap.configure_git( vcs, which("git-cinnabar"), command_context._mach_context.state_dir, command_context._mach_context.topdir, ) ``` [Fixed Code] ```python bootstrap.configure_git( vcs, to_optional_path(which("git-cinnabar")), Path(command_context._mach_context.state_dir), Path(command_context._mach_context.topdir), ) ``` Additional Details: The changes consistently apply Path() and to_optional_path() for better path handling security, but again, it's unclear if this was addressing a specific vulnerability. The changes appear to be part of a systematic improvement in path handling security throughout the file, but without more context, we can't definitively say these were fixing specific known vulnerabilities. The changes do represent security-conscious improvements in path handling.
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/WorkerPrivate.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/dom/workers/WorkerPrivate.cpp@@ -51,6 +51,7 @@ #include "mozilla/dom/RemoteWorkerService.h" #include "mozilla/dom/TimeoutHandler.h" #include "mozilla/dom/WorkerBinding.h"+#include "mozilla/dom/WorkerScope.h" #include "mozilla/dom/JSExecutionManager.h" #include "mozilla/dom/WindowContext.h" #include "mozilla/extensions/ExtensionBrowser.h" // extensions::Create{AndDispatchInitWorkerContext,WorkerLoaded,WorkerDestroyed}Runnable@@ -208,11 +209,15 @@ } nsresult Cancel() override {+ // We need to check first if cancel is called twice+ nsresult rv = WorkerRunnable::Cancel();+ NS_ENSURE_SUCCESS(rv, rv);+ nsCOMPtr<nsIDiscardableRunnable> doomed = do_QueryInterface(mWrappedRunnable); MOZ_ASSERT(doomed); // We checked this earlier! doomed->OnDiscard();- return WorkerRunnable::Cancel();+ return NS_OK; } };@@ -923,7 +928,7 @@ } /* anonymous namespace */ nsString ComputeWorkerPrivateId() {- nsID uuid = nsContentUtils::GenerateUUID();+ nsID uuid = nsID::GenerateUUID(); return NSID_TrimBracketsUTF16(uuid); }@@ -2421,7 +2426,7 @@ RefPtr<DocGroup> docGroup = doc->GetDocGroup(); nsID agentClusterId =- docGroup ? docGroup->AgentClusterId() : nsContentUtils::GenerateUUID();+ docGroup ? docGroup->AgentClusterId() : nsID::GenerateUUID(); BrowsingContext* bc = aLoadInfo->mWindow->GetBrowsingContext(); MOZ_DIAGNOSTIC_ASSERT(bc);@@ -2430,7 +2435,7 @@ // If the window object was failed to be set into the WorkerLoadInfo, we // make the worker into another agent cluster group instead of failures.- return {nsContentUtils::GenerateUUID(), agentClusterCoop};+ return {nsID::GenerateUUID(), agentClusterCoop}; } // static@@ -3834,7 +3839,7 @@ return runnable->Dispatch(); }-bool WorkerPrivate::AddChildWorker(WorkerPrivate* aChildWorker) {+bool WorkerPrivate::AddChildWorker(WorkerPrivate& aChildWorker) { auto data = mWorkerThreadAccessible.Access(); #ifdef DEBUG@@ -3849,20 +3854,20 @@ } #endif- NS_ASSERTION(!data->mChildWorkers.Contains(aChildWorker),+ NS_ASSERTION(!data->mChildWorkers.Contains(&aChildWorker), "Already know about this one!");- data->mChildWorkers.AppendElement(aChildWorker);+ data->mChildWorkers.AppendElement(&aChildWorker); return data->mChildWorkers.Length() == 1 ? ModifyBusyCountFromWorker(true) : true; }-void WorkerPrivate::RemoveChildWorker(WorkerPrivate* aChildWorker) {+void WorkerPrivate::RemoveChildWorker(WorkerPrivate& aChildWorker) { auto data = mWorkerThreadAccessible.Access();- NS_ASSERTION(data->mChildWorkers.Contains(aChildWorker),+ NS_ASSERTION(data->mChildWorkers.Contains(&aChildWorker), "Didn't know about this one!");- data->mChildWorkers.RemoveElement(aChildWorker);+ data->mChildWorkers.RemoveElement(&aChildWorker); if (data->mChildWorkers.IsEmpty() && !ModifyBusyCountFromWorker(false)) { NS_WARNING("Failed to modify busy count!");@@ -3932,7 +3937,7 @@ workerRef->Notify(); }- AutoTArray<WorkerPrivate*, 10> children;+ AutoTArray<CheckedUnsafePtr<WorkerPrivate>, 10> children; children.AppendElements(data->mChildWorkers); for (uint32_t index = 0; index < children.Length(); index++) {@@ -5269,15 +5274,14 @@ } if (IsSharedWorker()) {- data->mScope = new SharedWorkerGlobalScope(- WrapNotNull(this), CreateClientSource(), WorkerName());+ data->mScope =+ new SharedWorkerGlobalScope(this, CreateClientSource(), WorkerName()); } else if (IsServiceWorker()) {- data->mScope =- new ServiceWorkerGlobalScope(WrapNotNull(this), CreateClientSource(),- GetServiceWorkerRegistrationDescriptor());+ data->mScope = new ServiceWorkerGlobalScope(+ this, CreateClientSource(), GetServiceWorkerRegistrationDescriptor()); } else {- data->mScope = new DedicatedWorkerGlobalScope(- WrapNotNull(this), CreateClientSource(), WorkerName());+ data->mScope = new DedicatedWorkerGlobalScope(this, CreateClientSource(),+ WorkerName()); } JS::Rooted<JSObject*> global(aCx);@@ -5306,7 +5310,7 @@ GetClientType(), HybridEventTarget(), NullPrincipalInfo()); data->mDebuggerScope =- new WorkerDebuggerGlobalScope(WrapNotNull(this), std::move(clientSource));+ new WorkerDebuggerGlobalScope(this, std::move(clientSource)); JS::Rooted<JSObject*> global(aCx); NS_ENSURE_TRUE(data->mDebuggerScope->WrapGlobalObject(aCx, &global), nullptr);
Here's the analysis of the provided code diff for security fixes: 1. Vulnerability Existed: yes Double Call Vulnerability [dom/workers/WorkerPrivate.cpp] [Lines 208-215] [Old Code] nsresult Cancel() override { nsCOMPtr<nsIDiscardableRunnable> doomed = do_QueryInterface(mWrappedRunnable); MOZ_ASSERT(doomed); // We checked this earlier! doomed->OnDiscard(); return WorkerRunnable::Cancel(); } [Fixed Code] nsresult Cancel() override { // We need to check first if cancel is called twice nsresult rv = WorkerRunnable::Cancel(); NS_ENSURE_SUCCESS(rv, rv); nsCOMPtr<nsIDiscardableRunnable> doomed = do_QueryInterface(mWrappedRunnable); MOZ_ASSERT(doomed); // We checked this earlier! doomed->OnDiscard(); return NS_OK; } 2. Vulnerability Existed: not sure UUID Generation Security Improvement [dom/workers/WorkerPrivate.cpp] [Multiple locations] [Old Code] Various calls to nsContentUtils::GenerateUUID() [Fixed Code] Replaced with nsID::GenerateUUID() 3. Vulnerability Existed: yes Pointer Safety Improvement [dom/workers/WorkerPrivate.cpp] [Lines 3834-3874] [Old Code] bool WorkerPrivate::AddChildWorker(WorkerPrivate* aChildWorker) void WorkerPrivate::RemoveChildWorker(WorkerPrivate* aChildWorker) [Fixed Code] bool WorkerPrivate::AddChildWorker(WorkerPrivate& aChildWorker) void WorkerPrivate::RemoveChildWorker(WorkerPrivate& aChildWorker) 4. Vulnerability Existed: not sure Memory Safety Improvement [dom/workers/WorkerPrivate.cpp] [Line 3937] [Old Code] AutoTArray<WorkerPrivate*, 10> children; [Fixed Code] AutoTArray<CheckedUnsafePtr<WorkerPrivate>, 10> children; 5. Vulnerability Existed: not sure Scope Creation Safety Improvement [dom/workers/WorkerPrivate.cpp] [Lines 5269-5282] [Old Code] Using WrapNotNull(this) in scope creation [Fixed Code] Using direct this pointer in scope creation The most clear security fix is the first one which prevents potential double-call issues in the Cancel() method. The other changes appear to be defensive programming improvements and potential security hardening, though their exact security impact is less clear without more context. The UUID generation change might be related to security if the old method had any vulnerabilities, but this isn't specified in the 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/toolkit/mozapps/extensions/test/browser/head.js+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/toolkit/mozapps/extensions/test/browser/head.js@@ -660,13 +660,7 @@ function MockProvider() { this.addons = []; this.installs = [];- this.types = [- {- id: "extension",- name: "Extensions",- uiPriority: 4000,- },- ];+ this.addonTypes = ["extension"]; var self = this; registerCleanupFunction(function() {@@ -681,8 +675,8 @@ MockProvider.prototype = { addons: null, installs: null,+ addonTypes: null, started: null,- types: null, queryDelayPromise: Promise.resolve(), blockQueryResponses() {@@ -707,7 +701,12 @@ */ register: function MP_register() { info("Registering mock add-on provider");- AddonManagerPrivate.registerProvider(this, this.types);+ // addonTypes is supposedly the full set of types supported by the provider.+ // The current list is not complete (there are tests that mock add-on types+ // other than "extension"), but it doesn't affect tests since addonTypes is+ // mainly used to determine whether any of the AddonManager's providers+ // support a type, and XPIProvider already defines the types of interest.+ AddonManagerPrivate.registerProvider(this, this.addonTypes); }, /**
Here's the analysis of the provided code diff following the specified format: Vulnerability Existed: no [No specific vulnerability] [toolkit/mozapps/extensions/test/browser/head.js] [Lines 660-681, 701] [Old Code] this.types = [ { id: "extension", name: "Extensions", uiPriority: 4000, }, ]; ... AddonManagerPrivate.registerProvider(this, this.types); [Fixed Code] this.addonTypes = ["extension"]; ... AddonManagerPrivate.registerProvider(this, this.addonTypes); Additional Details: 1. This appears to be a refactoring change rather than a security fix. 2. The change simplifies how add-on types are represented in the mock provider, moving from an object structure to a simple array of strings. 3. The comment in the code explains that the change doesn't affect test functionality since the actual type support is handled by XPIProvider. 4. No specific vulnerability is being addressed here - it's more of a code cleanup and simplification. Note: While this change doesn't appear to fix any security vulnerability, it's worth noting that the simplification might reduce potential attack surface by using a simpler data structure, though 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/mozglue/tests/TestBaseProfiler.cpp+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/mozglue/tests/TestBaseProfiler.cpp@@ -8,6 +8,9 @@ #include "mozilla/Attributes.h" #include "mozilla/BaseProfileJSONWriter.h"+#include "mozilla/FloatingPoint.h"+#include "mozilla/ProgressLogger.h"+#include "mozilla/ProportionValue.h" #ifdef MOZ_GECKO_PROFILER # include "mozilla/BaseProfilerMarkerTypes.h"@@ -224,6 +227,383 @@ mozilla::baseprofiler::BaseProfilerThreadId>); printf("TestProfilerUtils done\n");+}++void TestProportionValue() {+ printf("TestProportionValue...\n");++ using mozilla::ProportionValue;++#define STATIC_ASSERT_EQ(a, b) \+ static_assert((a) == (b)); \+ MOZ_RELEASE_ASSERT((a) == (b));++#define STATIC_ASSERT(e) STATIC_ASSERT_EQ(e, true)++ // Conversion from&to double.+ STATIC_ASSERT_EQ(ProportionValue().ToDouble(), 0.0);+ STATIC_ASSERT_EQ(ProportionValue(0.0).ToDouble(), 0.0);+ STATIC_ASSERT_EQ(ProportionValue(0.5).ToDouble(), 0.5);+ STATIC_ASSERT_EQ(ProportionValue(1.0).ToDouble(), 1.0);++ // Clamping.+ STATIC_ASSERT_EQ(+ ProportionValue(std::numeric_limits<double>::min()).ToDouble(), 0.0);+ STATIC_ASSERT_EQ(+ ProportionValue(std::numeric_limits<long double>::min()).ToDouble(), 0.0);+ STATIC_ASSERT_EQ(ProportionValue(-1.0).ToDouble(), 0.0);+ STATIC_ASSERT_EQ(ProportionValue(-0.01).ToDouble(), 0.0);+ STATIC_ASSERT_EQ(ProportionValue(-0.0).ToDouble(), 0.0);+ STATIC_ASSERT_EQ(ProportionValue(1.01).ToDouble(), 1.0);+ STATIC_ASSERT_EQ(+ ProportionValue(std::numeric_limits<double>::max()).ToDouble(), 1.0);++ // User-defined literal.+ {+ using namespace mozilla::literals::ProportionValue_literals;+ STATIC_ASSERT_EQ(0_pc, ProportionValue(0.0));+ STATIC_ASSERT_EQ(0._pc, ProportionValue(0.0));+ STATIC_ASSERT_EQ(50_pc, ProportionValue(0.5));+ STATIC_ASSERT_EQ(50._pc, ProportionValue(0.5));+ STATIC_ASSERT_EQ(100_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(100._pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(101_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(100.01_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(1000_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(1000._pc, ProportionValue(1.0));+ }+ {+ // ProportionValue_literals is an inline namespace of mozilla::literals, so+ // it's optional.+ using namespace mozilla::literals;+ STATIC_ASSERT_EQ(0_pc, ProportionValue(0.0));+ STATIC_ASSERT_EQ(0._pc, ProportionValue(0.0));+ STATIC_ASSERT_EQ(50_pc, ProportionValue(0.5));+ STATIC_ASSERT_EQ(50._pc, ProportionValue(0.5));+ STATIC_ASSERT_EQ(100_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(100._pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(101_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(100.01_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(1000_pc, ProportionValue(1.0));+ STATIC_ASSERT_EQ(1000._pc, ProportionValue(1.0));+ }++ // Invalid construction, conversion to double NaN.+ MOZ_RELEASE_ASSERT(mozilla::IsNaN(ProportionValue::MakeInvalid().ToDouble()));++ using namespace mozilla::literals::ProportionValue_literals;++ // Conversion to&from underlying integral number.+ STATIC_ASSERT_EQ(+ ProportionValue::FromUnderlyingType((0_pc).ToUnderlyingType()).ToDouble(),+ 0.0);+ STATIC_ASSERT_EQ(+ ProportionValue::FromUnderlyingType((50_pc).ToUnderlyingType())+ .ToDouble(),+ 0.5);+ STATIC_ASSERT_EQ(+ ProportionValue::FromUnderlyingType((100_pc).ToUnderlyingType())+ .ToDouble(),+ 1.0);+ STATIC_ASSERT(ProportionValue::FromUnderlyingType(+ ProportionValue::MakeInvalid().ToUnderlyingType())+ .IsInvalid());++ // IsExactlyZero.+ STATIC_ASSERT(ProportionValue().IsExactlyZero());+ STATIC_ASSERT((0_pc).IsExactlyZero());+ STATIC_ASSERT(!(50_pc).IsExactlyZero());+ STATIC_ASSERT(!(100_pc).IsExactlyZero());+ STATIC_ASSERT(!ProportionValue::MakeInvalid().IsExactlyZero());++ // IsExactlyOne.+ STATIC_ASSERT(!ProportionValue().IsExactlyOne());+ STATIC_ASSERT(!(0_pc).IsExactlyOne());+ STATIC_ASSERT(!(50_pc).IsExactlyOne());+ STATIC_ASSERT((100_pc).IsExactlyOne());+ STATIC_ASSERT(!ProportionValue::MakeInvalid().IsExactlyOne());++ // IsValid.+ STATIC_ASSERT(ProportionValue().IsValid());+ STATIC_ASSERT((0_pc).IsValid());+ STATIC_ASSERT((50_pc).IsValid());+ STATIC_ASSERT((100_pc).IsValid());+ STATIC_ASSERT(!ProportionValue::MakeInvalid().IsValid());++ // IsInvalid.+ STATIC_ASSERT(!ProportionValue().IsInvalid());+ STATIC_ASSERT(!(0_pc).IsInvalid());+ STATIC_ASSERT(!(50_pc).IsInvalid());+ STATIC_ASSERT(!(100_pc).IsInvalid());+ STATIC_ASSERT(ProportionValue::MakeInvalid().IsInvalid());++ // Addition.+ STATIC_ASSERT_EQ((0_pc + 0_pc).ToDouble(), 0.0);+ STATIC_ASSERT_EQ((0_pc + 100_pc).ToDouble(), 1.0);+ STATIC_ASSERT_EQ((100_pc + 0_pc).ToDouble(), 1.0);+ STATIC_ASSERT_EQ((100_pc + 100_pc).ToDouble(), 1.0);+ STATIC_ASSERT((ProportionValue::MakeInvalid() + 50_pc).IsInvalid());+ STATIC_ASSERT((50_pc + ProportionValue::MakeInvalid()).IsInvalid());++ // Subtraction.+ STATIC_ASSERT_EQ((0_pc - 0_pc).ToDouble(), 0.0);+ STATIC_ASSERT_EQ((0_pc - 100_pc).ToDouble(), 0.0);+ STATIC_ASSERT_EQ((100_pc - 0_pc).ToDouble(), 1.0);+ STATIC_ASSERT_EQ((100_pc - 100_pc).ToDouble(), 0.0);+ STATIC_ASSERT((ProportionValue::MakeInvalid() - 50_pc).IsInvalid());+ STATIC_ASSERT((50_pc - ProportionValue::MakeInvalid()).IsInvalid());++ // Multiplication.+ STATIC_ASSERT_EQ((0_pc * 0_pc).ToDouble(), 0.0);+ STATIC_ASSERT_EQ((0_pc * 100_pc).ToDouble(), 0.0);+ STATIC_ASSERT_EQ((50_pc * 50_pc).ToDouble(), 0.25);+ STATIC_ASSERT_EQ((50_pc * 100_pc).ToDouble(), 0.5);+ STATIC_ASSERT_EQ((100_pc * 50_pc).ToDouble(), 0.5);+ STATIC_ASSERT_EQ((100_pc * 0_pc).ToDouble(), 0.0);+ STATIC_ASSERT_EQ((100_pc * 100_pc).ToDouble(), 1.0);+ STATIC_ASSERT((ProportionValue::MakeInvalid() * 50_pc).IsInvalid());+ STATIC_ASSERT((50_pc * ProportionValue::MakeInvalid()).IsInvalid());++ // Division by a positive integer value.+ STATIC_ASSERT_EQ((100_pc / 1u).ToDouble(), 1.0);+ STATIC_ASSERT_EQ((100_pc / 2u).ToDouble(), 0.5);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(6u) / 2u).ToUnderlyingType(), 3u);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(5u) / 2u).ToUnderlyingType(), 2u);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(1u) / 2u).ToUnderlyingType(), 0u);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(0u) / 2u).ToUnderlyingType(), 0u);+ STATIC_ASSERT((100_pc / 0u).IsInvalid());+ STATIC_ASSERT((ProportionValue::MakeInvalid() / 2u).IsInvalid());++ // Multiplication by a positive integer value.+ STATIC_ASSERT_EQ((100_pc * 1u).ToDouble(), 1.0);+ STATIC_ASSERT_EQ((50_pc * 1u).ToDouble(), 0.5);+ STATIC_ASSERT_EQ((50_pc * 2u).ToDouble(), 1.0);+ STATIC_ASSERT_EQ((50_pc * 3u).ToDouble(), 1.0); // Clamped.+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(1u) * 2u).ToUnderlyingType(), 2u);+ STATIC_ASSERT((ProportionValue::MakeInvalid() * 2u).IsInvalid());++ // Verifying PV - u < (PV / u) * u <= PV, with n=3, PV between 6 and 9 :+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(6u) / 3u).ToUnderlyingType(), 2u);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(7u) / 3u).ToUnderlyingType(), 2u);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(8u) / 3u).ToUnderlyingType(), 2u);+ STATIC_ASSERT_EQ(+ (ProportionValue::FromUnderlyingType(9u) / 3u).ToUnderlyingType(), 3u);++ // Direct comparisons.+ STATIC_ASSERT_EQ(0_pc, 0_pc);+ STATIC_ASSERT(0_pc == 0_pc);+ STATIC_ASSERT(!(0_pc == 100_pc));+ STATIC_ASSERT(0_pc != 100_pc);+ STATIC_ASSERT(!(0_pc != 0_pc));+ STATIC_ASSERT(0_pc < 100_pc);+ STATIC_ASSERT(!(0_pc < 0_pc));+ STATIC_ASSERT(0_pc <= 0_pc);+ STATIC_ASSERT(0_pc <= 100_pc);+ STATIC_ASSERT(!(100_pc <= 0_pc));+ STATIC_ASSERT(100_pc > 0_pc);+ STATIC_ASSERT(!(100_pc > 100_pc));+ STATIC_ASSERT(100_pc >= 0_pc);+ STATIC_ASSERT(100_pc >= 100_pc);+ STATIC_ASSERT(!(0_pc >= 100_pc));+ // 0.5 is binary-friendly, so we can double it and compare it exactly.+ STATIC_ASSERT_EQ(50_pc + 50_pc, 100_pc);++#undef STATIC_ASSERT_EQ++ printf("TestProportionValue done\n");+}++template <typename Arg0, typename... Args>+bool AreAllEqual(Arg0&& aArg0, Args&&... aArgs) {+ return ((aArg0 == aArgs) && ...);+}++void TestProgressLogger() {+ printf("TestProgressLogger...\n");++ using mozilla::ProgressLogger;+ using mozilla::ProportionValue;+ using namespace mozilla::literals::ProportionValue_literals;++ auto progressRefPtr = mozilla::MakeRefPtr<ProgressLogger::SharedProgress>();+ MOZ_RELEASE_ASSERT(progressRefPtr);+ MOZ_RELEASE_ASSERT(progressRefPtr->Progress().IsExactlyZero());++ {+ ProgressLogger pl(progressRefPtr, "Started", "All done");+ MOZ_RELEASE_ASSERT(progressRefPtr->Progress().IsExactlyZero());+ MOZ_RELEASE_ASSERT(pl.GetGlobalProgress().IsExactlyZero());+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(),+ pl.GetLastGlobalLocation(), "Started"));++ // At this top level, the scale is 1:1.+ pl.SetLocalProgress(10_pc, "Top 10%");+ MOZ_RELEASE_ASSERT(+ AreAllEqual(progressRefPtr->Progress(), pl.GetGlobalProgress(), 10_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(),+ pl.GetLastGlobalLocation(), "Top 10%"));++ pl.SetLocalProgress(0_pc, "Restarted");+ MOZ_RELEASE_ASSERT(+ AreAllEqual(progressRefPtr->Progress(), pl.GetGlobalProgress(), 0_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(),+ pl.GetLastGlobalLocation(), "Restarted"));++ {+ // Create a sub-logger for the whole global range. Notice that this is+ // moving the current progress back to 0.+ ProgressLogger plSub1 =+ pl.CreateSubLoggerFromTo(0_pc, "Sub1 started", 100_pc, "Sub1 ended");+ MOZ_RELEASE_ASSERT(progressRefPtr->Progress().IsExactlyZero());+ MOZ_RELEASE_ASSERT(pl.GetGlobalProgress().IsExactlyZero());+ MOZ_RELEASE_ASSERT(plSub1.GetGlobalProgress().IsExactlyZero());+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), "Sub1 started"));++ // At this level, the scale is still 1:1.+ plSub1.SetLocalProgress(10_pc, "Sub1 10%");+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->Progress(),+ pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), 10_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), "Sub1 10%"));++ {+ // Create a sub-logger half the global range.+ // 0 0.25 0.375 0.5 0.625 0.75 1+ // |---------------|-------|-------|-------|-------|---------------|+ // plSub2: 0 0.25 0.5 0.75 1+ ProgressLogger plSub2 = plSub1.CreateSubLoggerFromTo(+ 25_pc, "Sub2 started", 75_pc, "Sub2 ended");+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->Progress(), pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), plSub2.GetGlobalProgress(), 25_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), plSub2.GetLastGlobalLocation(),+ "Sub2 started"));++ plSub2.SetLocalProgress(25_pc, "Sub2 25%");+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->Progress(), pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), plSub2.GetGlobalProgress(), 37.5_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), plSub2.GetLastGlobalLocation(),+ "Sub2 25%"));++ plSub2.SetLocalProgress(50_pc, "Sub2 50%");+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->Progress(), pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), plSub2.GetGlobalProgress(), 50_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), plSub2.GetLastGlobalLocation(),+ "Sub2 50%"));++ {+ // Create a sub-logger half the parent range.+ // 0 0.25 0.375 0.5 0.625 0.75 1+ // |---------------|-------|-------|-------|-------|---------------|+ // plSub2: 0 0.25 0.5 0.75 1+ // plSub3: 0 0.5 1+ ProgressLogger plSub3 = plSub2.CreateSubLoggerTo(+ "Sub3 started", 100_pc, ProgressLogger::NO_LOCATION_UPDATE);+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->Progress(), pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), plSub2.GetGlobalProgress(),+ plSub3.GetGlobalProgress(), 50_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), plSub2.GetLastGlobalLocation(),+ plSub3.GetLastGlobalLocation(), "Sub3 started"));++ plSub3.SetLocalProgress(50_pc, "Sub3 50%");+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->Progress(), pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), plSub2.GetGlobalProgress(),+ plSub3.GetGlobalProgress(), 62.5_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), plSub2.GetLastGlobalLocation(),+ plSub3.GetLastGlobalLocation(), "Sub3 50%"));+ } // End of plSub3++ // When plSub3 ends, progress moves to its 100%, which is also plSub2's+ // 100%, which is plSub1's and the global progress of 75%+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->Progress(), pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), plSub2.GetGlobalProgress(), 75_pc));+ // But location is still at the last explicit update.+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), plSub2.GetLastGlobalLocation(),+ "Sub3 50%"));+ } // End of plSub2++ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->Progress(),+ pl.GetGlobalProgress(),+ plSub1.GetGlobalProgress(), 75_pc));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ plSub1.GetLastGlobalLocation(), "Sub2 ended"));+ } // End of plSub1++ MOZ_RELEASE_ASSERT(progressRefPtr->Progress().IsExactlyOne());+ MOZ_RELEASE_ASSERT(pl.GetGlobalProgress().IsExactlyOne());+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(),+ pl.GetLastGlobalLocation(), "Sub1 ended"));++ const auto loopStart = 75_pc;+ const auto loopEnd = 87.5_pc;+ const uint32_t loopCount = 8;+ uint32_t expectedIndex = 0u;+ auto expectedIterationStart = loopStart;+ const auto iterationIncrement = (loopEnd - loopStart) / loopCount;+ for (auto&& [index, loopPL] : pl.CreateLoopSubLoggersFromTo(+ loopStart, loopEnd, loopCount, "looping...")) {+ MOZ_RELEASE_ASSERT(index == expectedIndex);+ ++expectedIndex;+ MOZ_RELEASE_ASSERT(+ AreAllEqual(progressRefPtr->Progress(), pl.GetGlobalProgress(),+ loopPL.GetGlobalProgress(), expectedIterationStart));+ MOZ_RELEASE_ASSERT(AreAllEqual(+ progressRefPtr->LastLocation(), pl.GetLastGlobalLocation(),+ loopPL.GetLastGlobalLocation(), "looping..."));++ loopPL.SetLocalProgress(50_pc, "half");+ MOZ_RELEASE_ASSERT(loopPL.GetGlobalProgress() ==+ expectedIterationStart + iterationIncrement / 2u);+ MOZ_RELEASE_ASSERT(+ AreAllEqual(progressRefPtr->Progress(), pl.GetGlobalProgress(),+ loopPL.GetGlobalProgress(),+ expectedIterationStart + iterationIncrement / 2u));+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(),+ pl.GetLastGlobalLocation(),+ loopPL.GetLastGlobalLocation(), "half"));++ expectedIterationStart = expectedIterationStart + iterationIncrement;+ }+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->Progress(),+ pl.GetGlobalProgress(),+ expectedIterationStart));+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(),+ pl.GetLastGlobalLocation(), "looping..."));+ } // End of pl+ MOZ_RELEASE_ASSERT(progressRefPtr->Progress().IsExactlyOne());+ MOZ_RELEASE_ASSERT(AreAllEqual(progressRefPtr->LastLocation(), "All done"));++ printf("TestProgressLogger done\n"); } #ifdef MOZ_GECKO_PROFILER@@ -4325,7 +4705,8 @@ ujs.WriteElement(writer, "external1"); ujs.WriteElement(writer, "external0"); }- UJS ujsCopy(ujs, mozilla::JSONWriter::SingleLineStyle);+ UJS ujsCopy(ujs, mozilla::ProgressLogger{},+ mozilla::JSONWriter::SingleLineStyle); VerifyUniqueStringContents( [](SCJW& aWriter, UJS& aUniqueStrings) { aUniqueStrings.WriteElement(aWriter, "string0");@@ -4748,6 +5129,8 @@ #endif // MOZ_GECKO_PROFILER TestProfilerUtils();+ TestProportionValue();+ TestProgressLogger(); // Note that there are two `TestProfiler{,Markers}` functions above, depending // on whether MOZ_GECKO_PROFILER is #defined. TestProfiler();
After analyzing the provided code diff, I don't find any security vulnerabilities being fixed. The changes appear to be: 1. Adding new test functions (`TestProportionValue` and `TestProgressLogger`) for testing new functionality 2. Adding new includes (`mozilla/FloatingPoint.h`, `mozilla/ProgressLogger.h`, `mozilla/ProportionValue.h`) 3. Modifying the `UJS` constructor call to include a `ProgressLogger` parameter These changes are primarily about adding new test cases and functionality rather than fixing security issues. Here's the formal response following your requested format: Vulnerability Existed: no No security vulnerabilities found in the diff. The changes are test additions and functionality enhancements. The diff shows: 1. Addition of new test cases for ProportionValue and ProgressLogger functionality 2. New includes for related functionality 3. Modified constructor call to include progress logging 4. No security-related fixes or vulnerability patches Since no vulnerabilities were found or fixed in this diff, I'm providing this single entry with "no" for "Vulnerability Existed".
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.pattern.modify.canvas1.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.pattern.modify.canvas1.worker.js@@ -13,8 +13,8 @@ }); t.step(function() {-var offscreenCanvas = new OffscreenCanvas(100, 50);-var ctx = offscreenCanvas.getContext('2d');+var canvas = new OffscreenCanvas(100, 50);+var ctx = canvas.getContext('2d'); var offscreenCanvas2 = new OffscreenCanvas(100, 50); var ctx2 = offscreenCanvas2.getContext('2d');@@ -25,10 +25,10 @@ ctx2.fillRect(0, 0, 100, 50); ctx.fillStyle = pattern; ctx.fillRect(0, 0, 100, 50);-_assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");-_assertPixel(offscreenCanvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");-_assertPixel(offscreenCanvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255");+_assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255");+_assertPixel(canvas, 98,1, 0,255,0,255, "98,1", "0,255,0,255");+_assertPixel(canvas, 1,48, 0,255,0,255, "1,48", "0,255,0,255");+_assertPixel(canvas, 98,48, 0,255,0,255, "98,48", "0,255,0,255"); t.done(); });
After analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No specific vulnerability found [File] testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.pattern.modify.canvas1.worker.js [Lines] 13-28 [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); ... _assertPixel(offscreenCanvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); ... _assertPixel(canvas, 1,1, 0,255,0,255, "1,1", "0,255,0,255"); The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and don't indicate any security fixes. The functionality remains the same, just with a different variable name. There are no security-related patterns or vulnerabilities being addressed in this diff.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.
--- /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_97_END/firefox-FIREFOX_RELEASE_97_END/testing/web-platform/tests/html/canvas/offscreen/fill-and-stroke-styles/2d.fillStyle.parse.invalid.hex4.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.hex4.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 = '#fg00'; } 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(); });
Here's the analysis of the provided code diff: 1. Vulnerability Existed: no No specific vulnerability found [File] [Lines 13-14, 20] [Old Code] var offscreenCanvas = new OffscreenCanvas(100, 50); var ctx = offscreenCanvas.getContext('2d'); _assertPixel(offscreenCanvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); [Fixed Code] var canvas = new OffscreenCanvas(100, 50); var ctx = canvas.getContext('2d'); _assertPixel(canvas, 50,25, 0,255,0,255, "50,25", "0,255,0,255"); Additional Details: - The changes appear to be purely variable renaming (from `offscreenCanvas` to `canvas`) and don't affect security - The test logic remains the same, just with different variable names - No security-related changes in the color parsing or canvas operations - The try-catch block handling of invalid color values (#fg00) remains unchanged
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/async-task/tests/panic.rs+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/third_party/rust/async-task/tests/panic.rs@@ -69,7 +69,7 @@ let guard = Guard(Box::new(0)); move |_runnable: Runnable| {- &guard;+ let _ = &guard; $sched.fetch_add(1, Ordering::SeqCst); } };
Let me analyze the code diff according to the specified format. Vulnerability Existed: not sure [Potential Unused Variable] [third_party/rust/async-task/tests/panic.rs] [Lines 69-72] [Old Code] move |_runnable: Runnable| { &guard; $sched.fetch_add(1, Ordering::SeqCst); } [Fixed Code] move |_runnable: Runnable| { let _ = &guard; $sched.fetch_add(1, Ordering::SeqCst); } Additional Details: The change appears to be fixing a potential compiler warning about an unused reference rather than addressing a security vulnerability. The original code created a reference to `guard` but didn't use it, which might trigger a warning. The fix explicitly assigns the reference to `_` to indicate intentional non-use. While this improves code quality, I don't see a clear security implication here.
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-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-038.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/css-shapes/shape-outside/supported-shapes/circle/shape-outside-circle-038.html@@ -9,7 +9,6 @@ <link rel="author" title="Mozilla" href="http://www.mozilla.org/"> <link rel="help" href="https://drafts.csswg.org/css-shapes-1/#supported-basic-shapes"> <link rel="match" href="reference/shape-outside-circle-036-ref.html">- <meta name="flags" content=""> <meta name="assert" content="Test the boxes are wrapping around the left float shape defined by the basic shape circle(farthest-side at center) value."> <style> .container {
Analysis of the provided code diff: 1. Vulnerability Existed: no No security vulnerability found in the diff. The change simply removes an empty meta tag with a "flags" attribute, which doesn't appear to have any security implications. 2. Vulnerability Existed: no No security vulnerability found in the diff. The change is purely cosmetic/structural, removing an unused meta tag that wasn't serving any purpose in the HTML test file. The diff shows: - Removal of: `<meta name="flags" content="">` - No other changes to the file's content or structure that would indicate a security fix This appears to be a test file cleanup rather than a security-related change. The modification doesn't affect any security-sensitive functionality or introduce/remove any security-related features.
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/CSS2/css21-errata/s-11-1-1b-005.html+++ /root/PatchLeaks-main/products/firefox_downloads/FIREFOX_RELEASE_98_END/firefox-FIREFOX_RELEASE_98_END/testing/web-platform/tests/css/CSS2/css21-errata/s-11-1-1b-005.html@@ -2,7 +2,6 @@ <title>CSS Test: overflow:hidden on root element table</title> <link rel="author" title="Simon Pieters" href="mailto:[email protected]"> <link rel="help" href="http://www.w3.org/Style/css2-updates/REC-CSS2-20110607-errata.html#s.11.1.1b">-<meta name="flags" content=""> <meta name="assert" content="Test checks that overflow on root table applies to viewport rather than the table box."> <link rel="match" href="s-11-1-1b-005-ref.html"> <style>
Analyzing the provided code diff, here's the security assessment: 1. Vulnerability Existed: no No specific vulnerability was found in this diff. The change simply removes an empty meta tag for "flags" which appears to be a test configuration cleanup rather than a security fix. 2. Vulnerability Existed: not sure Potential HTML Meta Tag Removal [File] [Lines 2-7] [Old Code] <meta name="flags" content=""> [Fixed Code] (removed) Additional Details: The removal of the empty meta tag doesn't appear to address any specific security vulnerability, but rather seems to be a code cleanup. The "flags" meta tag was commonly used in test files to specify test conditions, and its removal doesn't indicate a security fix. Note: This diff doesn't show any clear security vulnerabilities being fixed. The changes appear to be minor test file maintenance rather than security-related modifications.
If an attacker could control the contents of an iframe sandboxed with <code>allow-popups</code> but not <code>allow-scripts</code>, they were able to craft a link that, when clicked, would lead to JavaScript execution in violation of the sandbox. This vulnerability affects Firefox < 98, Firefox ESR < 91.7, and Thunderbird < 91.7.