0dd - The Zero (0) Day Division

The Zero (0) Day Division is a group of security professionals working towards a common goal; securing open-source projects.

RunElite XXE

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.

RunElite insecurely parses user-supplied XML content within the OSRSNewsServer.java file, allowing attackers to perform XXE attacks.

Where the Issue Occurred

The code below retrieves the XML content and performs insecure XML parsing (found on line 72 - 74 runelite/http-service/src/main/java/net/runelite/http/service/feed/osrsnews/OSRSNewsService.java#L72-74):

Document document = DocumentBuilderFactory.newInstance() 
	.newDocumentBuilder() 
	.parse(in); 

The URL below can be intercepted (found on line 53 runelite/http-service/src/main/java/net/runelite/http/service/feed/osrsnews/OSRSNewsService.java#L53):

private static final HttpUrl RSS_URL = HttpUrl.parse("http://services.runescape.com/m=news/latest_news.rss?oldschool=true");

Disclosure Timeline

  • Issue Reported: 24th October 2018
  • Blog Post Published: 28th October 2018
  • Applied for CVE: