RFR: JDK-8068155: [Findbugs]new sun.jvm.hotspot.utilities.ObjectReader() creates a sun.jvm.hotspot.utilities.ProcImageClassLoader classloader, which should be performed within a doPrivileged block
Harsha wardhana B
harsha.wardhana.b at oracle.com
Thu Sep 15 03:38:40 UTC 2016
Hello,
It is not required that SA should be run under security manager to
address this change. Any standalone application when run under security
manager can use ObjectReader class to exploit vulnerabilities. That is
something that should be evaluated.
With the below fix any application when run under security manager
without RuntimePermission.createClassLoader will be able to create
ProcImageClassLoader. We need to check if it is something that is
desired and what vulnerabilities can be exploited, if any.
-Harsha
On 9/14/2016 5:58 PM, Sharath Ballal wrote:
> David,
>> That aside, the code uses raw types, which is bad. It should also be able to retain the this(...) invocation e.g (I haven't compiled this):
> This works, Thanks.
>
>
> -Sharath Ballal
>
>
>
> -----Original Message-----
> From: David Holmes
> Sent: Wednesday, September 14, 2016 3:07 PM
> To: Sharath Ballal;serviceability-dev at openjdk.java.net
> Subject: Re: RFR: JDK-8068155: [Findbugs]new sun.jvm.hotspot.utilities.ObjectReader() creates a sun.jvm.hotspot.utilities.ProcImageClassLoader classloader, which should be performed within a doPrivileged block
>
> Hi Sharath,
>
> On 14/09/2016 6:14 PM, Sharath Ballal wrote:
>> Hello,
>>
>> Please review this fix to add creation of classloader code into
>> doPrivileged block
>>
>> Issue:https://bugs.openjdk.java.net/browse/JDK-8068155
>>
>> Webrev:http://cr.openjdk.java.net/~sballal/8068155/webrev.00/
> First I'm also curious about why FindBugs thinks this is needed. AFAIK you use the doPrivileged to allow you to create the classLoader when it would otherwise fail if a SecurityManager were present.
>
> That aside, the code uses raw types, which is bad. It should also be able to retain the this(...) invocation e.g (I haven't compiled this):
>
> public ObjectReader() {
> this(AccessController.doPrivileged(
> new PrivilegedAction<ClassLoader>() {
> public ClassLoader run() {
> return new ProcImageClassLoader();
> }
> }
> ));
> }
>
> Thanks,
> David
>
>> -Sharath Ballal
>>
>>
>>
>>
>>
More information about the serviceability-dev
mailing list