On 13.11.2019 20:07, Mandy Chung wrote:
Thank you for all those changes. It fixed two of my reported bugs (JDK-8209005, JDK-8209078).

Thanks for filing these good reports.   JDK-8173978 resolved the issues reported by JDK-8209005 and JDK-8209078.
I'm happy I could help.
It also makes my suggested workaround for JDK-8230636 not longer possible. Thanks for picking that up too.

I just have a question about the requirement of MethodHandles.privateLookupIn: As it requires that the originating lookup has both PRIVATE and MODULE access, it sounds a lot like full privilege access. Should this be reworded?


The two bullets about the caller lookup object must have MODULE and PRIVATE are important explanation for it to require such access.

Maybe I can add a bullet to say "The caller lookup object must have full privilege access" and then move those two bullets as sub-bullets under it.

What do you think?
This is a good idea, because full privilege access is a new concept, and should be mentioned at the places where it is used.
Also, with the current specification, I don't see a way to abuse jdk.unsupported's privileged access into java.base (which IMHO caused the entire rework).

Thanks for looking at this.

Mandy

Shameless plug: I once asked on Stackoverflow if untrusted code running with a SecurityManager and -illegal-access=deny but granting |ReflectPermission("supressAccessChecks") |could escape the sandbox[1]. I found a way to escape the sandbox, which relies on the power of the Lookup returned by privateLookupIn. As this has been changed, I wonder if this escape was ever intended in the first place. Are there any resources out there that can help answer this question?

Thanks,
Johannes

[1]: https://stackoverflow.com/questions/51712903/is-it-safe-to-grant-untrusted-code-supressaccesschecks-when-illegal-access-de

Reply via email to