Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XXE in UpdateMessageReader.java via Man-in-the-Middle (MitM) #829

Closed
prodigysml opened this issue Sep 29, 2018 · 5 comments
Closed

XXE in UpdateMessageReader.java via Man-in-the-Middle (MitM) #829

prodigysml opened this issue Sep 29, 2018 · 5 comments

Comments

@prodigysml
Copy link

The Issue

An XML External Entity attack is a type of attack against an application that parses XML input. This attack occurs when XML input containing a reference to an external entity is processed by a weakly configured XML parser. This attack may lead to the disclosure of confidential data, denial of service, server side request forgery, port scanning from the perspective of the machine where the parser is located, and other system impacts.

Where the Issue Occurred

The following code snippets display the usage of XMLReader without securely disabling entities:

An attacker can Man-in-the-Middle (MitM) the HTTP call to the URL below:

private static final String DEFAULT_UPDATE_URL = "http://update.frostwire.com";

Remediation

https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet

@Aholicknight
Copy link
Contributor

I don't see this being a issue. There is no login for the frostwire site, but you could steal there cookies.

@gubatron
Copy link
Collaborator

gubatron commented May 1, 2019

the issue is a man in the middle attack, where somehow they could serve malicious XML and have FrostWire parse a malicious update URL. But I believe this shouldn't be the case as now the update URL is HTTPS based

@gubatron
Copy link
Collaborator

gubatron commented May 1, 2019

I also believe in recent updates we changed the XMLReader with the one recommended for JDK12, perhaps the new one SAXParserFactory.newDefaultInstance().newSAXParser().getXMLReader() doesn't have the XXE issues.

@Aholicknight
Copy link
Contributor

@gubatron if the update URL is HTTPS base, will this issue still exist?

@gubatron
Copy link
Collaborator

I think it's significantly harder, but then again, we changed the XML Reader class for a new one that comes with Java 12.

I'm gonna go ahead and close this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants