CVE-2021-32681

Improper escaping of HTML ('Cross-site Scripting') in Wagtail StreamField blocks

MEDIUM
5.4
CVSS Score
Published: June 17, 2021 at 04:25 PM UTC
Updated: June 17, 2026 at 03:53 AM UTC
2 products affected across 2 vendorsWagtailWagtail

Using wagtail by wagtail?

Get instant alerts when new vulnerabilities affect wagtail - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.4
Exploit prediction
EPSS 1%

Description

Wagtail is an open source content management system built on Django. A cross-site scripting vulnerability exists in versions 2.13-2.13.1, versions 2.12-2.12.4, and versions prior to 2.11.8. When the `{% include_block %}` template tag is used to output the value of a plain-text StreamField block (`CharBlock`, `TextBlock` or a similar user-defined block derived from `FieldBlock`), and that block does not specify a template for rendering, the tag output is not properly escaped as HTML. This could allow users to insert arbitrary HTML or scripting. This vulnerability is only exploitable by users with the ability to author StreamField content (i.e. users with 'editor' access to the Wagtail admin). Patched versions have been released as Wagtail 2.11.8 (for the LTS 2.11 branch), Wagtail 2.12.5, and Wagtail 2.13.2 (for the current 2.13 branch). As a workaround, site implementors who are unable to upgrade to a current supported version should audit their use of `{% include_block %}` to ensure it is not used to output `CharBlock` / `TextBlock` values with no associated template. Note that this only applies where `{% include_block %}` is used directly on that block (uses of `include_block` on a block _containing_ a CharBlock / TextBlock, such as a StructBlock, are unaffected). In these cases, the tag can be replaced with Django's `{{ ... }}` syntax - e.g. `{% include_block my_title_block %}` becomes `{{ my_title_block }}`.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v < 2.11.82.12 ≤ v ≤ 2.12.42.13 ≤ v ≤ 2.13.1
Affected range stops below 2.11.8, so it looks safe — our inference, not a vendor statement
v ≤ 2.12.4v ≤ 2.13.1v < 2.11.8
Affected range stops below 2.11.8, so it looks safe — our inference, not a vendor statement

Remediation

No guide yet

No remediation guidance has been written for this CVE yet. What the record does show:

References (4)

x_refsource_MISCExploitThird Party Advisory
https://github.com/wagtail/wagtail/releases/tag/v2.11.8
x_refsource_MISCExploitThird Party Advisory
https://github.com/wagtail/wagtail/releases/tag/v2.12.5
x_refsource_MISCExploitThird Party Advisory
https://github.com/wagtail/wagtail/releases/tag/v2.13.2

CVSS

5.4MEDIUMGitHub_M
Attack Vector
NETWORK
Complexity
LOW
Privileges
LOW
User Interaction
REQUIRED
Scope
CHANGED
Confidentiality
LOW
Integrity
LOW
Availability
NONE
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-79

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card