Skip to main content

Sensitive information sent via URL parameters

Description

The system sends sensitive information via URL parameters using the GET method. These parameters are:

  • Stored in clear text in the browser history.
  • Sent to external sites via the referrer HTTP header.
  • Sent to external sites via the search bar if the browser interprets the URL as a query.
  • Visible to scripts running on the browser that may belong to third-parties.

Impact

Obtain sensitive information from application URLs.

Recommendation

Guarantee that the sessions ID are sent through secure methods (POST) or obtain the cookies session.

Threat

Anonymous attacker from adjacent network performing a sniffing attack.

Expected Remediation Time

⌚ 60 minutes.

Score

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

Base

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

Temporal

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

Result

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

Code Examples

Compliant code

The session should be restored using cookies and not other insecure methods

// Get cookie to restore session credentials
function restoreSession(cname){
userCookie = getcookies(cname);
if(userCookie){
restoreSession(user);
}
}

Non compliant code

The user Id is sent through the url parameters

// Get cookie to restore session credentials
function restoreSession(cname){
userCredentials = fetch('myurl/${userId}')
restoreSession(userCredentials)
}

Requirements