Lucene search
K

Milton Webdav 2.7.0.1 XXE Injection Vulnerability

🗓️ 02 Nov 2015 00:00:00Reported by Mikhail EgorovType 
zdt
 zdt
🔗 0day.today👁 35 Views

Milton Webdav 2.7.0.1 XXE Injection Vulnerability in Java librar

Related
Code
ReporterTitlePublishedViews
Family
0day.today
Apache Jackrabbit WebDAV XXE Exploit
27 May 201500:00
zdt
CNVD
Apache Jackrabbit XML External Entity Input Vulnerability
26 May 201500:00
cnvd
CNVD
Milton Webdav Information Disclosure Vulnerability
7 Nov 201500:00
cnvd
CVE
CVE-2015-1833
29 May 201515:00
cve
CVE
CVE-2015-7326
7 Jun 201714:00
cve
Cvelist
CVE-2015-1833
29 May 201515:00
cvelist
Cvelist
CVE-2015-7326
7 Jun 201714:00
cvelist
Debian
[SECURITY] [DSA 3298-1] jackrabbit security update
30 Jun 201522:38
debian
Debian CVE
CVE-2015-1833
29 May 201515:00
debiancve
Tenable Nessus
Debian DSA-3298-1 : jackrabbit - security update
1 Jul 201500:00
nessus
Rows per page
I've recently found vulnerability in Milton Webdav 2.7.0.1 (project page - http://milton.io/). Milton Webdav is a Java library for adding webdav capabilities to your applications.

Milton Webdav supports PROPFIND, PROPPATCH and LOCK methods. This Webdav methods expect XML in request body. Java classes io.milton.http.webdav.DefaultPropFindRequestFiledParser, io.milton.http.webdav.DefaultPropPatchParser and io.milton.http.LockInfoSaxHandler are responsible for parsing and processing incoming XML for PROPFIND, PROPPATCH and LOCK methods. To parse XML requests these classes use SAXParser from Xerces2-J library (http://xerces.apache.org/xerces2-j/) but failed to securely setup parameters for SAXParser.

Here is the code snippet from io.milton.http.webdav.DefaultPropFindRequestFiledParser.
..
@Override
    public PropertiesRequest getRequestedFields( InputStream in ) {
    final Set<QName> set = new LinkedHashSet<QName>();
        try {
            ByteArrayOutputStream bout = new ByteArrayOutputStream();
            StreamUtils.readTo( in, bout, false, true );
            byte[] arr = bout.toByteArray();
            if( arr.length > 1 ) {
                ByteArrayInputStream bin = new ByteArrayInputStream( arr );
                XMLReader reader = XMLReaderFactory.createXMLReader();
        reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
..

This code prohibits declaration of external parameter entities. At the same time general external entities and external DTDs are allowed.

Attacker can exploit this issue by adding DOCTYPE declaration to XML body of PROPFIND, PROPPATCH and LOCK methods that references external DTD or have general external entity declaration. Vulnerability allows attacker to read local files (list directory content), perform SSRF and DoS attacks. Exploit for CVE-2015-1833 written by me (https://www.exploit-db.com/exploits/37110/) with minor modifications could be used to exploit this issue.

Now vulnerability is patched. See commits b5851c1 and b41072b here https://github.com/miltonio/milton2. If you use Milton Webdav 2.7.0.1 or below, please, update to version 2.7.0.3.

#  0day.today [2018-01-09]  #

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

02 Nov 2015 00:00Current
0.3Low risk
Vulners AI Score0.3
EPSS0.31034
35