Skip to content

Older releases of better_errors open to Cross-Site Request Forgery attack

Moderate severity GitHub Reviewed Published Sep 6, 2021 in BetterErrors/better_errors • Updated May 4, 2023

Package

bundler better_errors (RubyGems)

Affected versions

< 2.8.0

Patched versions

2.8.0

Description

Impact

better_errors prior to 2.8.0 did not implement CSRF protection for its internal requests. It also did not enforce the correct "Content-Type" header for these requests, which allowed a cross-origin "simple request" to be made without CORS protection. These together left an application with better_errors enabled open to cross-origin attacks.

As a developer tool, better_errors documentation strongly recommends addition only to the development bundle group, so this vulnerability should only affect development environments. Please ensure that your project limits better_errors to the development group (or the non-Rails equivalent).

Patches

Starting with release 2.8.x, CSRF protection is enforced. It is recommended that you upgrade to the latest release, or minimally to "~> 2.8.3".

Workarounds

There are no known workarounds to mitigate the risk of using older releases of better_errors.

References

For more information

If you have any questions or comments about this advisory, please

References

Reviewed Sep 7, 2021
Published by the National Vulnerability Database Sep 7, 2021
Published to the GitHub Advisory Database Sep 7, 2021
Last updated May 4, 2023

Severity

Moderate
6.3
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
High
Privileges required
Low
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
None
Availability
None
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:H/I:N/A:N

Weaknesses

CVE ID

CVE-2021-39197

GHSA ID

GHSA-w3j4-76qw-wwjm

Credits

Checking history
See something to contribute? Suggest improvements for this vulnerability.