Skip to main content

Business information leak - Analytics

Description

Business insights from mobile app usage analytics are obtained via a Swagger URL exposed along with the APIKey.

Impact

Obtain business information about the analytics of the mobile application.

Recommendation

According to the classification of the found information, establish the necessary controls so that the information is accessible only to the indicated persons.

Threat

Unauthenticated external attacker in the application.

Expected Remediation Time

⌚ 30 minutes.

Score

Default score using CVSS 3.1. It may change depending on the context of the vulnerability.

Base

  • Attack vector: N
  • Attack complexity: L
  • Privileges required: N
  • User interaction: N
  • Scope: U
  • Confidentiality: L
  • Integrity: N
  • Availability: N

Temporal

  • Exploit code madurity: X
  • Remediation level: X
  • Report confidence: X

Result

  • Vector string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N/E:X/RL:X/RC:X
  • Score:
    • Base: 5.3
    • Temporal: 5.3
  • Severity:
    • Base: Medium
    • Temporal: Medium

Code Examples

Compliant code

Access credentials based on authorized user credentials

const getAnalytics= (params, user) => {
//Use a secure encrypted method to get url and Key data
const reqUrl = getEncryptedUrl(user.credentials);
const analytics = fetch(reqUrl, params)
// Code to handle analytics information
};

Non compliant code

There are credentials stored on the source code as plain text

const SW_URL = "myurl";
const APIKey = "My APIKEY"

const getAnalytics= (params) => {
const reqUrl = SW_URL + "/?" + APIKey;
const analytics = fetch(reqUrl, params)
// Code to handle analytics information
};

Requirements