Submitted manifest · scanned 2026-08-21 05:08:10 UTC · completed in 5.5s
Executive summary. The scan surfaced 86 findings, including 1 critical issue and 35 high-severity issues. (no LLM provider available) This summary was generated deterministically from scanner output because no LLM provider was available; it follows the same structure as AI-written reports.
Risk posture. Risk posture needs attention: 36 critical or high-severity issues should be fixed before this code ships. The remaining 50 lower-severity findings can be scheduled into normal maintenance.
AI analysis ran in deterministic fallback mode (template) — structure matches the LLM path.
minimist: prototype pollution. Minimist <=1.2.5 is vulnerable to Prototype Pollution via file index.js, function setKey() (lines 69-95). Located in package-lock.json. Flagged by trivy as critical severity.
Fix: Upgrade minimist to 1.2.6, 0.2.4 or later.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-cph5-m8f7-6c5x Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-43fc-jf86-j433 Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-jr5f-v2jv-69x6 Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-3g43-6gmg-66jw Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-6chq-wfr3-2hj9 Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-pmwg-cvhr-8vh7 Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-pf86-5x62-jrwf Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-p92q-9vqr-4j8v Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-j5f8-grm9-p9fc Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-hfxv-24rg-xrqf Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-pjwm-pj3p-43mv Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=4.17.23. https://github.com/advisories/GHSA-35jh-r3h4-6jhm Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade lodash to 4.18.1.
nodejs-lodash: prototype pollution in zipObjectDeep function. Prototype pollution attack when using _.zipObjectDeep in lodash before 4.17.20. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade lodash to 4.17.19 or later.
nodejs-lodash: command injection via template. Lodash versions prior to 4.17.21 are vulnerable to Command Injection via the template function. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade lodash to 4.17.21 or later.
nodejs-axios: Regular expression denial of service in trim function. axios is vulnerable to Inefficient Regular Expression Complexity Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 0.21.2 or later.
follow-redirects: Exposure of Private Personal Information to an Unauthorized Actor. follow-redirects is vulnerable to Exposure of Private Personal Information to an Unauthorized Actor Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade follow-redirects to 1.14.7 or later.
node-fetch: exposure of sensitive information to an unauthorized actor. node-fetch is vulnerable to Exposure of Sensitive Information to an Unauthorized Actor Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade node-fetch to 3.1.1, 2.6.7 or later.
jsonwebtoken: Unrestricted key type could lead to legacy keys usagen. Versions `<=8.5.1` of `jsonwebtoken` library could be misconfigured so that legacy, insecure key types are used for signature verification. For example, DSA keys could be used with the RS256 algorithm. You are affected if you are using an algorithm and a key type other than a combination listed in the GitHub Security Advisory as unaffected. This issue has been fixed, please update to version 9.0.0. This version validates for asymmetric key type and algorithm combinations. Please refer to the above mentioned algorithm / key type combinations for the valid secure configuration. After updating to version 9.0.0, if you still intend to continue with signing or verifying tokens using invalid key type/algorithm value combinations, you’ll need to set the `allowInvalidAsymmetricKeyTypes` option to `true` in the `sign()` and/or `verify()` functions. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade jsonwebtoken to 9.0.0 or later.
axios: Possible SSRF and Credential Leakage via Absolute URL in axios Requests. axios is a promise based HTTP client for the browser and node.js. The issue occurs when passing absolute URLs rather than protocol-relative URLs to axios. Even if baseURL is set, axios sends the request to the specified absolute URL, potentially causing SSRF and credential leakage. This issue impacts both server-side and client-side usage of axios. This issue is fixed in 1.8.2. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.8.2, 0.30.0 or later.
axios: Axios affected by Denial of Service via __proto__ Key in mergeConfig. Axios is a promise based HTTP client for the browser and Node.js. Prior to versions 0.30.3 and 1.13.5, the mergeConfig function in axios crashes with a TypeError when processing configuration objects containing __proto__ as an own property. An attacker can trigger this by providing a malicious configuration object created via JSON.parse(), causing complete denial of service. This vulnerability is fixed in versions 0.30.3 and 1.13.5. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.13.5, 0.30.3 or later.
axios: Axios: HTTP Transport Hijacking via Prototype Pollution. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, when Object.prototype has been polluted by any co-dependency with keys that axios reads without a hasOwnProperty guard, an attacker can (a) silently intercept and modify every JSON response before the application sees it, or (b) fully hijack the underlying HTTP transport, gaining access to request credentials, headers, and body. The precondition is prototype pollution from a separate source in the same process. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: Arbitrary HTTP header injection via prototype pollution. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, a prototype pollution gadget exists in the Axios HTTP adapter (lib/adapters/http.js) that allows an attacker to inject arbitrary HTTP headers into outgoing requests. The vulnerability exploits duck-type checking of the data payload, where if Object.prototype is polluted with getHeaders, append, pipe, on, once, and Symbol.toStringTag, Axios misidentifies any plain object payload as a FormData instance and calls the attacker-controlled getHeaders() function, merging the returned headers into the outgoing request. The vulnerable code resides exclusively in lib/adapters/http.js. The prototype pollution source does not need to originate from Axios itself — any prototype pollution primitive in any dependency in the application's dependency tree is sufficient to trigger this gadget. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: NO_PROXY bypass via crafted URL. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, an attacker who can influence the target URL of an Axios request can use any address in the 127.0.0.0/8 range (other than 127.0.0.1) to completely bypass the NO_PROXY protection. This vulnerability is due to an incomplete for CVE-2025-62718, This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: Information disclosure of proxy credentials via HTTP redirects. Axios is a promise based HTTP client for the browser and Node.js. Prior to 0.32.0 and 1.16.0, Axios’ Node.js HTTP adapter can leak proxy credentials to a redirect target in affected versions. When a request is sent through an authenticated proxy, Axios may add a Proxy-Authorization header. If Axios then follows a redirect and the redirected request is no longer sent through that proxy, the stale Proxy-Authorization header can remain on the redirected request and be sent to the redirect target. This affects Node.js's use of Axios with automatic redirects enabled and an authenticated proxy configuration. Browser adapters are not affected. This vulnerability is fixed in 0.32.0 and 1.16.0. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.16.0, 0.32.0 or later.
axios: Axios: Information disclosure of proxy credentials via redirect flows. Axios is a promise based HTTP client for the browser and Node.js. Prior to 0.32.0 and 1.16.0, Axios’s Node.js HTTP adapter may forward a Proxy-Authorization header to a redirected origin during specific proxy-to-direct redirect flows. This affects Node.js usage, where an initial HTTP request is sent through an authenticated HTTP proxy, redirects are followed, and the redirected URL is no longer proxied. Under affected redirect shapes, the final origin can receive the proxy credential that was intended only for the outbound proxy. This vulnerability is fixed in 0.32.0 and 1.16.0. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.16.0, 0.32.0 or later.
axios: Axios: Proxy bypass via IPv4-mapped IPv6 address non-normalization. Axios is a promise based HTTP client for the browser and Node.js. Prior to 0.32.0 and 1.16.0, Axios does not normalise IPv4-mapped IPv6 addresses. When NO_PROXY lists an IPv4 address such as 127.0.0.1 or 169.254.169.254, a request URL using the IPv4-mapped IPv6 form (::ffff:7f00:1, ::ffff:a9fe:a9fe) still routes through the configured proxy. Node.js resolves these addresses to the underlying IPv4 host, so the request reaches the internal service via the proxy rather than being blocked. This vulnerability is fixed in 0.32.0 and 1.16.0. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.16.0, 0.32.0 or later.
axios: Axios: Information disclosure due to prototype pollution vulnerability. Axios is a promise based HTTP client for the browser and Node.js. From 0.19.0 to before 0.31.1 and 1.15.2, Axios contains prototype-pollution gadgets in request config processing. If another vulnerability in the same JavaScript process has already polluted Object.prototype.transformResponse, affected Axios versions may treat that inherited value as request configuration or as an option validator. Axios does not itself create the prototype pollution. Exploitability requires a separate prototype-pollution vulnerability or equivalent attacker control over Object.prototype before Axios creates a request. This vulnerability is fixed in 0.31.1 and 1.15.2. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.15.2, 0.31.1 or later.
axios: Axios: Client-side Denial of Service via unescaped regex metacharacters in XSRF cookie name. Axios is a promise based HTTP client for the browser and Node.js. Axios versions before 0.32.0 on the 0.x line and before 1.16.0 on the 1.x line build a regular expression from the configured XSRF cookie name without escaping regex metacharacters. In standard browser environments, an attacker who can influence the cookie name passed to axios can cause expensive regex backtracking while axios reads document.cookie. The practical impact is client-side availability degradation, such as freezing the affected browser tab while axios prepares a request. The issue does not affect ordinary Node.js HTTP adapter usage, React Native, or web workers, where axios does not read document.cookie. This vulnerability is fixed in 0.32.0 and 1.16.0. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade axios to 1.16.0, 0.32.0 or later.
lodash: lodash: Arbitrary code execution via untrusted input in template imports. Impact: The fix for CVE-2021-23337 (https://github.com/advisories/GHSA-35jh-r3h4-6jhm) added validation for the variable option in _.template but did not apply the same validation to options.imports key names. Both paths flow into the same Function() constructor sink. When an application passes untrusted input as options.imports key names, an attacker can inject default-parameter expressions that execute arbitrary code at template compilation time. Additionally, _.template uses assignInWith to merge imports, which enumerates inherited properties via for..in. If Object.prototype has been polluted by any other vector, the polluted keys are copied into the imports object and passed to Function(). Patches: Users should upgrade to version 4.18.0. Workarounds: Do not pass untrusted input as key names in options.imports. Only use developer-controlled, static key names. Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade lodash to 4.18.0 or later.
Range affected: <=1.15.11. https://github.com/advisories/GHSA-74fj-2j2h-c42q Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=8.5.1. https://github.com/advisories/GHSA-8cf7-32gw-wr33 Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade jsonwebtoken to 9.0.3.
Range affected: <=4.17.23. https://github.com/advisories/GHSA-r5fr-rjxr-66jc Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade lodash to 4.18.1.
Range affected: <=2.6.6. https://github.com/advisories/GHSA-r683-j2x4-v87g Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade node-fetch to 2.7.0.
Allocation of Resources Without Limits or Throttling. Prototype pollution attack (lodash) Located in package-lock.json. Flagged by trivy as high severity.
Fix: Upgrade lodash to >=4.17.19 or later.
Range affected: <=4.17.23. https://github.com/advisories/GHSA-p6mc-m468-83gw Located in package-lock.json. Flagged by npm-audit as high severity.
Fix: Run npm audit fix — upgrade lodash to 4.18.1.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-wf5p-g6vw-rhxx Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-3p68-rc4w-qgx5 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-898c-q2cr-xwhg Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-fvcv-3m26-pcqx Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-4w2v-q235-vp99 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-w9j2-pvgh-6h63 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-vf2m-468p-8v99 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-7q8q-rj6j-mhjq Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-m7pr-hjqh-92cm Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-mmx7-hfxf-jppx Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-62hf-57xw-28j9 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-xx6v-rp6x-q39c Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-5c9x-8gcm-mpgx Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
nodejs-axios: allows an attacker to bypass a proxy by providing a URL that responds with a redirect to a restricted host or IP address. Axios NPM package 0.21.0 contains a Server-Side Request Forgery (SSRF) vulnerability where an attacker is able to bypass a proxy by providing a URL that responds with a redirect to a restricted host or IP address. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 0.21.1 or later.
nodejs-lodash: ReDoS via the toNumber, trim and trimEnd functions. Lodash versions prior to 4.17.21 are vulnerable to Regular Expression Denial of Service (ReDoS) via the toNumber, trim and trimEnd functions. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade lodash to 4.17.21 or later.
nodejs-minimist: prototype pollution allows adding or modifying properties of Object.prototype using a constructor or __proto__ payload. minimist before 1.2.2 could be tricked into adding or modifying properties of Object.prototype using a "constructor" or "__proto__" payload. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade minimist to 0.2.1, 1.2.3 or later.
follow-redirects: Exposure of Sensitive Information via Authorization Header leak. Improper Removal of Sensitive Information Before Storage or Transfer in NPM follow-redirects prior to 1.14.8. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade follow-redirects to 1.14.8 or later.
jsonwebtoken: Insecure default algorithm in jwt.verify() could lead to signature validation bypass. In versions `<=8.5.1` of `jsonwebtoken` library, lack of algorithm definition in the `jwt.verify()` function can lead to signature validation bypass due to defaulting to the `none` algorithm for signature verification. Users are affected if you do not specify algorithms in the `jwt.verify()` function. This issue has been fixed, please update to version 9.0.0 which removes the default support for the none algorithm in the `jwt.verify()` method. There will be no impact, if you update to version 9.0.0 and you don’t need to allow for the `none` algorithm. If you need 'none' algorithm, you have to explicitly specify that in `jwt.verify()` options. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade jsonwebtoken to 9.0.0 or later.
jsonwebtoken: Insecure implementation of key retrieval function could lead to Forgeable Public/Private Tokens from RSA to HMAC. jsonwebtoken is an implementation of JSON Web Tokens. Versions `<= 8.5.1` of `jsonwebtoken` library can be misconfigured so that passing a poorly implemented key retrieval function referring to the `secretOrPublicKey` argument from the readme link will result in incorrect verification of tokens. There is a possibility of using a different algorithm and key combination in verification, other than the one that was used to sign the tokens. Specifically, tokens signed with an asymmetric public key could be verified with a symmetric HS256 algorithm. This can lead to successful validation of forged tokens. If your application is supporting usage of both symmetric key and asymmetric key in jwt.verify() implementation with the same key retrieval function. This issue has been patched, please update to version 9.0.0. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade jsonwebtoken to 9.0.0 or later.
follow-redirects: Improper Input Validation due to the improper handling of URLs by the url.parse(). Versions of the package follow-redirects before 1.15.4 are vulnerable to Improper Input Validation due to the improper handling of URLs by the url.parse() function. When new URL() throws an error, it can be manipulated to misinterpret the hostname. An attacker could exploit this weakness to redirect traffic to a malicious site, potentially leading to information disclosure, phishing attacks, or other security breaches. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade follow-redirects to 1.15.4 or later.
axios: exposure of confidential data stored in cookies. An issue discovered in Axios 1.5.1 inadvertently reveals the confidential XSRF-TOKEN stored in cookies by including it in the HTTP header X-XSRF-TOKEN for every request made to any host allowing attackers to view sensitive information. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.6.0, 0.28.0 or later.
follow-redirects: Possible credential leak. follow-redirects is an open source, drop-in replacement for Node's `http` and `https` modules that automatically follows redirects. In affected versions follow-redirects only clears authorization header during cross-domain redirect, but keep the proxy-authentication header which contains credentials too. This vulnerability may lead to credentials leak, but has been addressed in version 1.15.6. Users are advised to upgrade. There are no known workarounds for this vulnerability. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade follow-redirects to 1.15.6 or later.
lodash: prototype pollution in _.unset and _.omit functions. Lodash versions 4.0.0 through 4.17.22 are vulnerable to prototype pollution in the _.unset and _.omit functions. An attacker can pass crafted paths which cause Lodash to delete methods from global prototypes. The issue permits deletion of properties but does not allow overwriting their original behavior. This issue is patched on 4.17.23 Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade lodash to 4.17.23 or later.
axios: Axios: Server-Side Request Forgery and proxy bypass due to improper hostname normalization. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.0 and 0.31.0, Axios does not correctly handle hostname normalization when checking NO_PROXY rules. Requests to loopback addresses like localhost. (with a trailing dot) or [::1] (IPv6 literal) skip NO_PROXY matching and go through the configured proxy. This goes against what developers expect and lets attackers force requests through a proxy, even if NO_PROXY is set up to protect loopback or internal services. This issue leads to the possibility of proxy bypass and SSRF vulnerabilities allowing attackers to reach sensitive loopback or internal services despite the configured protections. This vulnerability is fixed in 1.15.0 and 0.31.0. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.0, 0.31.0 or later.
lodash: Lodash: Prototype pollution allows deletion of built-in prototype properties via array path bypass. Impact: Lodash versions 4.17.23 and earlier are vulnerable to prototype pollution in the _.unset and _.omit functions. The fix for (CVE-2025-13465: https://github.com/lodash/lodash/security/advisories/GHSA-xxjr-mmjv-4gpg) only guards against string key members, so an attacker can bypass the check by passing array-wrapped path segments. This allows deletion of properties from built-in prototypes such as Object.prototype, Number.prototype, and String.prototype. The issue permits deletion of prototype properties but does not allow overwriting their original behavior. Patches: This issue is patched in 4.18.0. Workarounds: None. Upgrade to the patched version. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade lodash to 4.18.0 or later.
axios: Axios: Remote Code Execution via Prototype Pollution escalation. Axios is a promise based HTTP client for the browser and Node.js. Versions prior to 1.15.0 and 0.3.1 are vulnerable to a specific gadget-style attack chain in which prototype pollution in a third-party dependency may be leveraged to inject unsanitized header values into outbound requests. This vulnerability is fixed in 1.15.0 and 0.3.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.0, 0.31.0 or later.
axios: Axios: Denial of Service via oversized streamed uploads bypassing body limits. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, for stream request bodies, maxBodyLength is bypassed when maxRedirects is set to 0 (native http/https transport path). Oversized streamed uploads are sent fully even when the caller sets strict body limits. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: Denial of Service via unbounded stream consumption when 'responseType: 'stream'' is used. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, when responseType: 'stream' is used, Axios returns the response stream without enforcing maxContentLength. This bypasses configured response-size limits and allows unbounded downstream consumption. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: Information disclosure due to `no_proxy` bypass. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, he fix for no_proxy hostname normalization bypass is incomplete. When no_proxy=localhost is set, requests to 127.0.0.1 and [::1] still route through the proxy instead of bypassing it. The shouldBypassProxy() function does pure string matching — it does not resolve IP aliases or loopback equivalents. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Node.js: Axios: Denial of Service via unbounded recursion in toFormData with deeply nested request data. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, toFormData recursively walks nested objects with no depth limit, so a deeply nested value passed as request data crashes the Node.js process with a RangeError. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: Authentication bypass due to prototype pollution of HTTP error handling. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, the Axios library is vulnerable to a Prototype Pollution "Gadget" attack that allows any Object.prototype pollution to silently suppress all HTTP error responses (401, 403, 500, etc.), causing them to be treated as successful responses. This completely bypasses application-level authentication and error handling. The root cause is that validateStatus is the only config property using the mergeDirectKeys merge strategy, which uses JavaScript's in operator — an operator that inherently traverses the prototype chain. When Object.prototype.validateStatus is polluted with () => true, all HTTP status codes are accepted as success. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: XSRF token bypass leading to information disclosure. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, the Axios library's XSRF token protection logic uses JavaScript truthy/falsy semantics instead of strict boolean comparison for the withXSRFToken config property. When this property is set to any truthy non-boolean value (via prototype pollution or misconfiguration), the same-origin check (isURLSameOrigin) is short-circuited, causing XSRF tokens to be sent to all request targets including cross-origin servers controlled by an attacker. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
axios: Axios: Information disclosure and denial of service due to prototype pollution. Axios is a promise based HTTP client for the browser and Node.js. Prior to 0.32.0 and 1.16.0, axios exposes two read-side prototype-pollution gadgets. When Object.prototype is polluted by an upstream dependency in the same process (e.g. lodash _.merge / CVE-2018-16487), axios silently picks up the polluted values. (1) lib/utils.js line 406 builds merge()'s accumulator as result = {}, so result[targetKey] (line 414) walks Object.prototype and the polluted bucket's own keys are copied into the merged headers and ride out on the wire. (2) lib/core/mergeConfig.js line 26 builds the hasOwnProperty descriptor as a plain-object literal. Object.defineProperty reads descriptor.get/descriptor.set via the prototype chain, so a polluted Object.prototype.get or Object.prototype.set makes the call throw TypeError synchronously on every axios request. This vulnerability is fixed in 0.32.0 and 1.16.0. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.16.0, 0.32.0 or later.
Range affected: <=1.15.11. https://github.com/advisories/GHSA-pw2r-vq6v-hr8c Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=1.15.11. https://github.com/advisories/GHSA-jchw-25xp-jwwc Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=1.15.11. https://github.com/advisories/GHSA-r4q5-vmmm-2653 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Range affected: <=1.15.11. https://github.com/advisories/GHSA-cxjh-pqwp-8mfp Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
Axios: Nested axios option objects can consume polluted prototype values. ## Summary Axios can consume inherited properties from nested request option objects when the JavaScript process already has a polluted `Object.prototype`. The top-level merged config is protected with a null prototype, but nested plain objects such as `auth` and `paramsSerializer` are cloned into ordinary objects. If application code passes placeholders such as `auth: {}` or `paramsSerializer: {}`, inherited `username`, `password`, `encode`, or `serialize` properties can influence outbound requests. ## Impact This is reachable only when another component has already polluted `Object.prototype` and the application passes an affected nested axios option object. Confirmed impacts include silent injection of an `Authorization: Basic ...` header from inherited `username` and `password` values, and query-string tampering when inherited `paramsSerializer` fields are function-valued. The `auth` case requires only string-valued pollution. Full query-string replacement through `paramsSerializer.serialize` requires a function-valued pollution primitive; string-only pollution may still cause request failures or encoding changes through `encode`. This does not mean every axios request is affected. Requests that do not pass `auth`, do not pass `paramsSerializer`, or provide explicit own properties for the relevant nested fields are not affected by this specific gadget. ## Affected Functionality Affected runtime functionality: - Node HTTP adapter Basic auth handling in `lib/adapters/http.js`. - Browser/fetch/XHR Basic auth handling through `lib/helpers/resolveConfig.js`. - Query serialization through `lib/helpers/buildURL.js`. - `axios.getUri()` when called with an affected `paramsSerializer` object. Affected config shapes: - `auth: {}` or an `auth` object missing own `username` and/or `password`. - `paramsSerializer: {}` or a `paramsSerializer` object missing own `encode` and/or `serialize`. U Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 0.33.0, 1.18.0 or later.
Axios: Prototype pollution gadgets can alter axios request construction. ## Summary axios is vulnerable to read-side prototype-pollution gadgets when `Object.prototype` has already been polluted by another vulnerability or dependency. The most broadly reachable issue is in the bodyless method aliases: `axios.get()`, `axios.delete()`, `axios.head()`, and `axios.options()` read inherited `data` before config normalization, causing attacker-controlled body data to be sent on requests that did not explicitly set a body. Additional low-level paths affect consumers that call exported adapters/helpers directly with plain config objects. In those cases, inherited `proxy` or `paramsSerializer` values can influence request routing or URL serialization. These low-level paths are not reproduced through normal `axios.get()` usage on `1.15.2+`. ## Impact An attacker who can first pollute `Object.prototype` can cause axios to send attacker-controlled request bodies on bodyless method aliases. This can corrupt request semantics where the receiving service processes bodies on `GET`, `DELETE`, `HEAD`, or `OPTIONS`. For direct low-level Node HTTP adapter usage, inherited `proxy` can route requests through an attacker-controlled proxy. Depending on axios version, target scheme, and proxy behavior, this can expose request URLs, headers, and bodies or allow traffic modification. For direct `resolveConfig` or browser-adapter helper usage, inherited `paramsSerializer` can be invoked with request params, allowing attacker-controlled URL serialization. This was not reproduced through normal high-level axios calls on `1.15.2+`. ## Affected Functionality Affected normal API: - `axios.get(url[, config])` - `axios.delete(url[, config])` - `axios.head(url[, config])` - `axios.options(url[, config])` Affected low-level usage: - Direct calls to `axios/lib/adapters/http.js` or `axios/unsafe/adapters/http.js` with plain configs and no own `proxy`. - Direct calls to `axios/unsafe/helpers/re Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade axios to 1.18.0, 0.33.0 or later.
follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets. ## Summary When an HTTP request follows a cross-domain redirect (301/302/307/308), `follow-redirects` only strips `authorization`, `proxy-authorization`, and `cookie` headers (matched by regex at index.js:469-476). Any custom authentication header (e.g., `X-API-Key`, `X-Auth-Token`, `Api-Key`, `Token`) is forwarded verbatim to the redirect target. Since `follow-redirects` is the redirect-handling dependency for **axios** (105K+ stars), this vulnerability affects the entire axios ecosystem. ## Affected Code `index.js`, lines 469-476: ```javascript if (redirectUrl.protocol !== currentUrlParts.protocol && redirectUrl.protocol !== "https:" || redirectUrl.host !== currentHost && !isSubdomain(redirectUrl.host, currentHost)) { removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers); } ``` The regex only matches `authorization`, `proxy-authorization`, and `cookie`. Custom headers like `X-API-Key` are not matched. ## Attack Scenario 1. App uses axios with custom auth header: `headers: { 'X-API-Key': 'sk-live-secret123' }` 2. Server returns `302 Location: https://evil.com/steal` 3. follow-redirects sends `X-API-Key: sk-live-secret123` to `evil.com` 4. Attacker captures the API key ## Impact Any custom auth header set via axios leaks on cross-domain redirect. Extremely common pattern. Affects all axios users in Node.js. ## Suggested Fix Add a `sensitiveHeaders` option that users can extend, or strip ALL non-standard headers on cross-domain redirect. ## Disclosure Source code review, manually verified. Found 2026-03-20. Located in package-lock.json. Flagged by trivy as medium severity.
Fix: Upgrade follow-redirects to 1.16.0 or later.
Range affected: <=8.5.1. https://github.com/advisories/GHSA-qwph-4952-7xr6 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade jsonwebtoken to 9.0.3.
Range affected: <=8.5.1. https://github.com/advisories/GHSA-hjrf-2m68-5959 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade jsonwebtoken to 9.0.3.
Range affected: <=4.17.23. https://github.com/advisories/GHSA-xxjr-mmjv-4gpg Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade lodash to 4.18.1.
Range affected: <=4.17.23. https://github.com/advisories/GHSA-f23m-r3pf-42rh Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade lodash to 4.18.1.
Range affected: 1.0.0 - 1.2.5. https://github.com/advisories/GHSA-vh95-rmgr-6w4m Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade minimist to 1.2.8.
Range affected: <=4.17.23. https://github.com/advisories/GHSA-29mw-wpgm-hmr9 Located in package-lock.json. Flagged by npm-audit as medium severity.
Fix: Run npm audit fix — upgrade lodash to 4.18.1.
Range affected: <=0.32.0. https://github.com/advisories/GHSA-xhjh-pmcv-23jw Located in package-lock.json. Flagged by npm-audit as low severity.
Fix: Run npm audit fix — upgrade axios to 1.19.0.
node-fetch: size of data after fetch() JS thread leads to DoS. node-fetch before versions 2.6.1 and 3.0.0-beta.9 did not honor the size option after following a redirect, which means that when a content size was over the limit, a FetchError would never get thrown and the process would end without failure. For most people, this fix will have a little or no impact. However, if you are relying on node-fetch to gate files above a size, the impact could be significant, for example: If you don't double-check the size of the data after fetch() has completed, your JS thread could get tied up doing work on a large file (DoS) and/or cost you money in computing. Located in package-lock.json. Flagged by trivy as low severity.
Fix: Upgrade node-fetch to 2.6.1, 3.0.0-beta.9 or later.
axios: Axios: Incorrect null byte handling can lead to data integrity issues. Axios is a promise based HTTP client for the browser and Node.js. Prior to 1.15.1 and 0.31.1, the encode() function in lib/helpers/AxiosURLSearchParams.js contains a character mapping (charMap) at line 21 that reverses the safe percent-encoding of null bytes. After encodeURIComponent('\x00') correctly produces the safe sequence %00, the charMap entry '%00': '\x00' converts it back to a raw null byte. Primary impact is limited because the standard axios request flow is not affected. This vulnerability is fixed in 1.15.1 and 0.31.1. Located in package-lock.json. Flagged by trivy as low severity.
Fix: Upgrade axios to 1.15.1, 0.31.1 or later.
Range affected: <=2.6.6. https://github.com/advisories/GHSA-w7rc-rwvf-8q5r Located in package-lock.json. Flagged by npm-audit as low severity.
Fix: Run npm audit fix — upgrade node-fetch to 2.7.0.