Here is the webrev for the changes:

 http://cr.openjdk.java.net/~lancea/8216362/webrev.00/index.html 
<http://cr.openjdk.java.net/~lancea/8216362/webrev.00/index.html>

Best
Lance
> On Jan 9, 2019, at 12:13 PM, Sean Mullan <sean.mul...@oracle.com> wrote:
> 
> On 1/8/19 7:17 PM, Philipp Kunz wrote:
>> Manifest.read throws an exception with the jar file name passed to the 
>> constructor the manifest was constructed with and not passed to the call to 
>> the read that throws the exception because the jarFilename variable is not 
>> reset after successful construction with read and will be used by subsequent 
>> calls to read if read is called (again) after the manifest has been 
>> constructed. The call to the constructor could be in a different context 
>> than the call to read and the jar file name could therefore be exposed in an 
>> unexpected context. After I first thought it was just annoying to get an 
>> unrelated jar file name in an exception message I see now a security concern 
>> as well.
> 
> That's a good point (and good catch!). I think we need to adjust the code so 
> that if read is called and it throws an Exception it only contains the jar 
> file name if called by the constructors in which the jar file name is passed 
> as a parameter. Perhaps break up the read method into a private and public 
> one with the private one containing an additional boolean parameter that is 
> set to true if called by the constructor, otherwise it is false. If the 
> boolean parameter is true, the jar file name is put in the exception, 
> otherwise it is not.
> 
> I also think we should fix this in 12, so I raised the priority to 3.
> 
> --Sean
>> At first glance and in terms of expectable code changes to the questionable 
>> constructor of Manifest the above mentioned seems to be overlapping with 
>> issue JDK-8216362 but then JDK-8216362 is about the jar file name missing in 
>> an error message when it should be present and not the other way round. 
>> Attached is a patch for JDK-8216362 as it is described at the moment.
>> Philipp
>> On Tue, 2019-01-08 at 13:07 -0500, Sean Mullan wrote:
>>> In this case, the caller is passing in the filename through the public
>>> JarFile API so as long as it is not modified it should be ok. The
>>> concerns I raised previously are situations where the caller did not
>>> pass in the file or the JDK converts a relative path to an absolute
>>> path, which could reveal sensitive details about the filesystem.
>>> 
>>> --Sean

 <http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif> 
<http://oracle.com/us/design/oracle-email-sig-198324.gif>
 <http://oracle.com/us/design/oracle-email-sig-198324.gif>Lance Andersen| 
Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
lance.ander...@oracle.com <mailto:lance.ander...@oracle.com>



Reply via email to