mediawiki/extensions/CirrusSearch: main (log #2514532)

sourcepatches

This run took 96 seconds.

From 9572882224d7a73e79f47b39adc8c450212274f1 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Fri, 3 Jul 2026 16:14:46 +0000
Subject: [PATCH] build: Updating undici to 6.27.0, 7.28.0

* https://github.com/advisories/GHSA-35p6-xmwp-9g52
* https://github.com/advisories/GHSA-g8m3-5g58-fq7m
* https://github.com/advisories/GHSA-hm92-r4w5-c3mj
* https://github.com/advisories/GHSA-p88m-4jfj-68fv
* https://github.com/advisories/GHSA-pr7r-676h-xcf6
* https://github.com/advisories/GHSA-vmh5-mc38-953g
* https://github.com/advisories/GHSA-vxpw-j846-p89q

Change-Id: Icb89d1d26b5ac4b26ea6de3a50518666813bb8f9
---
 package-lock.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 8a4339f..9d08e82 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4279,9 +4279,9 @@
 			}
 		},
 		"node_modules/cheerio/node_modules/undici": {
-			"version": "7.24.3",
-			"resolved": "https://registry.npmjs.org/undici/-/undici-7.24.3.tgz",
-			"integrity": "sha512-eJdUmK/Wrx2d+mnWWmwwLRyA7OQCkLap60sk3dOK4ViZR7DKwwptwuIvFBg2HaiP9ESaEdhtpSymQPvytpmkCA==",
+			"version": "7.28.0",
+			"resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz",
+			"integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==",
 			"dev": true,
 			"engines": {
 				"node": ">=20.18.1"
@@ -13401,9 +13401,9 @@
 			}
 		},
 		"node_modules/undici": {
-			"version": "6.24.1",
-			"resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
-			"integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
+			"version": "6.27.0",
+			"resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz",
+			"integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==",
 			"dev": true,
 			"engines": {
 				"node": ">=18.17"
-- 
2.47.3

$ date
--- stdout ---
Fri Jul  3 16:13:39 UTC 2026

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-CirrusSearch.git /src/repo --depth=1 -b master
--- stderr ---
Cloning into '/src/repo'...
--- stdout ---

--- end ---
$ git config user.name libraryupgrader
--- stdout ---

--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---

--- end ---
$ git submodule update --init
--- stdout ---

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
78c4221a2228814e585c9265fb2a6d68abfdc31a refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@cucumber/cucumber": {
      "name": "@cucumber/cucumber",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@cucumber/gherkin",
        "@cucumber/gherkin-utils",
        "@cucumber/messages",
        "tmp"
      ],
      "effects": [],
      "range": "<=12.2.0",
      "nodes": [
        "node_modules/@cucumber/cucumber"
      ],
      "fixAvailable": true
    },
    "@cucumber/gherkin": {
      "name": "@cucumber/gherkin",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@cucumber/messages"
      ],
      "effects": [
        "@cucumber/gherkin-utils"
      ],
      "range": "<=34.0.0",
      "nodes": [
        "node_modules/@cucumber/cucumber/node_modules/@cucumber/gherkin",
        "node_modules/@cucumber/gherkin",
        "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin"
      ],
      "fixAvailable": true
    },
    "@cucumber/gherkin-utils": {
      "name": "@cucumber/gherkin-utils",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@cucumber/gherkin",
        "@cucumber/messages"
      ],
      "effects": [
        "@cucumber/cucumber"
      ],
      "range": "<=10.0.0",
      "nodes": [
        "node_modules/@cucumber/gherkin-utils"
      ],
      "fixAvailable": true
    },
    "@cucumber/messages": {
      "name": "@cucumber/messages",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "uuid"
      ],
      "effects": [
        "@cucumber/cucumber",
        "@cucumber/gherkin",
        "@cucumber/gherkin-utils",
        "@wdio/cucumber-framework"
      ],
      "range": "<=28.1.0",
      "nodes": [
        "node_modules/@cucumber/cucumber/node_modules/@cucumber/messages",
        "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages",
        "node_modules/@cucumber/gherkin/node_modules/@cucumber/messages",
        "node_modules/@cucumber/messages"
      ],
      "fixAvailable": {
        "name": "@wdio/cucumber-framework",
        "version": "6.11.1",
        "isSemVerMajor": true
      }
    },
    "@wdio/cucumber-framework": {
      "name": "@wdio/cucumber-framework",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@cucumber/gherkin",
        "@cucumber/messages"
      ],
      "effects": [],
      "range": ">=7.0.0-beta.0",
      "nodes": [
        "node_modules/@wdio/cucumber-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/cucumber-framework",
        "version": "6.11.1",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": ">=7.7.4",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        },
        {
          "source": 1120745,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<2.5.6"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<=2.5.5",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "js-yaml"
      ],
      "effects": [
        "grunt-eslint"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "grunt"
      ],
      "effects": [],
      "range": "<=1.0.0 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1121859,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<3.15.0"
        }
      ],
      "effects": [
        "grunt"
      ],
      "range": "<3.15.0",
      "nodes": [
        "node_modules/grunt/node_modules/js-yaml"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "serialize-javascript"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": "8.2.0 - 12.0.0-beta-2",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": "0.1.6 - 2.1.3",
      "nodes": [
        "node_modules/mwbot",
        "node_modules/wdio-mediawiki/node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113719,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "moderate",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": true,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "qs",
        "tough-cookie",
        "uuid"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=7.0.2"
        },
        {
          "source": 1119440,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
          "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
          "severity": "moderate",
          "cwe": [
            "CWE-400",
            "CWE-834"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=5.0.0 <7.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.4",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "tmp": {
      "name": "tmp",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1109537,
          "name": "tmp",
          "dependency": "tmp",
          "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
          "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
          "severity": "low",
          "cwe": [
            "CWE-59"
          ],
          "cvss": {
            "score": 2.5,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<=0.2.3"
        },
        {
          "source": 1120654,
          "name": "tmp",
          "dependency": "tmp",
          "title": "tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape",
          "url": "https://github.com/advisories/GHSA-ph9p-34f9-6g65",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<0.2.6"
        }
      ],
      "effects": [
        "@cucumber/cucumber"
      ],
      "range": "<=0.2.5",
      "nodes": [
        "node_modules/tmp"
      ],
      "fixAvailable": true
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "undici": {
      "name": "undici",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1121187,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent",
          "url": "https://github.com/advisories/GHSA-vmh5-mc38-953g",
          "severity": "high",
          "cwe": [
            "CWE-295"
          ],
          "cvss": {
            "score": 7.4,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
          },
          "range": ">=7.23.0 <7.28.0"
        },
        {
          "source": 1121241,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
          "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
          "severity": "moderate",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121242,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
          "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
          "severity": "moderate",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121244,
          "name": "undici",
          "dependency": "undici",
          "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
          "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121245,
          "name": "undici",
          "dependency": "undici",
          "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
          "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121247,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse",
          "url": "https://github.com/advisories/GHSA-hm92-r4w5-c3mj",
          "severity": "high",
          "cwe": [
            "CWE-346"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=7.23.0 <7.28.0"
        },
        {
          "source": 1121249,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
          "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
          "severity": "low",
          "cwe": [
            "CWE-367"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121250,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
          "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
          "severity": "low",
          "cwe": [
            "CWE-367"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121254,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
          "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
          "severity": "low",
          "cwe": [
            "CWE-183"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121255,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
          "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
          "severity": "low",
          "cwe": [
            "CWE-183"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121428,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to cross-user information disclosure via shared cache whitespace bypass",
          "url": "https://github.com/advisories/GHSA-pr7r-676h-xcf6",
          "severity": "moderate",
          "cwe": [
            "CWE-524"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        }
      ],
      "effects": [],
      "range": "<=6.26.0 || 7.0.0 - 7.27.2",
      "nodes": [
        "node_modules/cheerio/node_modules/undici",
        "node_modules/undici"
      ],
      "fixAvailable": true
    },
    "uuid": {
      "name": "uuid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1119441,
          "name": "uuid",
          "dependency": "uuid",
          "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
          "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
          "severity": "moderate",
          "cwe": [
            "CWE-787",
            "CWE-1285"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<11.1.1"
        }
      ],
      "effects": [
        "@cucumber/messages",
        "request"
      ],
      "range": "<11.1.1",
      "nodes": [
        "node_modules/@cucumber/cucumber/node_modules/uuid",
        "node_modules/@cucumber/gherkin-utils/node_modules/uuid",
        "node_modules/@cucumber/gherkin/node_modules/uuid",
        "node_modules/request/node_modules/uuid",
        "node_modules/uuid"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 15,
      "high": 3,
      "critical": 2,
      "total": 20
    },
    "dependencies": {
      "prod": 114,
      "dev": 958,
      "optional": 38,
      "peer": 16,
      "peerOptional": 0,
      "total": 1072
    }
  }
}

--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
Updating dependencies
Lock file operations: 40 installs, 0 updates, 0 removals
  - Locking composer/pcre (dev-main b25d249)
  - Locking composer/semver (dev-main a5e1d2d)
  - Locking composer/spdx-licenses (1.6.0)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking danog/advanced-json-rpc (v3.2.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.2.1)
  - Locking doctrine/deprecations (1.2.x-dev a2d13f1)
  - Locking mediawiki/mediawiki-codesniffer (v51.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.20.0)
  - Locking mediawiki/minus-x (2.0.1)
  - Locking mediawiki/phan-taint-check-plugin (9.1.0)
  - Locking netresearch/jsonmapper (v5.0.1)
  - Locking phan/phan (6.0.2)
  - Locking phan/tolerant-php-parser (v0.2.0)
  - Locking phan/var_representation_polyfill (0.1.4)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.5.0)
  - Locking phpcsstandards/phpcsutils (dev-develop 69b7d58)
  - Locking phpdocumentor/reflection-common (dev-master a0eeab5)
  - Locking phpdocumentor/reflection-docblock (6.x-dev 7bae675)
  - Locking phpdocumentor/type-resolver (2.x-dev b2abba8)
  - Locking phpstan/phpdoc-parser (2.3.x-dev 4ad7ea9)
  - Locking psr/container (dev-master 7079847)
  - Locking psr/log (dev-master f16e1d5)
  - Locking sabre/event (6.1.0)
  - Locking squizlabs/php_codesniffer (3.13.5)
  - Locking symfony/console (8.2.x-dev b711a8a)
  - Locking symfony/deprecation-contracts (dev-main f3202fa)
  - Locking symfony/polyfill-ctype (1.x-dev 141046a)
  - Locking symfony/polyfill-intl-grapheme (1.x-dev 1932ad1)
  - Locking symfony/polyfill-intl-normalizer (1.x-dev 2d446c2)
  - Locking symfony/polyfill-mbstring (1.x-dev d3d318b)
  - Locking symfony/polyfill-php85 (1.x-dev 255fab4)
  - Locking symfony/service-contracts (dev-main c0a284b)
  - Locking symfony/string (8.2.x-dev 5aae2a1)
  - Locking webmozart/assert (2.4.1)
  - Locking wikimedia/lucene-explain-parser (2.0.0)
  - Locking wikimedia/textcat (2.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 40 installs, 0 updates, 0 removals
  - Downloading wikimedia/lucene-explain-parser (2.0.0)
 0/1 [>---------------------------]   0%
 1/1 [============================] 100%
  - Installing squizlabs/php_codesniffer (3.13.5): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.2.1): Extracting archive
  - Installing composer/pcre (dev-main b25d249): Extracting archive
  - Installing phpcsstandards/phpcsutils (dev-develop 69b7d58): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.5.0): Extracting archive
  - Installing symfony/polyfill-mbstring (1.x-dev d3d318b): Extracting archive
  - Installing composer/spdx-licenses (1.6.0): Extracting archive
  - Installing composer/semver (dev-main a5e1d2d): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v51.0.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (1.x-dev 2d446c2): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (1.x-dev 1932ad1): Extracting archive
  - Installing symfony/polyfill-ctype (1.x-dev 141046a): Extracting archive
  - Installing symfony/string (8.2.x-dev 5aae2a1): Extracting archive
  - Installing symfony/deprecation-contracts (dev-main f3202fa): Extracting archive
  - Installing psr/container (dev-master 7079847): Extracting archive
  - Installing symfony/service-contracts (dev-main c0a284b): Extracting archive
  - Installing symfony/polyfill-php85 (1.x-dev 255fab4): Extracting archive
  - Installing symfony/console (8.2.x-dev b711a8a): Extracting archive
  - Installing sabre/event (6.1.0): Extracting archive
  - Installing phan/var_representation_polyfill (0.1.4): Extracting archive
  - Installing phan/tolerant-php-parser (v0.2.0): Extracting archive
  - Installing netresearch/jsonmapper (v5.0.1): Extracting archive
  - Installing webmozart/assert (2.4.1): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.x-dev 4ad7ea9): Extracting archive
  - Installing phpdocumentor/reflection-common (dev-master a0eeab5): Extracting archive
  - Installing doctrine/deprecations (1.2.x-dev a2d13f1): Extracting archive
  - Installing phpdocumentor/type-resolver (2.x-dev b2abba8): Extracting archive
  - Installing phpdocumentor/reflection-docblock (6.x-dev 7bae675): Extracting archive
  - Installing danog/advanced-json-rpc (v3.2.3): Extracting archive
  - Installing psr/log (dev-master f16e1d5): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (6.0.2): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (9.1.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.20.0): Extracting archive
  - Installing mediawiki/minus-x (2.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  - Installing wikimedia/lucene-explain-parser (2.0.0): Extracting archive
  - Installing wikimedia/textcat (2.0.0): Extracting archive
  0/38 [>---------------------------]   0%
 29/38 [=====================>------]  76%
 37/38 [===========================>]  97%
 38/38 [============================] 100%
1 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "@cucumber/cucumber": {
      "name": "@cucumber/cucumber",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@cucumber/gherkin",
        "@cucumber/gherkin-utils",
        "@cucumber/messages",
        "tmp"
      ],
      "effects": [],
      "range": "<=12.2.0",
      "nodes": [
        "node_modules/@cucumber/cucumber"
      ],
      "fixAvailable": true
    },
    "@cucumber/gherkin": {
      "name": "@cucumber/gherkin",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@cucumber/messages"
      ],
      "effects": [
        "@cucumber/gherkin-utils"
      ],
      "range": "<=34.0.0",
      "nodes": [
        "node_modules/@cucumber/cucumber/node_modules/@cucumber/gherkin",
        "node_modules/@cucumber/gherkin",
        "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin"
      ],
      "fixAvailable": true
    },
    "@cucumber/gherkin-utils": {
      "name": "@cucumber/gherkin-utils",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "@cucumber/gherkin",
        "@cucumber/messages"
      ],
      "effects": [
        "@cucumber/cucumber"
      ],
      "range": "<=10.0.0",
      "nodes": [
        "node_modules/@cucumber/gherkin-utils"
      ],
      "fixAvailable": true
    },
    "@cucumber/messages": {
      "name": "@cucumber/messages",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "uuid"
      ],
      "effects": [
        "@cucumber/cucumber",
        "@cucumber/gherkin",
        "@cucumber/gherkin-utils",
        "@wdio/cucumber-framework"
      ],
      "range": "<=28.1.0",
      "nodes": [
        "node_modules/@cucumber/cucumber/node_modules/@cucumber/messages",
        "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages",
        "node_modules/@cucumber/gherkin/node_modules/@cucumber/messages",
        "node_modules/@cucumber/messages"
      ],
      "fixAvailable": {
        "name": "@wdio/cucumber-framework",
        "version": "6.11.1",
        "isSemVerMajor": true
      }
    },
    "@wdio/cucumber-framework": {
      "name": "@wdio/cucumber-framework",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "@cucumber/gherkin",
        "@cucumber/messages"
      ],
      "effects": [],
      "range": ">=7.0.0-beta.0",
      "nodes": [
        "node_modules/@wdio/cucumber-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/cucumber-framework",
        "version": "6.11.1",
        "isSemVerMajor": true
      }
    },
    "@wdio/mocha-framework": {
      "name": "@wdio/mocha-framework",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mocha"
      ],
      "effects": [],
      "range": ">=7.7.4",
      "nodes": [
        "node_modules/@wdio/mocha-framework"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "form-data": {
      "name": "form-data",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1109540,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data uses unsafe random function in form-data for choosing boundary",
          "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
          "severity": "critical",
          "cwe": [
            "CWE-330"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<2.5.4"
        },
        {
          "source": 1120745,
          "name": "form-data",
          "dependency": "form-data",
          "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
          "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
          "severity": "high",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<2.5.6"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<=2.5.5",
      "nodes": [
        "node_modules/form-data"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "grunt": {
      "name": "grunt",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "js-yaml"
      ],
      "effects": [
        "grunt-eslint"
      ],
      "range": ">=0.4.0-a",
      "nodes": [
        "node_modules/grunt"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "grunt-eslint": {
      "name": "grunt-eslint",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "grunt"
      ],
      "effects": [],
      "range": "<=1.0.0 || >=18.1.0",
      "nodes": [
        "node_modules/grunt-eslint"
      ],
      "fixAvailable": {
        "name": "grunt-eslint",
        "version": "18.0.0",
        "isSemVerMajor": true
      }
    },
    "js-yaml": {
      "name": "js-yaml",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1121859,
          "name": "js-yaml",
          "dependency": "js-yaml",
          "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
          "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
          "severity": "moderate",
          "cwe": [
            "CWE-407"
          ],
          "cvss": {
            "score": 5.3,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<3.15.0"
        }
      ],
      "effects": [
        "grunt"
      ],
      "range": "<3.15.0",
      "nodes": [
        "node_modules/grunt/node_modules/js-yaml"
      ],
      "fixAvailable": {
        "name": "grunt",
        "version": "0.3.17",
        "isSemVerMajor": true
      }
    },
    "mocha": {
      "name": "mocha",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        "serialize-javascript"
      ],
      "effects": [
        "@wdio/mocha-framework"
      ],
      "range": "8.2.0 - 12.0.0-beta-2",
      "nodes": [
        "node_modules/mocha"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "mwbot": {
      "name": "mwbot",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "request"
      ],
      "effects": [
        "wdio-mediawiki"
      ],
      "range": "0.1.6 - 2.1.3",
      "nodes": [
        "node_modules/mwbot",
        "node_modules/wdio-mediawiki/node_modules/mwbot"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "qs": {
      "name": "qs",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1113719,
          "name": "qs",
          "dependency": "qs",
          "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
          "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
          "severity": "moderate",
          "cwe": [
            "CWE-20"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
          },
          "range": "<6.14.1"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<6.14.1",
      "nodes": [
        "node_modules/qs"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "request": {
      "name": "request",
      "severity": "critical",
      "isDirect": true,
      "via": [
        {
          "source": 1096727,
          "name": "request",
          "dependency": "request",
          "title": "Server-Side Request Forgery in Request",
          "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
          "severity": "moderate",
          "cwe": [
            "CWE-918"
          ],
          "cvss": {
            "score": 6.1,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
          },
          "range": "<=2.88.2"
        },
        "form-data",
        "qs",
        "tough-cookie",
        "uuid"
      ],
      "effects": [
        "mwbot"
      ],
      "range": "*",
      "nodes": [
        "node_modules/request"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "serialize-javascript": {
      "name": "serialize-javascript",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1113686,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
          "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
          "severity": "high",
          "cwe": [
            "CWE-96"
          ],
          "cvss": {
            "score": 8.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": "<=7.0.2"
        },
        {
          "source": 1119440,
          "name": "serialize-javascript",
          "dependency": "serialize-javascript",
          "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
          "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
          "severity": "moderate",
          "cwe": [
            "CWE-400",
            "CWE-834"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=5.0.0 <7.0.5"
        }
      ],
      "effects": [
        "mocha"
      ],
      "range": "<=7.0.4",
      "nodes": [
        "node_modules/serialize-javascript"
      ],
      "fixAvailable": {
        "name": "@wdio/mocha-framework",
        "version": "7.7.3",
        "isSemVerMajor": true
      }
    },
    "tmp": {
      "name": "tmp",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1109537,
          "name": "tmp",
          "dependency": "tmp",
          "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
          "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
          "severity": "low",
          "cwe": [
            "CWE-59"
          ],
          "cvss": {
            "score": 2.5,
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<=0.2.3"
        },
        {
          "source": 1120654,
          "name": "tmp",
          "dependency": "tmp",
          "title": "tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape",
          "url": "https://github.com/advisories/GHSA-ph9p-34f9-6g65",
          "severity": "high",
          "cwe": [
            "CWE-22"
          ],
          "cvss": {
            "score": 0,
            "vectorString": null
          },
          "range": "<0.2.6"
        }
      ],
      "effects": [
        "@cucumber/cucumber"
      ],
      "range": "<=0.2.5",
      "nodes": [
        "node_modules/tmp"
      ],
      "fixAvailable": true
    },
    "tough-cookie": {
      "name": "tough-cookie",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1097682,
          "name": "tough-cookie",
          "dependency": "tough-cookie",
          "title": "tough-cookie Prototype Pollution vulnerability",
          "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
          "severity": "moderate",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 6.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
          },
          "range": "<4.1.3"
        }
      ],
      "effects": [
        "request"
      ],
      "range": "<4.1.3",
      "nodes": [
        "node_modules/tough-cookie"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "undici": {
      "name": "undici",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1121187,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent",
          "url": "https://github.com/advisories/GHSA-vmh5-mc38-953g",
          "severity": "high",
          "cwe": [
            "CWE-295"
          ],
          "cvss": {
            "score": 7.4,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
          },
          "range": ">=7.23.0 <7.28.0"
        },
        {
          "source": 1121241,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
          "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
          "severity": "moderate",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121242,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
          "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
          "severity": "moderate",
          "cwe": [
            "CWE-93"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121244,
          "name": "undici",
          "dependency": "undici",
          "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
          "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121245,
          "name": "undici",
          "dependency": "undici",
          "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
          "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
          "severity": "high",
          "cwe": [
            "CWE-400",
            "CWE-770"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121247,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse",
          "url": "https://github.com/advisories/GHSA-hm92-r4w5-c3mj",
          "severity": "high",
          "cwe": [
            "CWE-346"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
          },
          "range": ">=7.23.0 <7.28.0"
        },
        {
          "source": 1121249,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
          "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
          "severity": "low",
          "cwe": [
            "CWE-367"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121250,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
          "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
          "severity": "low",
          "cwe": [
            "CWE-367"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121254,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
          "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
          "severity": "low",
          "cwe": [
            "CWE-183"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        },
        {
          "source": 1121255,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
          "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
          "severity": "low",
          "cwe": [
            "CWE-183"
          ],
          "cvss": {
            "score": 3.7,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
          },
          "range": "<6.27.0"
        },
        {
          "source": 1121428,
          "name": "undici",
          "dependency": "undici",
          "title": "undici vulnerable to cross-user information disclosure via shared cache whitespace bypass",
          "url": "https://github.com/advisories/GHSA-pr7r-676h-xcf6",
          "severity": "moderate",
          "cwe": [
            "CWE-524"
          ],
          "cvss": {
            "score": 5.9,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
          },
          "range": ">=7.0.0 <7.28.0"
        }
      ],
      "effects": [],
      "range": "<=6.26.0 || 7.0.0 - 7.27.2",
      "nodes": [
        "node_modules/cheerio/node_modules/undici",
        "node_modules/undici"
      ],
      "fixAvailable": true
    },
    "uuid": {
      "name": "uuid",
      "severity": "moderate",
      "isDirect": false,
      "via": [
        {
          "source": 1119441,
          "name": "uuid",
          "dependency": "uuid",
          "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
          "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
          "severity": "moderate",
          "cwe": [
            "CWE-787",
            "CWE-1285"
          ],
          "cvss": {
            "score": 7.5,
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
          },
          "range": "<11.1.1"
        }
      ],
      "effects": [
        "@cucumber/messages",
        "request"
      ],
      "range": "<11.1.1",
      "nodes": [
        "node_modules/@cucumber/cucumber/node_modules/uuid",
        "node_modules/@cucumber/gherkin-utils/node_modules/uuid",
        "node_modules/@cucumber/gherkin/node_modules/uuid",
        "node_modules/request/node_modules/uuid",
        "node_modules/uuid"
      ],
      "fixAvailable": {
        "name": "mwbot",
        "version": "2.3.3",
        "isSemVerMajor": true
      }
    },
    "wdio-mediawiki": {
      "name": "wdio-mediawiki",
      "severity": "moderate",
      "isDirect": true,
      "via": [
        "mwbot"
      ],
      "effects": [],
      "range": "<=5.1.0",
      "nodes": [
        "node_modules/wdio-mediawiki"
      ],
      "fixAvailable": {
        "name": "wdio-mediawiki",
        "version": "6.5.2",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 15,
      "high": 3,
      "critical": 2,
      "total": 20
    },
    "dependencies": {
      "prod": 114,
      "dev": 958,
      "optional": 38,
      "peer": 16,
      "peerOptional": 0,
      "total": 1072
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'grunt-stylelint@0.21.0',
npm WARN EBADENGINE   required: { node: '>=20.19.5' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 1072,
  "removed": 0,
  "changed": 0,
  "audited": 1073,
  "funding": 229,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "@cucumber/cucumber": {
        "name": "@cucumber/cucumber",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@cucumber/gherkin",
          "@cucumber/gherkin-utils",
          "@cucumber/messages",
          "tmp"
        ],
        "effects": [],
        "range": "<=12.2.0",
        "nodes": [
          "node_modules/@cucumber/cucumber"
        ],
        "fixAvailable": true
      },
      "@cucumber/gherkin": {
        "name": "@cucumber/gherkin",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@cucumber/messages"
        ],
        "effects": [
          "@cucumber/gherkin-utils"
        ],
        "range": "<=34.0.0",
        "nodes": [
          "node_modules/@cucumber/cucumber/node_modules/@cucumber/gherkin",
          "node_modules/@cucumber/gherkin",
          "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin"
        ],
        "fixAvailable": true
      },
      "@cucumber/gherkin-utils": {
        "name": "@cucumber/gherkin-utils",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "@cucumber/gherkin",
          "@cucumber/messages"
        ],
        "effects": [
          "@cucumber/cucumber"
        ],
        "range": "<=10.0.0",
        "nodes": [
          "node_modules/@cucumber/gherkin-utils"
        ],
        "fixAvailable": true
      },
      "@cucumber/messages": {
        "name": "@cucumber/messages",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "uuid"
        ],
        "effects": [
          "@cucumber/cucumber",
          "@cucumber/gherkin",
          "@cucumber/gherkin-utils",
          "@wdio/cucumber-framework"
        ],
        "range": "<=28.1.0",
        "nodes": [
          "node_modules/@cucumber/cucumber/node_modules/@cucumber/messages",
          "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages",
          "node_modules/@cucumber/gherkin/node_modules/@cucumber/messages",
          "node_modules/@cucumber/messages"
        ],
        "fixAvailable": {
          "name": "@wdio/cucumber-framework",
          "version": "6.11.1",
          "isSemVerMajor": true
        }
      },
      "@wdio/cucumber-framework": {
        "name": "@wdio/cucumber-framework",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "@cucumber/gherkin",
          "@cucumber/messages"
        ],
        "effects": [],
        "range": ">=7.0.0-beta.0",
        "nodes": [
          "node_modules/@wdio/cucumber-framework"
        ],
        "fixAvailable": {
          "name": "@wdio/cucumber-framework",
          "version": "6.11.1",
          "isSemVerMajor": true
        }
      },
      "@wdio/mocha-framework": {
        "name": "@wdio/mocha-framework",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mocha"
        ],
        "effects": [],
        "range": ">=7.7.4",
        "nodes": [
          "node_modules/@wdio/mocha-framework"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "7.7.3",
          "isSemVerMajor": true
        }
      },
      "form-data": {
        "name": "form-data",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1109540,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data uses unsafe random function in form-data for choosing boundary",
            "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4",
            "severity": "critical",
            "cwe": [
              "CWE-330"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<2.5.4"
          },
          {
            "source": 1120745,
            "name": "form-data",
            "dependency": "form-data",
            "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames",
            "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx",
            "severity": "high",
            "cwe": [
              "CWE-93"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": "<2.5.6"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<=2.5.5",
        "nodes": [
          "node_modules/form-data"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "2.3.3",
          "isSemVerMajor": true
        }
      },
      "grunt": {
        "name": "grunt",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "js-yaml"
        ],
        "effects": [
          "grunt-eslint"
        ],
        "range": ">=0.4.0-a",
        "nodes": [
          "node_modules/grunt"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "0.3.17",
          "isSemVerMajor": true
        }
      },
      "grunt-eslint": {
        "name": "grunt-eslint",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "grunt"
        ],
        "effects": [],
        "range": "<=1.0.0 || >=18.1.0",
        "nodes": [
          "node_modules/grunt-eslint"
        ],
        "fixAvailable": {
          "name": "grunt-eslint",
          "version": "18.0.0",
          "isSemVerMajor": true
        }
      },
      "js-yaml": {
        "name": "js-yaml",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1121859,
            "name": "js-yaml",
            "dependency": "js-yaml",
            "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases",
            "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68",
            "severity": "moderate",
            "cwe": [
              "CWE-407"
            ],
            "cvss": {
              "score": 5.3,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<3.15.0"
          }
        ],
        "effects": [
          "grunt"
        ],
        "range": "<3.15.0",
        "nodes": [
          "node_modules/grunt/node_modules/js-yaml"
        ],
        "fixAvailable": {
          "name": "grunt",
          "version": "0.3.17",
          "isSemVerMajor": true
        }
      },
      "mocha": {
        "name": "mocha",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          "serialize-javascript"
        ],
        "effects": [
          "@wdio/mocha-framework"
        ],
        "range": "8.2.0 - 12.0.0-beta-2",
        "nodes": [
          "node_modules/mocha"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "7.7.3",
          "isSemVerMajor": true
        }
      },
      "mwbot": {
        "name": "mwbot",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "request"
        ],
        "effects": [
          "wdio-mediawiki"
        ],
        "range": "0.1.6 - 2.1.3",
        "nodes": [
          "node_modules/mwbot",
          "node_modules/wdio-mediawiki/node_modules/mwbot"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "2.3.3",
          "isSemVerMajor": true
        }
      },
      "qs": {
        "name": "qs",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1113719,
            "name": "qs",
            "dependency": "qs",
            "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion",
            "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p",
            "severity": "moderate",
            "cwe": [
              "CWE-20"
            ],
            "cvss": {
              "score": 3.7,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"
            },
            "range": "<6.14.1"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<6.14.1",
        "nodes": [
          "node_modules/qs"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "2.3.3",
          "isSemVerMajor": true
        }
      },
      "request": {
        "name": "request",
        "severity": "critical",
        "isDirect": true,
        "via": [
          {
            "source": 1096727,
            "name": "request",
            "dependency": "request",
            "title": "Server-Side Request Forgery in Request",
            "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6",
            "severity": "moderate",
            "cwe": [
              "CWE-918"
            ],
            "cvss": {
              "score": 6.1,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"
            },
            "range": "<=2.88.2"
          },
          "form-data",
          "qs",
          "tough-cookie",
          "uuid"
        ],
        "effects": [
          "mwbot"
        ],
        "range": "*",
        "nodes": [
          "node_modules/request"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "2.3.3",
          "isSemVerMajor": true
        }
      },
      "serialize-javascript": {
        "name": "serialize-javascript",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1113686,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()",
            "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq",
            "severity": "high",
            "cwe": [
              "CWE-96"
            ],
            "cvss": {
              "score": 8.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": "<=7.0.2"
          },
          {
            "source": 1119440,
            "name": "serialize-javascript",
            "dependency": "serialize-javascript",
            "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects",
            "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v",
            "severity": "moderate",
            "cwe": [
              "CWE-400",
              "CWE-834"
            ],
            "cvss": {
              "score": 5.9,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=5.0.0 <7.0.5"
          }
        ],
        "effects": [
          "mocha"
        ],
        "range": "<=7.0.4",
        "nodes": [
          "node_modules/serialize-javascript"
        ],
        "fixAvailable": {
          "name": "@wdio/mocha-framework",
          "version": "7.7.3",
          "isSemVerMajor": true
        }
      },
      "tmp": {
        "name": "tmp",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1109537,
            "name": "tmp",
            "dependency": "tmp",
            "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter",
            "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6",
            "severity": "low",
            "cwe": [
              "CWE-59"
            ],
            "cvss": {
              "score": 2.5,
              "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<=0.2.3"
          },
          {
            "source": 1120654,
            "name": "tmp",
            "dependency": "tmp",
            "title": "tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape",
            "url": "https://github.com/advisories/GHSA-ph9p-34f9-6g65",
            "severity": "high",
            "cwe": [
              "CWE-22"
            ],
            "cvss": {
              "score": 0,
              "vectorString": null
            },
            "range": "<0.2.6"
          }
        ],
        "effects": [
          "@cucumber/cucumber"
        ],
        "range": "<=0.2.5",
        "nodes": [
          "node_modules/tmp"
        ],
        "fixAvailable": true
      },
      "tough-cookie": {
        "name": "tough-cookie",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1097682,
            "name": "tough-cookie",
            "dependency": "tough-cookie",
            "title": "tough-cookie Prototype Pollution vulnerability",
            "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3",
            "severity": "moderate",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 6.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"
            },
            "range": "<4.1.3"
          }
        ],
        "effects": [
          "request"
        ],
        "range": "<4.1.3",
        "nodes": [
          "node_modules/tough-cookie"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "2.3.3",
          "isSemVerMajor": true
        }
      },
      "undici": {
        "name": "undici",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1121187,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent",
            "url": "https://github.com/advisories/GHSA-vmh5-mc38-953g",
            "severity": "high",
            "cwe": [
              "CWE-295"
            ],
            "cvss": {
              "score": 7.4,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
            },
            "range": ">=7.23.0 <7.28.0"
          },
          {
            "source": 1121241,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
            "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
            "severity": "moderate",
            "cwe": [
              "CWE-93"
            ],
            "cvss": {
              "score": 5.9,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": ">=7.0.0 <7.28.0"
          },
          {
            "source": 1121242,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding",
            "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv",
            "severity": "moderate",
            "cwe": [
              "CWE-93"
            ],
            "cvss": {
              "score": 5.9,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": "<6.27.0"
          },
          {
            "source": 1121244,
            "name": "undici",
            "dependency": "undici",
            "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
            "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-770"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": ">=7.0.0 <7.28.0"
          },
          {
            "source": 1121245,
            "name": "undici",
            "dependency": "undici",
            "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass",
            "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q",
            "severity": "high",
            "cwe": [
              "CWE-400",
              "CWE-770"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
            },
            "range": "<6.27.0"
          },
          {
            "source": 1121247,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse",
            "url": "https://github.com/advisories/GHSA-hm92-r4w5-c3mj",
            "severity": "high",
            "cwe": [
              "CWE-346"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
            },
            "range": ">=7.23.0 <7.28.0"
          },
          {
            "source": 1121249,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
            "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
            "severity": "low",
            "cwe": [
              "CWE-367"
            ],
            "cvss": {
              "score": 3.7,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": ">=7.0.0 <7.28.0"
          },
          {
            "source": 1121250,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse",
            "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52",
            "severity": "low",
            "cwe": [
              "CWE-367"
            ],
            "cvss": {
              "score": 3.7,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<6.27.0"
          },
          {
            "source": 1121254,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
            "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
            "severity": "low",
            "cwe": [
              "CWE-183"
            ],
            "cvss": {
              "score": 3.7,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": ">=7.0.0 <7.28.0"
          },
          {
            "source": 1121255,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching",
            "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m",
            "severity": "low",
            "cwe": [
              "CWE-183"
            ],
            "cvss": {
              "score": 3.7,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"
            },
            "range": "<6.27.0"
          },
          {
            "source": 1121428,
            "name": "undici",
            "dependency": "undici",
            "title": "undici vulnerable to cross-user information disclosure via shared cache whitespace bypass",
            "url": "https://github.com/advisories/GHSA-pr7r-676h-xcf6",
            "severity": "moderate",
            "cwe": [
              "CWE-524"
            ],
            "cvss": {
              "score": 5.9,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"
            },
            "range": ">=7.0.0 <7.28.0"
          }
        ],
        "effects": [],
        "range": "<=6.26.0 || 7.0.0 - 7.27.2",
        "nodes": [
          "",
          ""
        ],
        "fixAvailable": true
      },
      "uuid": {
        "name": "uuid",
        "severity": "moderate",
        "isDirect": false,
        "via": [
          {
            "source": 1119441,
            "name": "uuid",
            "dependency": "uuid",
            "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided",
            "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq",
            "severity": "moderate",
            "cwe": [
              "CWE-787",
              "CWE-1285"
            ],
            "cvss": {
              "score": 7.5,
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"
            },
            "range": "<11.1.1"
          }
        ],
        "effects": [
          "@cucumber/messages",
          "request"
        ],
        "range": "<11.1.1",
        "nodes": [
          "node_modules/@cucumber/cucumber/node_modules/uuid",
          "node_modules/@cucumber/gherkin-utils/node_modules/uuid",
          "node_modules/@cucumber/gherkin/node_modules/uuid",
          "node_modules/request/node_modules/uuid",
          "node_modules/uuid"
        ],
        "fixAvailable": {
          "name": "mwbot",
          "version": "2.3.3",
          "isSemVerMajor": true
        }
      },
      "wdio-mediawiki": {
        "name": "wdio-mediawiki",
        "severity": "moderate",
        "isDirect": true,
        "via": [
          "mwbot"
        ],
        "effects": [],
        "range": "<=5.1.0",
        "nodes": [
          "node_modules/wdio-mediawiki"
        ],
        "fixAvailable": {
          "name": "wdio-mediawiki",
          "version": "6.5.2",
          "isSemVerMajor": true
        }
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 15,
        "high": 3,
        "critical": 2,
        "total": 20
      },
      "dependencies": {
        "prod": 114,
        "dev": 958,
        "optional": 38,
        "peer": 16,
        "peerOptional": 0,
        "total": 1072
      }
    }
  }
}

