Skip to content

← Public intelligence

RubyGems package

decidim

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

13 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. High, CVSS 8.5RubyGemsPublished

    Decidim: JWT-backed authentication can be replayed across organizations

    CVE-2026-45414 · GHSA-r3v7-5x4c-c69q

    Affected
    • RubyGems decidim < 0.31.5; >= 0.32.0.rc1, < 0.32.0
    Fixed in
    0.31.50.32.0· Vendor fix available
    Issue
    A JWT issued to an Org 1 account is accepted on the Org 2 API and can read the admin-only GraphQL participantDetails field for an Org 2 participant. The same trust-boundary problem also affects API-user authentication: an Org 1 API user can use a JWT on the Org 1 host and replay that JWT to the Org 2 API to read Org 2 participant personal data and reach Org 2's proposal.answer mutation path. Technical description The current host selects the Decidim organization context, but JWT-backed API authentication is not sufficiently bound to that host organization. As a result, the API can process a request in Org 2's context while still trusting an authenticated principal from Org 1. Reproduction steps: 1. Use an API key provided by the system administrator that is assigned to organization 1 to create the JWT token or get the JWT token shown in the response when logged in as the organization admin. <img width="1080" height="1119" alt="decidim-jwt-01"…

    Recommended action: Upgrade to 0.32.0 or 0.31.5 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  2. High, CVSS 8.2RubyGemsPublished

    Decidim's private data exports can lead to data leaks

    CVE-2025-65017 · GHSA-3cx6-j9j4-54mp

    Affected
    • RubyGems decidim >= 0.30.0, < 0.30.4
    Fixed in
    0.30.4· Vendor fix available
    Issue
    Impact Private data exports can lead to data leaks in cases where the UUID generation causes collisions for the generated UUIDs. The bug was introduced by #13571 and affects Decidim versions 0.30.0 or newer (currently 2025-09-23). This issue was discovered by running the following spec several times in a row, as it can randomly fail due to this bug: Run the spec as many times as needed to hit a UUID that converts to 0 through .toi. The UUID to zero conversion does not cause a security issue but the security issue is demonstrated with the following example. The following code regenerates the issue by assigning a predefined UUID that will generate a collision (example assumes there are already two existing users in the system): Expect to see an error in the situation. Now, login as user with ID 1, go to /downloadyourdata, click "Download file" from the export and expect to see the data that should be attached to user with ID 2. This is an artificially replicated situation with the…

    Recommended action: Upgrade to 0.30.4 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  3. High, CVSS 7.1RubyGemsPublished

    Decidim has a cross-site scripting vulnerability in the version control page

    CVE-2024-41673 · GHSA-cc4g-m3g7-xmw8

    Affected
    • RubyGems decidim <= 0.27.7
    Fixed in
    0.27.8· Vendor fix available
    Issue
    Impact The version control feature used in resources is subject to potential cross-site scripting (XSS) attack through a malformed URL. Workarounds Not available References OWASP ASVS v4.0.3-5.1.3 Credits This issue was discovered in a security audit organized by Open Source Politics against Decidim done during July 2025.

    Recommended action: Upgrade to 0.27.8 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  4. Medium, CVSS 5.9RubyGemsPublished

    Decidim::Admin vulnerable to cross-site scripting (XSS) in the admin panel with QuillJS WYSWYG editor

    CVE-2024-39910 · GHSA-vvqw-fqwx-mqmm

    Affected
    • RubyGems decidim <= 0.27.6
    Fixed in
    0.27.7· Vendor fix available
    Issue
    Impact The WYSWYG editor QuillJS is subject to potential XSS attach in case the attacker manages to modify the HTML before being uploaded to the server. The attacker is able to change e.g. to <svg onload=alert('XSS') if they know how to craft these requests themselves. Patches N/A Workarounds Review the user accounts that have access to the admin panel (i.e. general Administrators, and participatory space's Administrators) and remove access to them if they don't need it. Disable the "Enable rich text editor for participants" setting in the admin dashboard References OWASP ASVS v4.0.3-5.1.3

    Recommended action: Upgrade to 0.27.7 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  5. Medium, CVSS 6.3RubyGemsPublished

    Decidim cross-site scripting (XSS) in the pagination

    CVE-2024-32469 · GHSA-7cx8-44pc-xv3q

    Affected
    • RubyGems decidim < 0.27.6; >= 0.28.0.rc1, < 0.28.1
    Fixed in
    0.28.10.27.6· Vendor fix available
    Issue
    Impact The pagination feature used in searches and filters is subject to potential XSS attack through a malformed URL using the GET parameter perpage. Patches Not available Workarounds Not available References OWASP ASVS v4.0.3-5.1.3 Credits This issue was discovered in a security audit organized by the mitgestalten Partizipationsbüro and funded by netidee against Decidim done during April 2024. The security audit was implemented by AIT Austrian Institute of Technology GmbH,

    Recommended action: Upgrade to 0.28.1 or 0.27.6 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  6. Medium, CVSS 6.9RubyGemsPublished

    Decidim vulnerable to data disclosure through the embed feature

    CVE-2024-27090 · GHSA-qcj6-vxwx-4rqv

    Affected
    • RubyGems decidim < 0.27.6
    Fixed in
    0.27.6· Vendor fix available
    Issue
    Impact If an attacker can infer the slug or URL of an unpublished or private resource, and this resource can be embedded (such as a Participatory Process, an Assembly, a Proposal, a Result, etc), then some data of this resource could be accessed. Patches version 0.27.6 https://github.com/decidim/decidim/commit/1756fa639ef393ca8e8bb16221cab2e2e7875705 Workarounds Disallow access through your web server to the URLs finished with /embed.html

    Recommended action: Upgrade to 0.27.6 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  7. Medium, CVSS 6.3RubyGemsPublished

    Cross-site scripting (XSS) in the dynamic file uploads

    CVE-2023-51447 · GHSA-9w99-78rj-hmxq

    Affected
    • RubyGems decidim >= 0.27.0, < 0.27.5
    Fixed in
    0.27.5· Vendor fix available
    Issue
    Impact The dynamic file upload feature is subject to potential XSS attach in case the attacker manages to modify the file names of the records being uploaded to the server. This appears in sections where the user controls the file upload dialogs themselves and has the technical knowledge to change the file names through the dynamic upload endpoint. Therefore I believe it would require the attacker to control the whole session of the particular user but in any case, this needs to be fixed. Successful exploit of this vulneratibility would require the user to have successfully uploaded a file blob to the server with a malicious file name and then have the possibility to direct the other user to the edit page of the record where the attachment is attached. The users are able to craft the direct upload requests themselves controlling the file name that gets stored to the database as shown here:…

    Recommended action: Upgrade to 0.27.5 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  8. Medium, CVSS 5.7RubyGemsPublished

    Possibility to circumvent the invitation token expiry period

    CVE-2023-48220 · GHSA-w3q8-m492-4pwp

    Affected
    • RubyGems decidim >= 0.0.1.alpha3, < 0.26.9; >= 0.27.0, < 0.27.5
    Fixed in
    0.27.50.26.9· Vendor fix available
    Issue
    Impact The invites feature allows users to accept the invitation for an unlimited amount of time through the password reset functionality. When using the password reset functionality, the deviseinvitable gem always accepts the pending invitation if the user has been invited as shown in this piece of code within the deviseinvitable gem: https://github.com/scambra/deviseinvitable/blob/41f58970ff76fb64382a9b9ea1bd530f7c3adab2/lib/deviseinvitable/models.rb#L198 The only check done here is if the user has been invited but the code does not ensure that the pending invitation is still valid as defined by the invitefor expiry period as explained in the gem's documentation: https://github.com/scambra/deviseinvitable#model-configuration- invitefor: The period the generated invitation token is valid. After this period, the invited resource won’t be able to accept the invitation. When invitefor is 0 (the default), the invitation won’t expire. Decidim sets this configuration to 2.weeks so this…

    Recommended action: Upgrade to 0.27.5 or 0.26.9 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  9. Low, CVSS 3.1RubyGemsPublished

    Race condition in Endorsements

    CVE-2023-47634 · GHSA-r275-j57c-7mf2

    Affected
    • RubyGems decidim >= 0.10.0, < 0.26.9; >= 0.27.0, < 0.27.5
    Fixed in
    0.27.50.26.9· Vendor fix available
    Issue
    Impact A race condition in the endorsement of resources (for instance, a proposal) allows a user to make more than once endorsement. To exploit this vulnerability, the request to set an endorsement must be sent several times in parallel. Workarounds Disable the Endorsement feature in the components.

    Recommended action: Upgrade to 0.27.5 or 0.26.9 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  10. High, CVSS 7.1RubyGemsPublished

    Decidim has broken access control in templates

    CVE-2023-36465 · GHSA-639h-86hw-qcjq

    Affected
    • RubyGems decidim >= 0.23.2, < 0.26.8; >= 0.27.0, < 0.27.4
    Fixed in
    0.26.80.27.4· Vendor fix available
    Issue
    Impact The templates module doesn't enforce the correct permissions, allowing any logged-in user to access to this functionality in the administration panel. An attacker could use this vulnerability to change, create or delete templates of surveys.

    Recommended action: Upgrade to 0.27.4 or 0.26.8 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  11. Medium, CVSS 6.1RubyGemsPublished

    Decidim Cross-site Scripting vulnerability in the external link redirections

    CVE-2023-32693 · GHSA-469h-mqg8-535r

    Affected
    • RubyGems decidim >= 0.27.0, < 0.27.3; >= 0.25.0, < 0.26.7
    Fixed in
    0.26.70.27.3· Vendor fix available
    Issue
    Impact The external link feature is susceptible to Cross-site scripting. This allows a remote attacker to execute JavaScript code in the context of a currently logged-in user. An attacker could use this vulnerability to make other users endorse or support proposals they have no intention of supporting or endorsing. Patches The problem was patched in v0.27.3 and v0.26.7

    Recommended action: Upgrade to 0.27.3 or 0.26.7 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  12. High, CVSS 8.1RubyGemsPublished

    Decidim Cross-site Scripting vulnerability in the processes filter

    CVE-2023-34089 · GHSA-5652-92r9-3fx9

    Affected
    • RubyGems decidim >= 0.27.0, < 0.27.3; >= 0.14.0, < 0.26.7
    Fixed in
    0.26.70.27.3· Vendor fix available
    Issue
    Impact The processes filter feature is susceptible to Cross-site scripting. This allows a remote attacker to execute JavaScript code in the context of a currently logged-in user. An attacker could use this vulnerability to make other users endorse or support proposals they have no intention of supporting or endorsing. Patches The problem was patched in v0.27.3 and v0.26.7

    Recommended action: Upgrade to 0.27.3 or 0.26.7 by release line, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →
  13. High, CVSS 7.5RubyGemsPublished

    Decidim vulnerable to sensitive data disclosure

    CVE-2023-34090 · GHSA-jm79-9pm4-vrw9

    Affected
    • RubyGems decidim >= 0.27.0, < 0.27.3
    Fixed in
    0.27.3· Vendor fix available
    Issue
    Note: added the actual report as a comment. Summary Decidim, a platform for digital citizen participation, uses a third-party library named Ransack for filtering certain database collections (e.g., public meetings). By default, this library allows filtering on all data attributes and associations. This allows an unauthenticated remote attacker to exfiltrate non-public data from the underlying database of a Decidim instance (e.g., exfiltrating data from the user table). Impact This issue may lead to Sensitive Data Disclosure. Patches The problem was patched in v0.27.3. Workarounds Disable or unpublish all meetings components from your application.

    Recommended action: Upgrade to 0.27.3 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:github.comSource checked Evidence →