CVE-2025-68458: 
JavaScript vulnerability analysis and mitigation

Overview

CVE-2025-68458 is a Server-Side Request Forgery (SSRF) vulnerability in webpack's experimental buildHttp feature (HttpUriPlugin) that allows attackers to bypass the allowedUris allow-list by crafting URLs with userinfo (username:password@host) syntax. It affects webpack versions 5.49.0 through 5.104.0 (npm package). The vulnerability was published on February 5, 2026, and patched in version 5.104.1. It carries a CVSS v3.1 base score of 3.7 (Low) (GitHub Advisory, Red Hat Bugzilla).

Technical details

The root cause (CWE-918) is a mismatch between how allowedUris validation is performed and how the actual HTTP request destination is resolved. Webpack's HttpUriPlugin validates the raw URI string using a prefix check (e.g., uri.startsWith(allowed)), but the actual network request is dispatched after parsing the URL with new URL(uri), which interprets the authority as the segment after the @ symbol in userinfo syntax. For example, the crafted URL http://127.0.0.1:9000@127.0.0.1:9100/secret.js passes the prefix check against an allow-list of http://127.0.0.1:9000, but new URL() resolves the actual request destination as http://127.0.0.1:9100. Exploitation requires that an attacker can influence the HTTP(S) import specifier in the project — via source code contribution, dependency manipulation, or configuration tampering — and that a developer triggers a build (GitHub Advisory, Red Hat Bugzilla).

Impact

Successful exploitation allows outbound HTTP requests from the build environment to internal-only services or arbitrary external endpoints that are outside the configured allowedUris allow-list. The fetched response is treated as JavaScript module source code and bundled directly into build outputs, enabling supply-chain contamination where malicious or sensitive content reaches downstream consumers of the build artifacts. Additionally, the fetched content is persisted in the buildHttp cache (lockfile and cache directory), increasing the risk of persistent information leakage. Availability is not impacted, but both confidentiality and integrity are partially compromised (GitHub Advisory).

Exploitability

A public proof-of-concept (PoC) is available in the GitHub Security Advisory, demonstrating the bypass using a localhost-constrained setup. There is no evidence of in-the-wild exploitation at this time, and no threat actor attribution has been reported. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.008% (0.000080), placing it in the 2nd percentile for exploitation likelihood (GitHub Advisory, Feedly).

Exploitation steps

  1. Identify a target project: Locate a project using webpack 5.49.0–5.104.0 with experiments.buildHttp enabled and allowedUris configured as a security boundary.
  2. Gain influence over HTTP(S) import specifiers: Introduce a crafted import statement via a source code contribution (e.g., pull request), a malicious dependency, or a configuration file modification.
  3. Craft the bypass URL: Construct a URL using userinfo syntax so that the string begins with an allow-listed prefix but the actual request target (after @) points to an internal or unauthorized endpoint. Example: http://<allowed-host>:<allowed-port>@<internal-host>:<internal-port>/secret.js.
  4. Trigger a build: Cause a developer or CI/CD pipeline to run webpack with the malicious import specifier present. The startsWith() prefix check passes, and webpack fetches the resource from the internal endpoint.
  5. Collect exfiltrated data: The response from the internal endpoint is bundled into the build output (bundle.js) and persisted in the buildHttp cache and lockfile, where the attacker can retrieve it or where it may be distributed to downstream consumers (GitHub Advisory).

Indicators of compromise

  • Network: Unexpected outbound HTTP requests from the build machine to internal services or non-allow-listed endpoints during webpack build execution; requests to hosts/ports not present in the allowedUris configuration.
  • File System: Build output (bundle.js or equivalent) containing content sourced from internal endpoints or unexpected external hosts; buildHttp cache directory (e.g., .buildHttp-cache/) containing files with content from non-allow-listed sources; webpack lockfile (webpack.lock) referencing URLs with userinfo (@) syntax.
  • Logs: Webpack build logs showing HTTP fetch activity to hosts not in allowedUris; server access logs on internal services showing unexpected GET requests from the build host during build time.
  • Configuration: Import statements in source files or dependencies containing URLs with userinfo syntax (e.g., http://user:pass@host/path.js or http://allowedhost@internalhost/path.js) (GitHub Advisory).

Mitigation and workarounds

Upgrade webpack to version 5.104.1 or later, which fixes the allow-list bypass by properly parsing URLs before validation rather than relying on raw string prefix checks (GitHub Advisory, Red Hat Bugzilla). If upgrading immediately is not possible, consider the following interim mitigations:

  • Disable experiments.buildHttp if it is not actively required.
  • Implement network egress controls on build environments to restrict outbound connections to only approved endpoints.
  • Restrict contributor permissions and review dependency changes to prevent injection of malicious HTTP import specifiers.
  • Audit allowedUris configurations and build outputs/caches for unexpected external content.

IBM has also released patches for affected products including IBM Decision Optimization for Cloud Pak for Data, IBM watsonx Orchestrate Developer Edition, IBM Guardium Data Security Center, and IBM API Connect (IBM Advisory).

Community reactions

The vulnerability was reported by researcher HanJeouk and reviewed for remediation by alexander-akait (a webpack maintainer), with the advisory published by bjohansebas on February 5, 2026 (GitHub Advisory). Red Hat tracked the issue via Bugzilla with a large CC list of product teams, indicating broad downstream impact across the Red Hat ecosystem (Red Hat Bugzilla). IBM subsequently issued multiple security bulletins for affected products. The CVSS score of 3.7 (Low) reflects the high attack complexity and required user interaction, which has limited broader community alarm despite the supply-chain contamination risk.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

node-webpack

Affected

sid

node-webpack: 5.105.4+dfsg1+~cs15.13.23-2

Fixed

trixie

node-webpack

Affected

Ubuntu

Unknown

bionic (esm-apps)

node-webpack

Unknown

devel

node-webpack

Unknown

focal (esm-apps)

node-webpack

Unknown

jammy

node-webpack

Unknown

jammy (esm-apps)

node-webpack

Unknown

noble

node-webpack

Unknown

noble (esm-apps)

node-webpack

Unknown

resolute

node-webpack

Unknown

RHEL / CentOS

Fixed

OpenShift

el9:odf4/cephcsi-rhel9-0:v4.16.36

Fixed

RHEL 8

grafana.src

Affected

RHEL 9

gjs.src

Affected

RHEL 10

grafana.src

Affected

Source: This report was generated using AI

Related JavaScript vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-966w-4vpf-p7hcHIGH7.1
  • JavaScript logoJavaScript
  • @aloma.io/aloma
NoYesOct 25, 2026
GHSA-mrwp-f3q8-3g9pMEDIUM5.9
  • JavaScript logoJavaScript
  • follow-redirects
NoYesOct 25, 2026
GHSA-hfm3-x63j-7fxpHIGHN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/migrate
NoYesOct 25, 2026
GHSA-6244-vvv9-76f5MEDIUMN/A
  • JavaScript logoJavaScript
  • @payload-auth-link/plugin
NoYesOct 25, 2026
GHSA-q53q-qg98-p9jfHIGHN/A
  • JavaScript logoJavaScript
  • llm-fw
NoYesOct 25, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management