--- end ---
{"added": 1072, "removed": 0, "changed": 0, "audited": 1073, "funding": 229, "audit": {"auditReportVersion": 2, "vulnerabilities": {"@cucumber/cucumber": {"name": "@cucumber/cucumber", "severity": "moderate", "isDirect": false, "via": ["@cucumber/gherkin", "@cucumber/gherkin-utils", "@cucumber/messages", "tmp"], "effects": [], "range": "<=12.2.0", "nodes": ["node_modules/@cucumber/cucumber"], "fixAvailable": true}, "@cucumber/gherkin": {"name": "@cucumber/gherkin", "severity": "moderate", "isDirect": false, "via": ["@cucumber/messages"], "effects": ["@cucumber/gherkin-utils"], "range": "<=34.0.0", "nodes": ["node_modules/@cucumber/cucumber/node_modules/@cucumber/gherkin", "node_modules/@cucumber/gherkin", "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin"], "fixAvailable": true}, "@cucumber/gherkin-utils": {"name": "@cucumber/gherkin-utils", "severity": "moderate", "isDirect": false, "via": ["@cucumber/gherkin", "@cucumber/messages"], "effects": ["@cucumber/cucumber"], "range": "<=10.0.0", "nodes": ["node_modules/@cucumber/gherkin-utils"], "fixAvailable": true}, "@cucumber/messages": {"name": "@cucumber/messages", "severity": "moderate", "isDirect": false, "via": ["uuid"], "effects": ["@cucumber/cucumber", "@cucumber/gherkin", "@cucumber/gherkin-utils", "@wdio/cucumber-framework"], "range": "<=28.1.0", "nodes": ["node_modules/@cucumber/cucumber/node_modules/@cucumber/messages", "node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages", "node_modules/@cucumber/gherkin/node_modules/@cucumber/messages", "node_modules/@cucumber/messages"], "fixAvailable": {"name": "@wdio/cucumber-framework", "version": "6.11.1", "isSemVerMajor": true}}, "@wdio/cucumber-framework": {"name": "@wdio/cucumber-framework", "severity": "moderate", "isDirect": true, "via": ["@cucumber/gherkin", "@cucumber/messages"], "effects": [], "range": ">=7.0.0-beta.0", "nodes": ["node_modules/@wdio/cucumber-framework"], "fixAvailable": {"name": "@wdio/cucumber-framework", "version": "6.11.1", "isSemVerMajor": true}}, "@wdio/mocha-framework": {"name": "@wdio/mocha-framework", "severity": "moderate", "isDirect": true, "via": ["mocha"], "effects": [], "range": ">=7.7.4", "nodes": ["node_modules/@wdio/mocha-framework"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "7.7.3", "isSemVerMajor": true}}, "form-data": {"name": "form-data", "severity": "critical", "isDirect": false, "via": [{"source": 1109540, "name": "form-data", "dependency": "form-data", "title": "form-data uses unsafe random function in form-data for choosing boundary", "url": "https://github.com/advisories/GHSA-fjxv-7rqg-78g4", "severity": "critical", "cwe": ["CWE-330"], "cvss": {"score": 0, "vectorString": null}, "range": "<2.5.4"}, {"source": 1120745, "name": "form-data", "dependency": "form-data", "title": "form-data: CRLF injection in form-data via unescaped multipart field names and filenames", "url": "https://github.com/advisories/GHSA-hmw2-7cc7-3qxx", "severity": "high", "cwe": ["CWE-93"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": "<2.5.6"}], "effects": ["request"], "range": "<=2.5.5", "nodes": ["node_modules/form-data"], "fixAvailable": {"name": "mwbot", "version": "2.3.3", "isSemVerMajor": true}}, "grunt": {"name": "grunt", "severity": "moderate", "isDirect": true, "via": ["js-yaml"], "effects": ["grunt-eslint"], "range": ">=0.4.0-a", "nodes": ["node_modules/grunt"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "grunt-eslint": {"name": "grunt-eslint", "severity": "moderate", "isDirect": true, "via": ["grunt"], "effects": [], "range": "<=1.0.0 || >=18.1.0", "nodes": ["node_modules/grunt-eslint"], "fixAvailable": {"name": "grunt-eslint", "version": "18.0.0", "isSemVerMajor": true}}, "js-yaml": {"name": "js-yaml", "severity": "moderate", "isDirect": false, "via": [{"source": 1121859, "name": "js-yaml", "dependency": "js-yaml", "title": "JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases", "url": "https://github.com/advisories/GHSA-h67p-54hq-rp68", "severity": "moderate", "cwe": ["CWE-407"], "cvss": {"score": 5.3, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<3.15.0"}], "effects": ["grunt"], "range": "<3.15.0", "nodes": ["node_modules/grunt/node_modules/js-yaml"], "fixAvailable": {"name": "grunt", "version": "0.3.17", "isSemVerMajor": true}}, "mocha": {"name": "mocha", "severity": "moderate", "isDirect": false, "via": ["serialize-javascript"], "effects": ["@wdio/mocha-framework"], "range": "8.2.0 - 12.0.0-beta-2", "nodes": ["node_modules/mocha"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "7.7.3", "isSemVerMajor": true}}, "mwbot": {"name": "mwbot", "severity": "moderate", "isDirect": true, "via": ["request"], "effects": ["wdio-mediawiki"], "range": "0.1.6 - 2.1.3", "nodes": ["node_modules/mwbot", "node_modules/wdio-mediawiki/node_modules/mwbot"], "fixAvailable": {"name": "mwbot", "version": "2.3.3", "isSemVerMajor": true}}, "qs": {"name": "qs", "severity": "moderate", "isDirect": false, "via": [{"source": 1113719, "name": "qs", "dependency": "qs", "title": "qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion", "url": "https://github.com/advisories/GHSA-6rw7-vpxm-498p", "severity": "moderate", "cwe": ["CWE-20"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L"}, "range": "<6.14.1"}], "effects": ["request"], "range": "<6.14.1", "nodes": ["node_modules/qs"], "fixAvailable": {"name": "mwbot", "version": "2.3.3", "isSemVerMajor": true}}, "request": {"name": "request", "severity": "critical", "isDirect": true, "via": [{"source": 1096727, "name": "request", "dependency": "request", "title": "Server-Side Request Forgery in Request", "url": "https://github.com/advisories/GHSA-p8p7-x288-28g6", "severity": "moderate", "cwe": ["CWE-918"], "cvss": {"score": 6.1, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N"}, "range": "<=2.88.2"}, "form-data", "qs", "tough-cookie", "uuid"], "effects": ["mwbot"], "range": "*", "nodes": ["node_modules/request"], "fixAvailable": {"name": "mwbot", "version": "2.3.3", "isSemVerMajor": true}}, "serialize-javascript": {"name": "serialize-javascript", "severity": "high", "isDirect": false, "via": [{"source": 1113686, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString()", "url": "https://github.com/advisories/GHSA-5c6j-r48x-rmvq", "severity": "high", "cwe": ["CWE-96"], "cvss": {"score": 8.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H"}, "range": "<=7.0.2"}, {"source": 1119440, "name": "serialize-javascript", "dependency": "serialize-javascript", "title": "Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects", "url": "https://github.com/advisories/GHSA-qj8w-gfj5-8c6v", "severity": "moderate", "cwe": ["CWE-400", "CWE-834"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=5.0.0 <7.0.5"}], "effects": ["mocha"], "range": "<=7.0.4", "nodes": ["node_modules/serialize-javascript"], "fixAvailable": {"name": "@wdio/mocha-framework", "version": "7.7.3", "isSemVerMajor": true}}, "tmp": {"name": "tmp", "severity": "high", "isDirect": false, "via": [{"source": 1109537, "name": "tmp", "dependency": "tmp", "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter", "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6", "severity": "low", "cwe": ["CWE-59"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<=0.2.3"}, {"source": 1120654, "name": "tmp", "dependency": "tmp", "title": "tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape", "url": "https://github.com/advisories/GHSA-ph9p-34f9-6g65", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.2.6"}], "effects": ["@cucumber/cucumber"], "range": "<=0.2.5", "nodes": ["node_modules/tmp"], "fixAvailable": true}, "tough-cookie": {"name": "tough-cookie", "severity": "moderate", "isDirect": false, "via": [{"source": 1097682, "name": "tough-cookie", "dependency": "tough-cookie", "title": "tough-cookie Prototype Pollution vulnerability", "url": "https://github.com/advisories/GHSA-72xf-g2v4-qvf3", "severity": "moderate", "cwe": ["CWE-1321"], "cvss": {"score": 6.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N"}, "range": "<4.1.3"}], "effects": ["request"], "range": "<4.1.3", "nodes": ["node_modules/tough-cookie"], "fixAvailable": {"name": "mwbot", "version": "2.3.3", "isSemVerMajor": true}}, "undici": {"name": "undici", "severity": "high", "isDirect": false, "via": [{"source": 1121187, "name": "undici", "dependency": "undici", "title": "undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent", "url": "https://github.com/advisories/GHSA-vmh5-mc38-953g", "severity": "high", "cwe": ["CWE-295"], "cvss": {"score": 7.4, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"}, "range": ">=7.23.0 <7.28.0"}, {"source": 1121241, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding", "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv", "severity": "moderate", "cwe": ["CWE-93"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=7.0.0 <7.28.0"}, {"source": 1121242, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding", "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv", "severity": "moderate", "cwe": ["CWE-93"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": "<6.27.0"}, {"source": 1121244, "name": "undici", "dependency": "undici", "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass", "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=7.0.0 <7.28.0"}, {"source": 1121245, "name": "undici", "dependency": "undici", "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass", "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.27.0"}, {"source": 1121247, "name": "undici", "dependency": "undici", "title": "undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse", "url": "https://github.com/advisories/GHSA-hm92-r4w5-c3mj", "severity": "high", "cwe": ["CWE-346"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=7.23.0 <7.28.0"}, {"source": 1121249, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse", "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52", "severity": "low", "cwe": ["CWE-367"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=7.0.0 <7.28.0"}, {"source": 1121250, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse", "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52", "severity": "low", "cwe": ["CWE-367"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<6.27.0"}, {"source": 1121254, "name": "undici", "dependency": "undici", "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching", "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m", "severity": "low", "cwe": ["CWE-183"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=7.0.0 <7.28.0"}, {"source": 1121255, "name": "undici", "dependency": "undici", "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching", "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m", "severity": "low", "cwe": ["CWE-183"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<6.27.0"}, {"source": 1121428, "name": "undici", "dependency": "undici", "title": "undici vulnerable to cross-user information disclosure via shared cache whitespace bypass", "url": "https://github.com/advisories/GHSA-pr7r-676h-xcf6", "severity": "moderate", "cwe": ["CWE-524"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"}, "range": ">=7.0.0 <7.28.0"}], "effects": [], "range": "<=6.26.0 || 7.0.0 - 7.27.2", "nodes": ["", ""], "fixAvailable": true}, "uuid": {"name": "uuid", "severity": "moderate", "isDirect": false, "via": [{"source": 1119441, "name": "uuid", "dependency": "uuid", "title": "uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided", "url": "https://github.com/advisories/GHSA-w5hq-g745-h8pq", "severity": "moderate", "cwe": ["CWE-787", "CWE-1285"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": "<11.1.1"}], "effects": ["@cucumber/messages", "request"], "range": "<11.1.1", "nodes": ["node_modules/@cucumber/cucumber/node_modules/uuid", "node_modules/@cucumber/gherkin-utils/node_modules/uuid", "node_modules/@cucumber/gherkin/node_modules/uuid", "node_modules/request/node_modules/uuid", "node_modules/uuid"], "fixAvailable": {"name": "mwbot", "version": "2.3.3", "isSemVerMajor": true}}, "wdio-mediawiki": {"name": "wdio-mediawiki", "severity": "moderate", "isDirect": true, "via": ["mwbot"], "effects": [], "range": "<=5.1.0", "nodes": ["node_modules/wdio-mediawiki"], "fixAvailable": {"name": "wdio-mediawiki", "version": "6.5.2", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 15, "high": 3, "critical": 2, "total": 20}, "dependencies": {"prod": 114, "dev": 958, "optional": 38, "peer": 16, "peerOptional": 0, "total": 1072}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'grunt-stylelint@0.21.0',
npm WARN EBADENGINE   required: { node: '>=20.19.5' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated reflect-metadata@0.2.1: This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer.
npm WARN deprecated reflect-metadata@0.2.1: This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1046 packages, and audited 1047 packages in 17s

229 packages are looking for funding
  run `npm fund` for details

# npm audit report

form-data  <=2.5.5
Severity: critical
form-data uses unsafe random function in form-data for choosing boundary - https://github.com/advisories/GHSA-fjxv-7rqg-78g4
form-data: CRLF injection in form-data via unescaped multipart field names and filenames - https://github.com/advisories/GHSA-hmw2-7cc7-3qxx
fix available via `npm audit fix --force`
Will install mwbot@2.3.3, which is a breaking change
node_modules/form-data
  request  *
  Depends on vulnerable versions of form-data
  Depends on vulnerable versions of qs
  Depends on vulnerable versions of tough-cookie
  Depends on vulnerable versions of uuid
  node_modules/request
    mwbot  0.1.6 - 2.1.3
    Depends on vulnerable versions of request
    node_modules/mwbot
    node_modules/wdio-mediawiki/node_modules/mwbot
      wdio-mediawiki  <=5.1.0
      Depends on vulnerable versions of mwbot
      node_modules/wdio-mediawiki

js-yaml  <3.15.0
Severity: moderate
JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases - https://github.com/advisories/GHSA-h67p-54hq-rp68
fix available via `npm audit fix --force`
Will install grunt@0.3.17, which is a breaking change
node_modules/grunt/node_modules/js-yaml
  grunt  >=0.4.0-a
  Depends on vulnerable versions of js-yaml
  node_modules/grunt
    grunt-eslint  <=1.0.0 || >=18.1.0
    Depends on vulnerable versions of grunt
    node_modules/grunt-eslint

qs  <6.14.1
Severity: moderate
qs's arrayLimit bypass in its bracket notation allows DoS via memory exhaustion - https://github.com/advisories/GHSA-6rw7-vpxm-498p
fix available via `npm audit fix --force`
Will install mwbot@2.3.3, which is a breaking change
node_modules/qs


serialize-javascript  <=7.0.4
Severity: high
Serialize JavaScript is Vulnerable to RCE via RegExp.flags and Date.prototype.toISOString() - https://github.com/advisories/GHSA-5c6j-r48x-rmvq
Serialize JavaScript has CPU Exhaustion Denial of Service via crafted array-like objects - https://github.com/advisories/GHSA-qj8w-gfj5-8c6v
fix available via `npm audit fix --force`
Will install @wdio/mocha-framework@7.7.3, which is a breaking change
node_modules/serialize-javascript
  mocha  8.2.0 - 12.0.0-beta-2
  Depends on vulnerable versions of serialize-javascript
  node_modules/mocha
    @wdio/mocha-framework  >=7.7.4
    Depends on vulnerable versions of mocha
    node_modules/@wdio/mocha-framework

tmp  <=0.2.5
Severity: high
tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter - https://github.com/advisories/GHSA-52f5-9888-hmc6
tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape - https://github.com/advisories/GHSA-ph9p-34f9-6g65
fix available via `npm audit fix`
node_modules/tmp
  @cucumber/cucumber  <=12.2.0
  Depends on vulnerable versions of @cucumber/gherkin
  Depends on vulnerable versions of @cucumber/gherkin-utils
  Depends on vulnerable versions of @cucumber/messages
  Depends on vulnerable versions of tmp
  node_modules/@cucumber/cucumber

tough-cookie  <4.1.3
Severity: moderate
tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3
fix available via `npm audit fix --force`
Will install mwbot@2.3.3, which is a breaking change
node_modules/tough-cookie

uuid  <11.1.1
Severity: moderate
uuid: Missing buffer bounds check in v3/v5/v6 when buf is provided - https://github.com/advisories/GHSA-w5hq-g745-h8pq
fix available via `npm audit fix --force`
Will install mwbot@2.3.3, which is a breaking change
node_modules/@cucumber/cucumber/node_modules/uuid
node_modules/@cucumber/gherkin-utils/node_modules/uuid
node_modules/@cucumber/gherkin/node_modules/uuid
node_modules/request/node_modules/uuid
node_modules/uuid
  @cucumber/messages  <=28.1.0
  Depends on vulnerable versions of uuid
  node_modules/@cucumber/cucumber/node_modules/@cucumber/messages
  node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/messages
  node_modules/@cucumber/gherkin/node_modules/@cucumber/messages
  node_modules/@cucumber/messages
    @cucumber/gherkin  <=34.0.0
    Depends on vulnerable versions of @cucumber/messages
    node_modules/@cucumber/cucumber/node_modules/@cucumber/gherkin
    node_modules/@cucumber/gherkin
    node_modules/@cucumber/gherkin-utils/node_modules/@cucumber/gherkin
      @cucumber/gherkin-utils  <=10.0.0
      Depends on vulnerable versions of @cucumber/gherkin
      Depends on vulnerable versions of @cucumber/messages
      node_modules/@cucumber/gherkin-utils
    @wdio/cucumber-framework  >=7.0.0-beta.0
    Depends on vulnerable versions of @cucumber/gherkin
    Depends on vulnerable versions of @cucumber/messages
    node_modules/@wdio/cucumber-framework

19 vulnerabilities (15 moderate, 2 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: 'grunt-stylelint@0.21.0',
npm WARN EBADENGINE   required: { node: '>=20.19.5' },
npm WARN EBADENGINE   current: { node: 'v20.19.2', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@8.1.0: Glob versions prior to v9 are no longer supported
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated reflect-metadata@0.2.1: This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer.
npm WARN deprecated reflect-metadata@0.2.1: This version has a critical bug in fallback handling. Please upgrade to reflect-metadata@0.2.2 or newer.
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
--- stdout ---

added 1046 packages, and audited 1047 packages in 20s

229 packages are looking for funding
  run `npm fund` for details

19 vulnerabilities (15 moderate, 2 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stdout ---

> cirrussearch@0.0.0 test
> grunt test

Running "eslint:all" (eslint) task

/src/repo/tests/integration/features/step_definitions/page_step_helpers.js
   59:11  warning  Found readFileSync from package "fs" with non literal argument at index 0  security/detect-non-literal-fs-filename
  286:2   warning  Missing JSDoc @param "redirectScope" declaration                           jsdoc/require-param

/src/repo/tests/integration/features/step_definitions/page_steps.js
  127:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  139:5  warning  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at
  142:4  warning  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at
  164:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  172:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  207:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  227:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  324:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  393:8  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  492:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  636:7  warning  Unsafe Regular Expression                        security/detect-unsafe-regex
  710:2  warning  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at
  718:2  warning  ES2022 'Array.prototype.at' method is forbidden  es-x/no-array-string-prototype-at

/src/repo/tests/integration/features/support/pages/search_results_page.js
  145:2  warning  Missing JSDoc @return declaration  jsdoc/require-returns

✖ 16 problems (0 errors, 16 warnings)
  0 errors and 1 warning potentially fixable with the `--fix` option.


Running "banana:CirrusSearch" (banana) task
>> 2 message directories checked.

Running "stylelint:all" (stylelint) task
>> Linted 0 files without errors

Done.

--- end ---
{"1109537": {"source": 1109537, "name": "tmp", "dependency": "tmp", "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter", "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6", "severity": "low", "cwe": ["CWE-59"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<=0.2.3"}, "1120654": {"source": 1120654, "name": "tmp", "dependency": "tmp", "title": "tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape", "url": "https://github.com/advisories/GHSA-ph9p-34f9-6g65", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.2.6"}}
{}
{}
{"1109537": {"source": 1109537, "name": "tmp", "dependency": "tmp", "title": "tmp allows arbitrary temporary file / directory write via symbolic link `dir` parameter", "url": "https://github.com/advisories/GHSA-52f5-9888-hmc6", "severity": "low", "cwe": ["CWE-59"], "cvss": {"score": 2.5, "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:N"}, "range": "<=0.2.3"}, "1120654": {"source": 1120654, "name": "tmp", "dependency": "tmp", "title": "tmp has Path Traversal via unsanitized prefix/postfix that enables directory escape", "url": "https://github.com/advisories/GHSA-ph9p-34f9-6g65", "severity": "high", "cwe": ["CWE-22"], "cvss": {"score": 0, "vectorString": null}, "range": "<0.2.6"}}
{"1121187": {"source": 1121187, "name": "undici", "dependency": "undici", "title": "undici vulnerable to TLS certificate validation bypass via dropped requestTls in SOCKS5 ProxyAgent", "url": "https://github.com/advisories/GHSA-vmh5-mc38-953g", "severity": "high", "cwe": ["CWE-295"], "cvss": {"score": 7.4, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"}, "range": ">=7.23.0 <7.28.0"}, "1121241": {"source": 1121241, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding", "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv", "severity": "moderate", "cwe": ["CWE-93"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": ">=7.0.0 <7.28.0"}, "1121242": {"source": 1121242, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP header injection via Set-Cookie percent-decoding", "url": "https://github.com/advisories/GHSA-p88m-4jfj-68fv", "severity": "moderate", "cwe": ["CWE-93"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N"}, "range": "<6.27.0"}, "1121244": {"source": 1121244, "name": "undici", "dependency": "undici", "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass", "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": ">=7.0.0 <7.28.0"}, "1121245": {"source": 1121245, "name": "undici", "dependency": "undici", "title": "undici WebSocket client vulnerable to denial of service via fragment count bypass", "url": "https://github.com/advisories/GHSA-vxpw-j846-p89q", "severity": "high", "cwe": ["CWE-400", "CWE-770"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}, "range": "<6.27.0"}, "1121247": {"source": 1121247, "name": "undici", "dependency": "undici", "title": "undici vulnerable to cross-origin request routing via SOCKS5 proxy pool reuse", "url": "https://github.com/advisories/GHSA-hm92-r4w5-c3mj", "severity": "high", "cwe": ["CWE-346"], "cvss": {"score": 7.5, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"}, "range": ">=7.23.0 <7.28.0"}, "1121249": {"source": 1121249, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse", "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52", "severity": "low", "cwe": ["CWE-367"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=7.0.0 <7.28.0"}, "1121250": {"source": 1121250, "name": "undici", "dependency": "undici", "title": "undici vulnerable to HTTP response queue poisoning via keep-alive socket reuse", "url": "https://github.com/advisories/GHSA-35p6-xmwp-9g52", "severity": "low", "cwe": ["CWE-367"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<6.27.0"}, "1121254": {"source": 1121254, "name": "undici", "dependency": "undici", "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching", "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m", "severity": "low", "cwe": ["CWE-183"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": ">=7.0.0 <7.28.0"}, "1121255": {"source": 1121255, "name": "undici", "dependency": "undici", "title": "undici vulnerable to Set-Cookie SameSite attribute downgrade via permissive substring matching", "url": "https://github.com/advisories/GHSA-g8m3-5g58-fq7m", "severity": "low", "cwe": ["CWE-183"], "cvss": {"score": 3.7, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N"}, "range": "<6.27.0"}, "1121428": {"source": 1121428, "name": "undici", "dependency": "undici", "title": "undici vulnerable to cross-user information disclosure via shared cache whitespace bypass", "url": "https://github.com/advisories/GHSA-pr7r-676h-xcf6", "severity": "moderate", "cwe": ["CWE-524"], "cvss": {"score": 5.9, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N"}, "range": ">=7.0.0 <7.28.0"}}
Upgrading n:undici from 6.24.1, 7.24.3 -> 6.27.0, 7.28.0
$ package-lock-lint /src/repo/package-lock.json
--- stdout ---
Checking /src/repo/package-lock.json

--- end ---
build: Updating undici to 6.27.0, 7.28.0

* https://github.com/advisories/GHSA-35p6-xmwp-9g52
* https://github.com/advisories/GHSA-g8m3-5g58-fq7m
* https://github.com/advisories/GHSA-hm92-r4w5-c3mj
* https://github.com/advisories/GHSA-p88m-4jfj-68fv
* https://github.com/advisories/GHSA-pr7r-676h-xcf6
* https://github.com/advisories/GHSA-vmh5-mc38-953g
* https://github.com/advisories/GHSA-vxpw-j846-p89q

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmphb1az6gq
--- stdout ---
[master 9572882] build: Updating undici to 6.27.0, 7.28.0
 1 file changed, 6 insertions(+), 6 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 9572882224d7a73e79f47b39adc8c450212274f1 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Fri, 3 Jul 2026 16:14:46 +0000
Subject: [PATCH] build: Updating undici to 6.27.0, 7.28.0

* https://github.com/advisories/GHSA-35p6-xmwp-9g52
* https://github.com/advisories/GHSA-g8m3-5g58-fq7m
* https://github.com/advisories/GHSA-hm92-r4w5-c3mj
* https://github.com/advisories/GHSA-p88m-4jfj-68fv
* https://github.com/advisories/GHSA-pr7r-676h-xcf6
* https://github.com/advisories/GHSA-vmh5-mc38-953g
* https://github.com/advisories/GHSA-vxpw-j846-p89q

Change-Id: Icb89d1d26b5ac4b26ea6de3a50518666813bb8f9
---
 package-lock.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 8a4339f..9d08e82 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4279,9 +4279,9 @@
 			}
 		},
 		"node_modules/cheerio/node_modules/undici": {
-			"version": "7.24.3",
-			"resolved": "https://registry.npmjs.org/undici/-/undici-7.24.3.tgz",
-			"integrity": "sha512-eJdUmK/Wrx2d+mnWWmwwLRyA7OQCkLap60sk3dOK4ViZR7DKwwptwuIvFBg2HaiP9ESaEdhtpSymQPvytpmkCA==",
+			"version": "7.28.0",
+			"resolved": "https://registry.npmjs.org/undici/-/undici-7.28.0.tgz",
+			"integrity": "sha512-cRZYrTDwWznlnRiPjggAGxZXanty6M8RV1ff8Wm4LWXBp7/IG8v5DnOm74DtUBp9OONpK75YlPnIjQqX0dBDtA==",
 			"dev": true,
 			"engines": {
 				"node": ">=20.18.1"
@@ -13401,9 +13401,9 @@
 			}
 		},
 		"node_modules/undici": {
-			"version": "6.24.1",
-			"resolved": "https://registry.npmjs.org/undici/-/undici-6.24.1.tgz",
-			"integrity": "sha512-sC+b0tB1whOCzbtlx20fx3WgCXwkW627p4EA9uM+/tNNPkSS+eSEld6pAs9nDv7WbY1UUljBMYPtu9BCOrCWKA==",
+			"version": "6.27.0",
+			"resolved": "https://registry.npmjs.org/undici/-/undici-6.27.0.tgz",
+			"integrity": "sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==",
 			"dev": true,
 			"engines": {
 				"node": ">=18.17"
-- 
2.47.3


--- end ---
Source code is licensed under the AGPL.