LiveActive security incident?Get immediate response
CVE Record

CVE-2023-48220: Decidim's devise_invitable gem vulnerable to circumvention of invitation token expiry period

Decidim is a participatory democracy framework. Starting in version 0.4.rc3 and prior to version 2.0.9 of the `devise_invitable` gem, the invites feature allows users to accept the invitation for an unlimited amount of time through the password reset functionality. This issue creates vulnerable dependencies starting in version 0.0.1.alpha3 and prior to versions 0.26.9, 0.27.5, and 0.28.0 of the `decidim,` `decidim-admin`, and `decidim-system` gems. When using the password reset functionality, the `devise_invitable` gem always accepts the pending invitation if the user has been invited. The only check done is if the user has been invited but the code does not ensure that the pending invitation is still valid as defined by the `invite_for` expiry period. Decidim sets this configuration to `2.weeks` so this configuration should be respected. The bug is in the `devise_invitable` gem and should be fixed there and the dependency should be upgraded in Decidim once the fix becomes available. `devise_invitable` to version `2.0.9` and above fix this issue. Versions 0.26.9, 0.27.5, and 0.28.0 of the `decidim,` `decidim-admin`, and `decidim-system` gems contain this fix. As a workaround, invitations can be cancelled directly from the database.

MediumCVSS 5.7Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

CVE-2023-48220 lets an invited Decidim user accept an invitation after the normal two-week expiry by using the password reset flow. This can revive stale invitations and grant account access administrators expected to expire. Business impact is highest where invitations grant sensitive roles or access.

Executive priority

Treat as a moderate-priority access control issue. Patch during the next security maintenance window, faster for systems where invitations can grant administrative, organizational, or sensitive participant access.

Technical view

The flaw is in devise_invitable before 2.0.9. Its password reset path checks whether a user was invited, but not whether the invitation remains valid under invite_for. Decidim sets invite_for to two weeks. Fixed Decidim gem releases are 0.26.9, 0.27.5, and 0.28.0.

Likely exposure

Exposure is likely limited to Decidim deployments using affected decidim, decidim-admin, decidim-system, or devise_invitable versions with pending or historical invitations. Risk depends on invited account privileges and whether stale invitations remain in the database.

Exploitation context

The source bundle reports no KEV listing and provides no evidence of active exploitation. Exploitation requires an invited user and interaction with account recovery behavior; CVSS marks privileges and user interaction as required, with high complexity.

Researcher notes

The key condition is expiry validation missing in the invitation acceptance path reached through password reset. Sources identify CWE-672 and CVSS 5.7. Evidence supports the root cause and fixed versions, but not real-world exploitation.

Mitigation direction

  • Upgrade devise_invitable to version 2.0.9 or later.
  • Upgrade Decidim gems to 0.26.9, 0.27.5, 0.28.0, or later supported releases.
  • Cancel unwanted pending invitations directly from the database if upgrade is delayed.
  • Review vendor advisory and release notes before production rollout.

Validation and detection

  • Inventory Decidim and devise_invitable gem versions in each deployment.
  • Check for affected Decidim ranges below 0.26.9, 0.27.5, or 0.28.0.
  • Review pending invitations, especially for administrative or privileged roles.
  • Confirm password reset no longer accepts expired invitations after remediation.
Prepared
Confidence
high
Sources
7

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · low confidence lookup

CWE-672: Exact CWE lookup

Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
description · low confidence lookup

Credential and access behavior lookup

The CVE wording references authentication or credential exposure, so valid-account and credential-access review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
description · low confidence lookup

Database behavior lookup

The CVE wording references database injection or access, so collection and exfiltration review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2023-48220 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
5.7 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:N

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
10Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
5.7CVSS 3.1MediumCVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:N0.55.2Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

5.7Medium
CVSS 3.1 vector shape for CVE-2023-48220Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:U/C:H/I:H/A:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
decidimdecidim>= 0.0.1.alpha3, < 0.26.9, >= 0.27.0, < 0.27.5, >= 0.4.rc3, < 2.0.9Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-672 · source CWE mapping

Operation on a Resource after Expiration or Release

Operation on a Resource after Expiration or Release represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.