Yash Dodeja created HBASE-27812:
-----------------------------------

             Summary: Provide option in HBase UI to disable stack trace for 
security
                 Key: HBASE-27812
                 URL: https://issues.apache.org/jira/browse/HBASE-27812
             Project: HBase
          Issue Type: Improvement
          Components: UI
            Reporter: Yash Dodeja
            Assignee: Yash Dodeja


Uncaught server exceptions occur when providing parameter values that the 
server or servlet does not understand.
Physical paths, versioning information, stack traces' content, and other data 
can be gathered and used to help further an attack when improper error handling 
is present.

Applications should always fail safe in their designs. If an application fails 
to an unknown state, it is likely that an attacker may be able to exploit this 
indeterminate state to access unauthorized functionality, or worse, create, 
modify or destroy data. Error messages may also aid in the identification of 
other attacks such as buffer overflows and SQL injection, and can generally 
contribute to an overall weaker security posture.

For example, if we use a HTTPS web server and explicitly provide Host header 
with a wrong value, say attackers.com, we get the following response in UI:
{code:java}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/>
<title>Error 400 Host does not match SNI</title>
</head>
<body><h2>HTTP ERROR 400 Host does not match SNI</h2>
<table>
<tr><th>URI:</th><td>/tablesDetailed.jsp</td></tr>
<tr><th>STATUS:</th><td>400</td></tr>
<tr><th>MESSAGE:</th><td>Host does not match SNI</td></tr>
<tr><th>SERVLET:</th><td>-</td></tr>
<tr><th>CAUSED 
BY:</th><td>org.apache.hbase.thirdparty.org.eclipse.jetty.http.BadMessageException:
 400: Host does not match SNI</td></tr>
</table>
<h3>Caused 
by:</h3><pre>org.apache.hbase.thirdparty.org.eclipse.jetty.http.BadMessageException:
 400: Host does not match SNI
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.SecureRequestCustomizer.customize(SecureRequestCustomizer.java:279)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.SecureRequestCustomizer.customize(SecureRequestCustomizer.java:210)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:483)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:439)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
   at 
org.apache.hbase.thirdparty.org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
   at java.lang.Thread.run(Thread.java:750)
</pre>

</body>
</html> {code}
 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to