diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | netx/net/sourceforge/jnlp/services/XExtendedService.java | 6 | ||||
-rw-r--r-- | netx/net/sourceforge/jnlp/services/XFileContents.java | 3 |
4 files changed, 16 insertions, 3 deletions
@@ -130,6 +130,15 @@ 2011-07-14 Omair Majid <[email protected]> + RH718170, CVE-2011-2514: Java Web Start security warning dialog + manipulation + * netx/net/sourceforge/jnlp/services/XExtendedService.java + (openFile): Create XContents based on a copy of the File object to prevent + overloaded File classes from mangling the name. + (XFileContents): Create a separate copy of File object for local use. + +2011-07-14 Omair Majid <[email protected]> + RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications * netx/net/sourceforge/jnlp/runtime/CachedJarFileCallback.java: New file. @@ -11,6 +11,7 @@ CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY New in release 1.2 (2011-XX-XX): * Security updates: - RH718164, CVE-2011-2513: Home directory path disclosure to untrusted applications + - RH718170, CVE-2011-2514: Java Web Start security warning dialog manipulation New in release 1.1 (2011-XX-XX): * Security updates diff --git a/netx/net/sourceforge/jnlp/services/XExtendedService.java b/netx/net/sourceforge/jnlp/services/XExtendedService.java index f03c199..1ac6ed8 100644 --- a/netx/net/sourceforge/jnlp/services/XExtendedService.java +++ b/netx/net/sourceforge/jnlp/services/XExtendedService.java @@ -34,10 +34,12 @@ public class XExtendedService implements ExtendedService { public FileContents openFile(File file) throws IOException { + File secureFile = new File(file.getPath()); + /* FIXME: this opens a file with read/write mode, not just read or write */ - if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { file.getAbsolutePath() })) { + if (ServiceUtil.checkAccess(AccessType.READ_FILE, new Object[] { secureFile.getAbsolutePath() })) { return (FileContents) ServiceUtil.createPrivilegedProxy(FileContents.class, - new XFileContents(file)); + new XFileContents(secureFile)); } else { return null; } diff --git a/netx/net/sourceforge/jnlp/services/XFileContents.java b/netx/net/sourceforge/jnlp/services/XFileContents.java index 5e8fed6..de1fe53 100644 --- a/netx/net/sourceforge/jnlp/services/XFileContents.java +++ b/netx/net/sourceforge/jnlp/services/XFileContents.java @@ -34,7 +34,8 @@ class XFileContents implements FileContents { * Create a file contents implementation for the file. */ protected XFileContents(File file) { - this.file = file; + // create a safe copy + this.file = new File(file.getPath()); } /** |