Miggo Logo

CVE-2023-41080:
Apache Tomcat Open Redirect vulnerability

6.1

CVSS Score
3.1

Basic Information

EPSS Score
0.93126%
Published
8/25/2023
Updated
11/11/2023
KEV Status
No
Technology
TechnologyJava

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
org.apache.tomcat:tomcatmaven>= 11.0.0-M1, < 11.0.0-M1111.0.0-M11
org.apache.tomcat:tomcatmaven>= 10.1.0-M1, < 10.1.1310.1.13
org.apache.tomcat:tomcatmaven>= 9.0.0-M1, < 9.0.809.0.80
org.apache.tomcat:tomcatmaven>= 8.5.0, < 8.5.938.5.93
org.apache.tomcat.embed:tomcat-embed-coremaven>= 8.5.0, < 8.5.938.5.93
org.apache.tomcat.embed:tomcat-embed-coremaven>= 9.0.0-M1, < 9.0.809.0.80
org.apache.tomcat.embed:tomcat-embed-coremaven>= 10.1.0-M1, < 10.1.1310.1.13
org.apache.tomcat.embed:tomcat-embed-coremaven>= 11.0.0-M1, < 11.0.0-M1111.0.0-M11

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from how FORM authentication handles redirects. The commit diff shows a critical modification in FormAuthenticator.java's savedRequestURL method where a loop was added to strip leading slashes to prevent protocol-relative redirects. Prior to this fix, the method would return URLs like '//evil.com' when reconstructing the saved request URL from session data, which browsers interpret as a protocol-relative URL inheriting the current scheme (HTTP/HTTPS). This matches the CWE-601 description of open redirects via unvalidated URLs.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

URL R**ir**tion to Untrust** Sit* ('Op*n R**ir**t') vuln*r**ility in *ORM *ut**nti**tion ***tur* *p**** Tom**t. T*is issu* *****ts *p**** Tom**t: *rom **.*.*-M* t*rou** **.*.*-M**, *rom **.*.*-M* t*rou** **.*.**, *rom *.*.*-M* t*rou** *.*.** *n* *rom

Reasoning

T** vuln*r**ility st*ms *rom *ow *ORM *ut**nti**tion **n*l*s r**ir**ts. T** *ommit *i** s*ows * *riti**l mo*i*i**tion in `*orm*ut**nti**tor.j*v*`'s s*v**R*qu*stURL m*t*o* w**r* * loop w*s ***** to strip l***in* sl*s**s to pr*v*nt proto*ol-r*l*tiv* r*