[ 
https://issues.apache.org/jira/browse/HADOOP-18235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17615954#comment-17615954
 ] 

Clay B. commented on HADOOP-18235:
----------------------------------

[[email protected]] and [~lmccay] Thank you for the direction here. For 
reference, my thoughts for testing was to try this in an environment as it 
looked like was done in HADOOP-11934. Should that be a reasonable test? It 
looks involved so I expect that to take me a few days of tinkering which I'll 
update this JIRA with.

[~lmccay] you say you had an issue with the proposed ordering on the GitHub 
review. To confirm you mean trying the touch, chmod before write? If so, did 
you find exceptions when working on HADOOP-11934 or recall the general issue 
type I should be on the watch for?

> vulnerability:  we may leak sensitive information in LocalKeyStoreProvider
> --------------------------------------------------------------------------
>
>                 Key: HADOOP-18235
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18235
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: lujie
>            Assignee: Clay B.
>            Priority: Critical
>              Labels: pull-request-available
>
> Currently, we implement flush like:
> {code:java}
> //  public void flush() throws IOException {
>     super.flush();
>     if (LOG.isDebugEnabled()) {
>       LOG.debug("Resetting permissions to '" + permissions + "'");
>     }
>     if (!Shell.WINDOWS) {
>       Files.setPosixFilePermissions(Paths.get(file.getCanonicalPath()),
>           permissions);
>     } else {
>       // FsPermission expects a 10-character string because of the leading
>       // directory indicator, i.e. "drwx------". The JDK toString method 
> returns
>       // a 9-character string, so prepend a leading character.
>       FsPermission fsPermission = FsPermission.valueOf(
>           "-" + PosixFilePermissions.toString(permissions));
>       FileUtil.setPermission(file, fsPermission);
>     }
>   } {code}
> we wirite the Credential first, then set permission.
> The correct order is setPermission first, then write Credential .
> Otherswise, we may leak Credential . For example, the origin perms of file is 
> 755(default on linux),  when the Credential  is flushed, Credential can be 
> leaked when 
>  
> 1)between flush and setPermission,  others have a chance to access the file.
> 2)  CredentialShell(or the machine node )  crash between flush and 
> setPermission,   the file permission is 755 for ever before we run the 
> CredentialShell again.
>  



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to