Unsanitized user input in HTTP response (XSS)

Overview

  • Rule ID: java_lang_http_response_splitting

  • Applicable Languages: Java

  • Weakness ID: CWE-79

Description

Including unsanitized user input in a HTTP response could allow an attacker inject Carriage Return Line Feed (CRLF) characters into the response. An entirely attacker-controlled response can then be returned, creating a cross-site scripting (XSS) vulnerability.

Remediation Guidelines

  • Avoid incorporating user input into cookies or other HTTP headers without appropriate sanitization to prevent attackers from exploiting the input to manipulate the response.

    // Avoid this approach
    System.out.println(e); // Unsafe
    
  • To mitigate the risk of response splitting and XSS attacks, ensure to remove CRLF sequences from user input. You can use the following code snippet as a reference for sanitizing input in Java:

    var input = request.getParameter("data");
    var sanitized = input.replaceAll("\r\n", "");
    cookie.setValue(sanitized);

References

Configuration

To omit this rule during a scan, and to provide you with continuous 24/7 code-level scanning, you can employ our SAST TOOL

Last updated