CVE-2025-69725Medium· 4.7▾ Sunlitchi has an open redirect vulnerability in the RedirectSlashes middleware
▾ Sunlit zone — Low / medium · no exploitation signal
impact 25.9 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Aug 7.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
Last analysed / modified upstream
0.2%
0.2% → 0.2%
The RedirectSlashes function in middleware/strip.go does not perform correct input validation and can lead to an open redirect vulnerability.
The RedirectSlashes function performs a Trim to all forward slash (/) characters, while prepending a single one at the begining of the path (Line 52).
However, it does not trim backslashes (\).
File: middleware/strip.go
41: func RedirectSlashes(next http.Handler) http.Handler {
...
51: // Trim all leading and trailing slashes (e.g., "//evil.com", "/some/path//")
52: path = "/" + strings.Trim(path, "/")
...
62: }
Also, from version 5.2.2 onwards the RedirectSlashes function does not take into consideration the Host Header in the redirect response returned. This was done in order to combat another [vulnerability](https://github.com/go-chi/chi/security/advisories/GHSA-vrw8-fxc6-2r93).
The above make it possible for a response in the following form:
HTTP/1.1 301 Moved Permanently
Location: /\evil.com
The /\evil.com will be transformed by most browsers (Chrome, Firefox, etc. not Safari) into //evil.com which is a protocol relative URL and will result in a redirect to evil.com, essentially making it an open redirect vulnerability.
A minimal working example can be seen below.
package main
import (
"fmt"
"net/http"
"github.com/go-chi/chi/v5"
"github.com/go-chi/chi/v5/middleware"
)
func main() {
r := chi.NewRouter()
r.Use(middleware.RedirectSlashes)
r.Get("/*", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
})
fmt.Println("Server starting on port 8081...")
if err := http.ListenAndServe(":8081", r); err != nil {
fmt.Printf("Error starting server: %v\n", err)
}
}
And when we request the path /\evil.com (needs a second backslash or URL encoding in the terminal), the HTTP Redirect Location is just /\evil.com without any domain/Host information.
$ curl -I localhost:8081/\\evil.com/
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=utf-8
Location: /\evil.com
$ curl -I localhost:8081/%5Cevil.com/
HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=utf-8
Location: /\evil.com
This opened in a browser (Chrome, Firefox) will result in a transformation to //evil.com which in turn will result in a redirect to evil.com.
<img width="200" alt="image-20250829115619807" src="https://github.com/user-attachments/assets/44aedad1-64b6-4660-8b26-fad9b4eca036" />
This essentially consists of an open redirect vulnerability, provided that victim users use the most popular browsers (Chrome, Firefox, etc. It does not work in e.g. Safari).
The attacker can construct a malicious URL on a domain of a legitimate website and send it to the victim user. The victim users thinking that they will click on a legitimate website's URL, they will unknowingly be reidrected to an attacker controlled website.
This can lead to credential theft if the victim gets redirected to a phishing website, to malware that is hosted on the attacker controlled website etc. Also, it has a greate reputation / business impact for the affected legitimate website.
In order to exploit this vulnerability the attacker does not need to be authenticated or have ay other priviledge / knowledge regarding the affected application.
CVSS Score: 4.7 (Medium)
github.com/go-chi/chi/v5 >= 5.2.2, < 5.2.4Upgrade to a patched release:
github.com/go-chi/chi/v5 5.2.4Connected by shared product, vendor, weakness, or advisory.
CVE-2025-71405Mediumchi Allows Host Header Injection which Leads to Open Redirect in RedirectSlashes
CVE-2026-72816Medium· 6.5go-chi/chi through 5.2.1 contains an IP spoofing vulnerability in the RealIP middleware (middleware/realip.go)
CVE-2026-72817Medium· 6.5go-chi/chi versions 0.9.0 before 5.3.0 contains an IP spoofing vulnerability in the RealIP middleware, which resolves the request source IP (Request.RemoteAddr) using the first IP in the X-Forwarded-For header without validating trusted …
CVE-2026-72815Mediumchi Has an IP Spoofing Vulnerability in `middleware.RealIP`
GO-2026-5777NoneChi's RealIP Middleware allows IP spoofing via unvalidated X-Forwarded-For header in github.com/go-chi/chi
GO-2026-5775NoneChi Middleware vulnerable to IP spoofing via X-Forwarded-For header in github.com/go-chi/chi