CVE-2023-48220
Ruby vulnerability analysis and mitigation

Overview

CVE-2023-48220 affects the devise_invitable gem's invitation feature, starting from version 0.4.rc3 and prior to version 2.0.9. The vulnerability allows users to accept invitations for an unlimited amount of time through the password reset functionality, bypassing the intended expiration period. This issue creates vulnerable dependencies in decidim, decidim-admin, and decidim-system gems from version 0.0.1.alpha3 and prior to versions 0.26.9, 0.27.5, and 0.28.0 (GitHub Advisory).

Technical details

The vulnerability stems from a design flaw in the devise_invitable gem where the password reset functionality always accepts pending invitations without validating the invitation expiry period. The gem only checks if the user has been invited but does not verify if the pending invitation is still valid according to the invite_for configuration. While Decidim sets this configuration to 2 weeks, the validation is bypassed due to this implementation issue. The vulnerability has been assigned a CVSS v3.1 score of 7.4 (HIGH) by NIST and 5.7 (MEDIUM) by GitHub, with the vector string CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:N (NVD).

Impact

The vulnerability allows malicious actors to accept invitations even after they have expired, potentially leading to unauthorized access to systems that rely on the invitation expiry mechanism for security. This could compromise the confidentiality and integrity of the affected systems by allowing users to gain access to accounts and resources after their invitation period should have expired (GitHub Advisory).

Mitigation and workarounds

The primary mitigation is to update devise_invitable to version 2.0.9 or above. For Decidim users, updating to versions 0.26.9, 0.27.5, or 0.28.0 will resolve the vulnerability. As a temporary workaround, organizations can cancel existing invitations directly from the database by running the command 'Decidim::User.invitation_not_accepted.update_all(invitation_token: nil)' from the Rails console (GitHub Advisory).

Community reactions

The vulnerability was discovered during City of Helsinki's security audit against Decidim 0.27, conducted by Deloitte Finland in September 2023. The issue was responsibly disclosed and patches were released in December 2023 (GitHub Advisory).

Additional resources


SourceThis report was generated using AI

Related Ruby vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2025-68271CRITICAL10
  • RubyRuby
  • openc3
NoYesJan 13, 2026
CVE-2026-22589HIGH7.5
  • RubyRuby
  • spree_core
NoYesJan 10, 2026
GHSA-96qw-h329-v5rgHIGH7.5
  • JavaScriptJavaScript
  • shakapacker
NoYesJan 08, 2026
CVE-2026-22588MEDIUM6.5
  • RubyRuby
  • spree_api
NoYesJan 08, 2026
GHSA-g9jg-w8vm-g96vMEDIUM4.6
  • JavaScriptJavaScript
  • trix
NoYesDec 31, 2025

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management