Decidim: HTML content blocks allow stored script execution
Key facts
- Attack vector
- Network
- Privileges required
- High
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Code execution
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-94.
Summary
Decidim is a participatory democracy framework. Prior to 0.30.9, from 0.31.0 before 0.31.5, and in 0.32.0.rc1 before 0.32.0.rc2, an administrator with landing-page editing privileges can store arbitrary HTML and JavaScript in an HTML content block, which Decidim::ContentBlocks::HtmlCell#html_content renders without sanitization, causing the script to execute in visitors' browsers. This issue is fixed in versions 0.30.9, 0.31.5, and 0.32.0.rc2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| decidim | decidim | before 0.30.9; 0.31.0.rc1 to before 0.31.5; 0.32.0.rc1 to before 0.32.0 | 0.30.9, 0.31.5, 0.32.0 | Patch available | CNA |
| — | decidim-core (RubyGems) | before 0.30.9 | 0.30.9 | Patch available | GHSA-533c-2vh9-4r86 |
| — | decidim-core (RubyGems) | 0.31.0.rc1 to before 0.31.5 | 0.31.5 | Patch available | GHSA-533c-2vh9-4r86 |
| — | decidim-core (RubyGems) | 0.32.0.rc1 to before 0.32.0 | 0.32.0 | Patch available | GHSA-533c-2vh9-4r86 |
- decidim Vendordecidim Affected before 0.30.9; 0.31.0.rc1 to before 0.31.5; 0.32.0.rc1 to before 0.32.0 Fixed in 0.30.9, 0.31.5, 0.32.0 Patch available CNA
- decidim-core (RubyGems) Vendor— Affected before 0.30.9 Fixed in 0.30.9 Patch available GHSA-533c-2vh9-4r86
- decidim-core (RubyGems) Vendor— Affected 0.31.0.rc1 to before 0.31.5 Fixed in 0.31.5 Patch available GHSA-533c-2vh9-4r86
- decidim-core (RubyGems) Vendor— Affected 0.32.0.rc1 to before 0.32.0 Fixed in 0.32.0 Patch available GHSA-533c-2vh9-4r86
Remediation
- Fix · CNA decidim (decidim) Fixed in 0.30.9, 0.31.5, 0.32.0
- Fix · GHSA-533c-2vh9-4r86 decidim-core (RubyGems) Fixed in 0.30.9 Advisory →
- Fix · GHSA-533c-2vh9-4r86 decidim-core (RubyGems) Fixed in 0.31.5 Advisory →
- Fix · GHSA-533c-2vh9-4r86 decidim-core (RubyGems) Fixed in 0.32.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-45572
- 2026-10-03 Alias added: GHSA-533c-2vh9-4r86
References
More decidim vulnerabilities
- TI-2026-33169 Decidim: Verification documents can be downloaded through reusable links CVSS 3.1HIGH 7.5
- TI-2025-40203 Decidim's private data exports can lead to data leaks CVSS 4.0HIGH 8.2
- TI-2026-33203 Decidim: JWT-backed authentication can be replayed across organizations CVSS 3.1HIGH 8.5
- TI-2026-33168 Decidim: Private exports can be downloaded through reusable links CVSS 3.1MEDIUM 6.5
- TI-2026-33204 Decidim: CSV census record endpoints improper authorization CVSS 3.1MEDIUM 6.0
- TI-2026-33167 Decidim: Admin user search allows SQL injection through similarity-based sorting CVSS 3.1MEDIUM 5.5
Sources
- CVE-2026-45572 · CVE Program
- CVE-2026-45572 · NVD
- FIRST EPSS
- GHSA-533c-2vh9-4r86 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences