Skip to main content

DOM-Based cross-site scripting (XSS)

Description

The web application generates dynamic web content from the client side without validating the origin of the potentially malicious data.

Impact

Generate web pages that could contain malicious scripts injected into untrusted data.

Recommendation

Perform server-side and client-side input data validation to avoid the most common script injection attacks.

Threat

Unauthorized attacker from the Internet.

Expected Remediation Time

⌚ 90 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: R
  • Scope: C
  • Confidentiality: L
  • Integrity: L
  • 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:R/S:C/C:L/I:L/A:N/E:X/RL:X/RC:X
  • Score:
    • Base: 6.1
    • Temporal: 6.1
  • Severity:
    • Base: Medium
    • Temporal: Medium

Code Examples

Compliant code

The application performs server side validation of all user inputs

var search = document.getElementById('search').value;
var results = document.getElementById('results');
results.innerHTML = "You searched for:" + verifyData(search);
function verifyData(str){
return String(str).replace("ValidRegex");
}
//Server side validation should also be included in the code

Non compliant code

The application takes user input without validating it on the server side

var search = document.getElementById('search').value;
var results = document.getElementById('results');
results.innerHTML = "You searched for:" + search;

Requirements