title: Cross-Site Request Forgery (CSRF) vulnerability in Apache MyFaces
description: In the default configuration, Apache MyFaces Core versions 2.2.0 to 2.2.13, 2.3.0 to 2.3.7, 2.3-next-M1 to 2.3-next-M4, and 3.0.0-RC1 use cryptographically weak implicit and explicit cross-site request forgery (CSRF) tokens. Due to that limitation, it is possible (although difficult) for an attacker to calculate a future CSRF token value and to use that value to trick a user into executing unwanted actions on an application.
problem types: CWE-352 Cross-Site Request Forgery (CSRF)
affected:
{
product: Apache MyFaces Core
vendor: Apache Software Foundation
versions:
lessThan: 2.2.14, status: affected, version: Apache MyFaces Core 2.2, versionType: custom
lessThan: 2.3.8, status: affected, version: Apache MyFaces Core 2.3, versionType: custom
lessThan: 2.3-next-M5, status: affected, version: Apache MyFaces Core 2.3-next, versionType: custom
lessThan: 3.0.0, status: affected, version: Apache MyFaces Core 3.0, versionType: custom
}
workarounds: Existing web.xml configuration parameters can be used to direct MyFaces to use SecureRandom for CSRF token generation:
org.apache.myfaces.RANDOM_KEY_IN_VIEW_STATE_SESSION_TOKEN=secureRandom
org.apache.myfaces.RANDOM_KEY_IN_CSRF_SESSION_TOKEN=secureRandom
org.apache.myfaces.RANDOM_KEY_IN_WEBSOCKET_SESSION_TOKEN=secureRandom