Applications must use system-generated session identifiers that protect against session fixation.

From Application Security and Development Security Technical Implementation Guide

Part of SRG-APP-000223

Associated with: CCI-001664

SV-84831r1_rule Applications must use system-generated session identifiers that protect against session fixation.

Vulnerability discussion

Session fixation allows an attacker to hijack a valid user’s application session. The attack focuses on the manner in which a web application manages the user’s session ID. Applications become vulnerable when they do not assign a new session ID when authenticating users thereby using the existing session ID.Many web development frameworks such as PHP, .NET, and ASP include their own mechanisms for session management. Whenever possible it is recommended to utilize the provided session management framework.In many cases, creating a new session ID cookie containing a new unique value whenever authentication is performed will address the issue of session fixation.Allowing the user to submit a session ID also introduces the risk that the application could be subject to a session fixation attack.

Check content

Review the application documentation and interview the application administrator to identify how the application generates user session IDs. Application session testing is required in order to verify this requirement. Request the latest application vulnerability or penetration test results. Verify the test configuration includes session handling vulnerability tests. If the application is re-using/copying the users existing session ID that was created on one system in order to maintain user state when traversing multiple application servers in the same domain, this is not a finding. If the session testing results indicate application session IDs are re-used after the user has logged out, this is a finding.

Fix text

Design the application to generate new session IDs with unique values when authenticating user sessions.

Pro Tips

Lavender hyperlinks in small type off to the right (of CSS class id, if you view the page source) point to globally unique URIs for each document and item. Copy the link location and paste anywhere you need to talk unambiguously about these things.

You can obtain data about documents and items in other formats. Simply provide an HTTP header Accept: text/turtle or Accept: application/rdf+xml.

Powered by sagemincer