[ 
https://issues.apache.org/jira/browse/HBASE-15946?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Mackrory updated HBASE-15946:
----------------------------------
    Attachment: HBASE-15946-v1.patch

I want to do a bit more testing on this patch and clean up a few things, but 
here's the basic idea.

This adds a couple of things to the public interface of HFilePrettyPrinter to 
make it usable directly from storeFile.jsp. It also validates that the file is 
in HBase's root dir, which brings with it some caveats I want to make sure are 
safe:
* It can be a fully qualified URL (e.g. hdfs://namenode:8020/hbase), relative 
to the filesystem in hbase.rootdir or fs.defaultFS. This is how the RS Web UI 
will pass it in. If we need to tolerate different hostnames or addresses that 
would resolve to the same filesystem, this validation needs to get a lot more 
complex.
* It can be an absolute path in the same filesystem. This makes more sense for 
CLI usage.
* It can't be a relative URL. I can't think of how this could reasonably end up 
 getting provided. If it would be relative to the the hbase rootdir, we can 
easily verify that the file is there. If it would be relative to something 
else, that would need to be handled.

Also need to be careful here about cases where /hbase is the root but /hbaseXYZ 
exists, since I'm just appending strings and checking that the beginning is the 
same. If the relative path XYZ was provided, the string would indeed begin with 
HBase root.



> Eliminate possible security concerns in RS web UI's store file metrics
> ----------------------------------------------------------------------
>
>                 Key: HBASE-15946
>                 URL: https://issues.apache.org/jira/browse/HBASE-15946
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Sean Mackrory
>            Assignee: Mikhail Antonov
>         Attachments: HBASE-15946-v1.patch
>
>
> More from static code analysis: it warns about the invoking of a separate 
> command ("hbase hfile -s -f ...") as a possible security issue in 
> hbase-server/src/main/resources/hbase-webapps/regionserver/storeFile.jsp.
> It looks to me like one cannot inject arbitrary shell script or even 
> arbitrary arguments: ProcessBuilder makes that fairly safe and only allows 
> the user to specify the argument that comes after -f. However that does 
> potentially allow them to have the daemon's user access files they shouldn't 
> be able to touch, albeit only for reading.
> To more explicitly eliminate any threats here, we should add some validation 
> that the file is at least within HBase's root directory and use the Java API 
> directly instead of invoking a separate executable.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to