Skip to content
Heist/ feed
Back to feed
Medium

Wagtail: Improper escaping of HTML (Cross-site Scripting) on TableBlock class attributes

Type: advisorySources: OSV

Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user's credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-28222
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 03:58 UTC · Revision 1

Source evidence

Wagtail: Improper escaping of HTML (Cross-site Scripting) on TableBlock class attributes

core-osv · Original source

Published 5 Mar 2026, 18:58 UTC

Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user's credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.

osv:CVE-2026-28222
Complete source record
{
  "id": "5857591155900161de65fcf21b7948d7b80192555acaa4b99be34af573b5699a",
  "url": "https://osv.dev/vulnerability/CVE-2026-28222",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Wagtail: Improper escaping of HTML (Cross-site Scripting) on TableBlock class attributes",
    "summary": "Wagtail is an open source content management system built on Django. Prior to versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1, a stored cross-site scripting (XSS) vulnerability exists on rendering TableBlock blocks within a StreamField. A user with access to create or edit pages containing TableBlock StreamField blocks is able to set specially-crafted class attributes on the block which run arbitrary JavaScript code when the page is viewed. When viewed by a user with higher privileges, this could lead to performing actions with that user's credentials. The vulnerability is not exploitable by an ordinary site visitor without access to the Wagtail admin, and only affects sites using TableBlock. This issue has been patched in versions 6.3.8, 7.0.6, 7.2.3, and 7.3.1.",
    "evidence": "osv:CVE-2026-28222",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-28222",
      "aliases": [
        "CVE-2026-28222",
        "GHSA-p5cm-246w-84jm",
        "PYSEC-2026-2307"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/wagtail/wagtail",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "0a473e521df5eb31a1a7f1840b64527f7eeffaf3"
                },
                {
                  "introduced": "30d4da49b8e1d195be81480ebdeb73b9567c6da7"
                },
                {
                  "fixed": "c445aa76d14da81dac591930942335dbbcd38ca8"
                },
                {
                  "introduced": "cf8c53ea06a1dea16fee8c2ca1cf76aa37e5e322"
                },
                {
                  "fixed": "b55a95d83acff5895b2c48894a5b1e7ad2dd2273"
                },
                {
                  "introduced": "0d3367a33ed4798b725afe653351a118270117e7"
                },
                {
                  "fixed": "0375094bb57ce6e527005c2bb2e871dd20bca04d"
                },
                {
                  "fixed": "4620423cb22c5253391a0f04178089c1162f6e2e"
                },
                {
                  "fixed": "575c0d7c18c7716ed73f7a3c2720ad75956f0a85"
                },
                {
                  "fixed": "605a5569686565e035313222e1bc2f9802fbc55b"
                },
                {
                  "fixed": "136e2f65957314f26bd2632adec08fe5ef9a1e25"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:torchbox:wagtail:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "6.3.8"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:torchbox:wagtail:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "6.4"
                      },
                      {
                        "fixed": "7.0.6"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:torchbox:wagtail:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "7.1"
                      },
                      {
                        "fixed": "7.2.3"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:torchbox:wagtail:7.3:-:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "7.3-NA"
                      },
                      {
                        "last_affected": "7.3-NA"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:torchbox:wagtail:7.3:rc1:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "7.3-rc1"
                      },
                      {
                        "last_affected": "7.3-rc1"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "range": [
                      {
                        "fixed": "0375094bb57ce6e527005c2bb2e871dd20bca04d"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "4620423cb22c5253391a0f04178089c1162f6e2e"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "575c0d7c18c7716ed73f7a3c2720ad75956f0a85"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "605a5569686565e035313222e1bc2f9802fbc55b"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "0a473e521df5eb31a1a7f1840b64527f7eeffaf3"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v6.3.8"
                  },
                  {
                    "range": [
                      {
                        "fixed": "c445aa76d14da81dac591930942335dbbcd38ca8"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v7.0.6"
                  },
                  {
                    "range": [
                      {
                        "fixed": "b55a95d83acff5895b2c48894a5b1e7ad2dd2273"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v7.2.3"
                  },
                  {
                    "range": [
                      {
                        "fixed": "136e2f65957314f26bd2632adec08fe5ef9a1e25"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v7.3.1"
                  }
                ]
              }
            }
          ],
          "versions": [
            "7.3-NA",
            "7.3-rc1",
            "v7.0.5",
            "v6.3.7",
            "v7.3",
            "v7.2.2",
            "v6.3.6",
            "v7.0.4",
            "v7.2.1",
            "v7.2",
            "v7.2rc1",
            "v7.0.3",
            "v7.0.2",
            "v6.3.5",
            "v7.0.1",
            "v6.3.4",
            "v7.0",
            "v7.0rc1",
            "v6.3.3",
            "v6.3.2",
            "v6.3.1",
            "v6.3",
            "v6.3rc2",
            "v4.1rc1",
            "v2.16rc1",
            "v2.11.rc1",
            "v2.8rc1",
            "v2.2rc1",
            "v1.10rc1",
            "v1.8rc1",
            "v1.6rc1",
            "v1.5rc1",
            "v1.4rc1",
            "v1.3rc1",
            "v1.2rc1",
            "v1.1rc1",
            "v1.0rc1",
            "v1.0b2",
            "v0.8.1",
            "v0.8",
            "v0.7",
            "v0.6",
            "v0.5",
            "v0.4",
            "v0.2",
            "v0.1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-28222.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:25.680640350Z",
      "provider": "osv",
      "references": [
        "https://github.com/wagtail/wagtail/releases/tag/v6.3.8",
        "https://github.com/wagtail/wagtail/releases/tag/v7.0.6",
        "https://github.com/wagtail/wagtail/releases/tag/v7.2.3",
        "https://github.com/wagtail/wagtail/releases/tag/v7.3.1",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/28xxx/CVE-2026-28222.json",
        "https://github.com/wagtail/wagtail/security/advisories/GHSA-p5cm-246w-84jm",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-28222",
        "https://github.com/wagtail/wagtail/commit/0375094bb57ce6e527005c2bb2e871dd20bca04d",
        "https://github.com/wagtail/wagtail/commit/4620423cb22c5253391a0f04178089c1162f6e2e",
        "https://github.com/wagtail/wagtail/commit/575c0d7c18c7716ed73f7a3c2720ad75956f0a85",
        "https://github.com/wagtail/wagtail/commit/605a5569686565e035313222e1bc2f9802fbc55b"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-79"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/28xxx/CVE-2026-28222.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-28222",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492324,
  "published_at": "2026-03-05T18:58:20.719+00:00"
}