...
There are two fallacies in this noncompliant code example. First, the doPrivileged
method is being called from inside the openPasswordFile
method. The openPasswordFile
method is privileged and returns a FileInputStream
reference to its caller. This allows any caller to call openPasswordFile()
directly and obtain a reference to the sensitive file due to the inherent privileges present within possessed by the corresponding code. Second, the name of the sensitive password file is user controllable which introduces other risks such as unaccounted misuse of miscellaneous sensitive files.
...