Skip to content

RailsAdmin Cross-site Scripting vulnerability in the list view

Moderate severity GitHub Reviewed Published Jul 6, 2024 in railsadminteam/rails_admin • Updated Jul 11, 2024

Package

bundler rails_admin (RubyGems)

Affected versions

>= 3.0.0.beta, < 3.1.3

Patched versions

3.1.3

Description

Impact

RailsAdmin list view has the XSS vulnerability, caused by improperly-escaped HTML title attribute.
The issue was originally reported in railsadminteam/rails_admin#3686.

Patches

Upgrade to 3.1.4. The vulnerability itself was patched in 3.1.3 but it has a functionality issue.
Initially the vulnerability was thought to exist in versions before 3.0, but it didn't. 2.x users can stay on 2.2.1.

Workarounds

  1. Copy the index view (located under the path app/views/rails_admin/main/index.html.erb) from the RailsAdmin version you use, and place it into your application by using the same path.
  2. Open the view file by an editor, and change the way to populate the td tag:
               <% properties.map{ |property| property.bind(:object, object) }.each do |property| %>
                 <% value = property.pretty_value %>
-                <td class="<%= [property.sticky? && 'sticky', property.css_class, property.type_css_class].select(&:present?).join(' ') %>" title="<%= value %>">
+                <%= content_tag(:td, class: [property.sticky? && 'sticky', property.css_class, property.type_css_class].select(&:present?), title: strip_tags(value.to_s)) do %>
                   <%= value %>
-                </td>
+                <% end %>
               <% end %>

Note: The view file created by this needs to be removed after upgrading RailsAdmin afterwards, unless this old view continue to be used. Only do this if you can't upgrade RailsAdmin now for a reason.

References

https://owasp.org/www-community/attacks/xss/
https://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html#method-i-strip_tags

References

@mshibuya mshibuya published to railsadminteam/rails_admin Jul 6, 2024
Published to the GitHub Advisory Database Jul 8, 2024
Reviewed Jul 8, 2024
Published by the National Vulnerability Database Jul 8, 2024
Last updated Jul 11, 2024

Severity

Moderate
6.8
/ 10

CVSS base metrics

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

Weaknesses

CVE ID

CVE-2024-39308

GHSA ID

GHSA-8qgm-g2vv-vwvc

Credits

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