CVE-2025-54572: Ruby SAML DOS vulnerability with large SAML response

Published Jul 30, 2025
·
Updated

Summary A denial-of-service vulnerability exists in ruby-saml even with the messagemaxbytesize setting configured. The vulnerability occurs because the SAML response is validated for Base64 format prior to checking the message size, leading to potential resource exhaustion.

Details ruby-saml includes a messagemaxbytesize setting intended to prevent DOS attacks and decompression bombs. However, this protection is ineffective in some cases due to the order of operations in the code:

https://github.com/SAML-Toolkits/ruby-saml/blob/fbbedc978300deb9355a8e505849666974ef2e67/lib/onelogin/ruby-saml/samlmessage.rb

ruby def decoderawsaml(saml, settings = nil) return saml unless base64encoded?(saml) # <--- Issue here. Should be moved after next code block.

settings = OneLogin::RubySaml::Settings.new if settings.nil? if saml.bytesize > settings.messagemaxbytesize raise ValidationError.new("Encoded SAML Message exceeds " + settings.messagemaxbytesize.tos + " bytes, so was rejected") end

decoded = decode(saml) ... end

The vulnerability is in the execution order. Prior to checking bytesize the base64encoded? function performs regex matching on the entire input string:

ruby !!string.gsub(/[\r\n]|\\r|\\n|\s/, "").match(BASE64FORMAT)

Impact What kind of vulnerability is it? Who is impacted?

When successfully exploited, this vulnerability can lead to:

- Excessive memory consumption - High CPU utilization - Application slowdown or unresponsiveness - Complete application crash in severe cases - Potential denial of service for legitimate users

All applications using ruby-saml with SAML configured and enabled are vulnerable.

Potential Solution

Reorder the validation steps to ensure max bytesize is checked first

ruby def decoderawsaml(saml, settings = nil) settings = OneLogin::RubySaml::Settings.new if settings.nil?

if saml.bytesize > settings.messagemaxbytesize raise ValidationError.new("Encoded SAML Message exceeds " + settings.messagemaxbytesize.tos + " bytes, so was rejected") end return saml unless base64encoded?(saml) decoded = decode(saml) ... end

Other sources

The Ruby SAML library is for implementing the client side of a SAML authorization. In versions 1.18.0 and below, a denial-of-service vulnerability exists in ruby-saml even with the messagemaxbytesize setting configured. The vulnerability occurs because the SAML response is validated for Base64 format prior to checking the message size, leading to potential resource exhaustion. This is fixed in version 1.18.1.

MITRE

Affected Software

2 affected componentsFixes available
rubygems/ruby-saml<1.18.1
1.18.1
IBM Aspera Faspex 5<=5.0.0 - 5.0.13.1

Event History

Jul 30, 2025
Advisory Published
via GitHub·01:20 PM
Data Sourced
via GitHub·01:20 PM
DescriptionWeaknessAffected Software
CVE Published
via MITRE·02:05 PM
Data Sourced
via MITRE·02:05 PM
DescriptionWeakness
Data Sourced
via NVD·02:15 PM
DescriptionSeverityWeakness
Oct 8, 2025
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2025-54572?

CVE-2025-54572 is classified as a denial-of-service vulnerability.

2

How do I fix CVE-2025-54572?

To fix CVE-2025-54572, upgrade to ruby-saml version 1.18.1 or higher.

3

What causes the vulnerability in CVE-2025-54572?

The vulnerability in CVE-2025-54572 is caused by improper validation of SAML responses that leads to resource exhaustion.

4

Which versions of ruby-saml are affected by CVE-2025-54572?

All versions of ruby-saml prior to 1.18.1 are affected by CVE-2025-54572.

5

What are the potential impacts of exploiting CVE-2025-54572?

Exploiting CVE-2025-54572 may lead to denial of service due to resource exhaustion.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203