aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--NEWS1
-rw-r--r--netx/net/sourceforge/jnlp/services/XExtendedService.java6
-rw-r--r--netx/net/sourceforge/jnlp/services/XFileContents.java3
4 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 40d3c15..ea60f35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
diff --git a/NEWS b/NEWS
index 1aaf426..181eb3f 100644
--- a/NEWS
+++ b/NEWS
@@ -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());
}
/**