Skip to content

Field Test CSRF vulnerability

Moderate severity GitHub Reviewed Published Aug 5, 2020 to the GitHub Advisory Database • Updated Jul 5, 2023

Package

bundler field_test (RubyGems)

Affected versions

>= 0.2.0, <= 0.3.2

Patched versions

0.4.0

Description

The Field Test dashboard is vulnerable to cross-site request forgery (CSRF) with non-session based authentication methods in versions v0.2.0 through v0.3.2.

Impact

The Field Test dashboard is vulnerable to CSRF with non-session based authentication methods, like basic authentication. Session-based authentication methods (like Devise's default authentication) are not affected.

A CSRF attack works by getting an authorized user to visit a malicious website and then performing requests on behalf of the user. In this instance, a single endpoint is affected, which allows for changing the variant assigned to a user.

All users running an affected release should upgrade immediately.

Technical Details

Field Test uses the protect_from_forgery method from Rails to prevent CSRF. However, this defaults to :null_session, which has no effect on non-session based authentication methods. This has been changed to protect_from_forgery with: :exception.

References

Reviewed Aug 5, 2020
Published to the GitHub Advisory Database Aug 5, 2020
Last updated Jul 5, 2023

Severity

Moderate
4.3
/ 10

CVSS base metrics

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

Weaknesses

CVE ID

CVE-2020-16252

GHSA ID

GHSA-w542-cpp9-r3g7

Source code

Credits

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