GitHub Advisoryadvisory · Maven

GHSA-p9p4-97g9-wcrh Dev error stack trace leaking into prod in Play Framework

MEDIUM Published 2022-06-03 Modified 2025-11-03 Official page ↗
Aliases
CVE-2022-31023
Ecosystem
Maven
Packages
com.typesafe.play:play_2.12, com.typesafe.play:play_2.13
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-209
Reviewed
2022-06-03

Affected packages

• Maven com.typesafe.play:play_2.12: < 2.8.16 → fixed in 2.8.16 • Maven com.typesafe.play:play_2.13: < 2.8.16 → fixed in 2.8.16

Description

Impact Play Framework, when run in dev mode, shows verbose errors for easy debugging, including an exception stack trace. Play does this by configuring its `DefaultHttpErrorHandler` to do so based on the application mode. In its Scala API Play also provides a static object `DefaultHttpErrorHandler` that is configured to always show verbose errors. This is used as a default value in some Play APIs, so it is possible to inadvertently use this version in production. It is also possible to improperly configure the `DefaultHttpErrorHandler` object instance as the injected error handler. Both of these situations could result in verbose errors displaying to users in a production application, which could expose sensitive information from the application. In particular the constructor for `CORSFilter` and `apply` method for `CORSActionBuilder` use the static object `DefaultHttpErrorHandler` as a default value. Patches This is patched in Play Framework 2.8.16. The `DefaultHttpErrorHandler` object has been changed to use the prod-mode behavior, and `DevHttpErrorHandler` has been introduced for the dev-mode behavior. Workarounds When constructing a `CORSFilter` or `CORSActionBuilder`, ensure that a properly-configured error handler is passed. Generally this should be done by using the `HttpErrorHandler` instance provided through dependency injection or through Play's `BuiltInComponents`. Ensure that your application is not using the `DefaultHttpErrorHandler` static object in any code that may be run in production. References https://www.playframework.com/documentation/2.8.x/ScalaErrorHandling#Supplying-a-custom-error-handler https://www.playframework.com/documentation/2.8.x/JavaErrorHandling#Supplying-a-custom-error-handler For more information If you have any questions or comments about this advisory: • Open an issue in playframework/playframework • Email us at [email protected]

Related

Alias · CVE (1)

  • CVE-2022-31023 Play Framework is a web framework for Java and Scala. vulnerability

Weakness · CWE (1)

  • CWE-209 Generation of Error Message Containing Sensitive Information weakness

References