@@ -44,32 +44,26 @@ public class ApplicationModuleImpl extends SinkModuleBase implements Application
4444
4545 private static final String CONTEXT_LOADER_LISTENER =
4646 "org.springframework.web.context.ContextLoaderListener" ;
47-
4847 private static final String DISPATCHER_SERVLET =
4948 "org.springframework.web.servlet.DispatcherServlet" ;
50-
5149 private static final String DEFAULT_HTML_ESCAPE = "defaultHtmlEscape" ;
52-
53- private static final String TOMCAT_MANAGER_APPLICATION = "Tomcat Manager Application" ;
54-
5550 private static final String LISTINGS_PATTERN = "<param-name>listings</param-name>" ;
56-
5751 private static final String SESSION_TIMEOUT_START_TAG = "<session-timeout>" ;
58-
5952 private static final String SESSION_TIMEOUT_END_TAG = "</session-timeout>" ;
60-
6153 private static final String SECURITY_CONSTRAINT_START_TAG = "<security-constraint>" ;
62-
6354 private static final String SECURITY_CONSTRAINT_END_TAG = "</security-constraint>" ;
64-
6555 public static final String PARAM_VALUE_START_TAG = "<param-value>" ;
66-
6756 public static final String PARAM_VALUE_END_TAG = "</param-value>" ;
68-
57+ public static final String DISPLAY_NAME_START_TAG = "<display-name>" ;
58+ public static final String DISPLAY_NAME_END_TAG = "</display-name>" ;
59+ static final String TOMCAT_MANAGER_APP = "Tomcat Manager Application" ;
60+ private static final String TOMCAT_MANAGER_APP_PATTERN =
61+ DISPLAY_NAME_START_TAG + TOMCAT_MANAGER_APP + DISPLAY_NAME_END_TAG ;
62+ static final String TOMCAT_HOST_MANAGER_APP = "Tomcat Host Manager Application" ;
63+ private static final String TOMCAT_HOST_MANAGER_APP_PATTERN =
64+ DISPLAY_NAME_START_TAG + TOMCAT_HOST_MANAGER_APP + DISPLAY_NAME_END_TAG ;
6965 public static final String WEB_INF = "WEB-INF" ;
70-
7166 public static final String WEB_XML = "web.xml" ;
72-
7367 static final String SESSION_REWRITING_EVIDENCE_VALUE = "Servlet URL Session Tracking Mode" ;
7468
7569 private static final Pattern PATTERN =
@@ -78,7 +72,8 @@ public class ApplicationModuleImpl extends SinkModuleBase implements Application
7872 CONTEXT_LOADER_LISTENER ,
7973 DISPATCHER_SERVLET ,
8074 DEFAULT_HTML_ESCAPE ,
81- TOMCAT_MANAGER_APPLICATION ,
75+ TOMCAT_MANAGER_APP_PATTERN ,
76+ TOMCAT_HOST_MANAGER_APP_PATTERN ,
8277 LISTINGS_PATTERN ,
8378 SESSION_TIMEOUT_START_TAG ,
8479 SECURITY_CONSTRAINT_START_TAG )
@@ -150,8 +145,11 @@ private void checkWebXmlVulnerabilities(@Nonnull Path path, AgentSpan span) {
150145 case DEFAULT_HTML_ESCAPE :
151146 defaultHtmlEscapeIndex = matcher .start ();
152147 break ;
153- case TOMCAT_MANAGER_APPLICATION :
154- reportAdminConsoleActive (span );
148+ case TOMCAT_MANAGER_APP_PATTERN :
149+ reportAdminConsoleActive (span , TOMCAT_MANAGER_APP );
150+ break ;
151+ case TOMCAT_HOST_MANAGER_APP_PATTERN :
152+ reportAdminConsoleActive (span , TOMCAT_HOST_MANAGER_APP );
155153 break ;
156154 case LISTINGS_PATTERN :
157155 checkDirectoryListingLeak (webXmlContent , matcher .start (), span );
@@ -196,14 +194,14 @@ private void checkDefaultHtmlEscapeInvalid(
196194 }
197195 }
198196
199- private void reportAdminConsoleActive (AgentSpan span ) {
197+ private void reportAdminConsoleActive (AgentSpan span , final String evidence ) {
200198 // No deduplication is needed as same service can have multiple applications
201199 reporter .report (
202200 span ,
203201 new Vulnerability (
204202 VulnerabilityType .ADMIN_CONSOLE_ACTIVE ,
205203 Location .forSpan (span ),
206- new Evidence ("Tomcat Manager Application" )));
204+ new Evidence (evidence )));
207205 }
208206
209207 private void checkDirectoryListingLeak (
0 commit comments