← Back to CVE Explorer

CVE-2026-75526

Full vulnerability record from the local CVENow database.

Description

django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. From 5.0.8 until 5.0.9, ContentRenderer.render_placeholder in cms/plugin_rendering.py can pass stored, attacker-controlled values to ContentRenderer.render_exception when plugin rendering fails in edit mode. Values from get_short_description(), the exception message, the placeholder, or placeholder.source are interpolated into a cms-rendering-exception heading and later returned through mark_safe. Because the heading is not escaped, stored HTML executes in an editor’s browser, and settings.DEBUG does not prevent the custom heading from rendering. The fix uses format_html to escape the message before safe placeholder output is returned. This issue is fixed in versions 5.0.9.

Severity
MEDIUM
CVSS score
4.4 (v3.1)
Vulnerability status
Awaiting Analysis
Source identifier
Published
2026-08-20 19:17:03.787000
Last modified
2026-10-26 10:10:00.140000
View original CVE JSON
{
  "id": "CVE-2026-75526",
  "sourceIdentifier": "[email protected]",
  "published": "2026-08-20T19:17:03.787",
  "lastModified": "2026-10-26T10:10:00.140",
  "vulnStatus": "Awaiting Analysis",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. From 5.0.8 until 5.0.9, ContentRenderer.render_placeholder in cms/plugin_rendering.py can pass stored, attacker-controlled values to ContentRenderer.render_exception when plugin rendering fails in edit mode. Values from get_short_description(), the exception message, the placeholder, or placeholder.source are interpolated into a cms-rendering-exception heading and later returned through mark_safe. Because the heading is not escaped, stored HTML executes in an editor’s browser, and settings.DEBUG does not prevent the custom heading from rendering. The fix uses format_html to escape the message before safe placeholder output is returned. This issue is fixed in versions 5.0.9."
    },
    {
      "lang": "es",
      "value": "django CMS es un sistema de gestión de contenido empresarial fácil de usar y amigable para desarrolladores, impulsado por Django. Desde la versión 5.0.8 hasta la 5.0.9, ContentRenderer.render_placeholder en cms/plugin_rendering.py puede pasar valores almacenados y controlados por el atacante a ContentRenderer.render_exception cuando la renderización del plugin falla en modo de edición. Los valores de get_short_description(), el mensaje de excepción, el marcador de posición (placeholder) o placeholder.source se interpolan en un encabezado cms-rendering-exception y luego se devuelven a través de mark_safe. Debido a que el encabezado no se escapa, el HTML almacenado se ejecuta en el navegador de un editor, y settings.DEBUG no evita que el encabezado personalizado se renderice. La solución utiliza format_html para escapar el mensaje antes de que se devuelva la salida segura del marcador de posición (placeholder). Este problema se corrige en la versión 5.0.9."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "django-cms",
          "product": "django-cms",
          "versions": [
            {
              "version": ">= 5.0.8, < 5.0.9",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:L/A:N",
          "baseScore": 4.4,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "LOW",
          "userInteraction": "REQUIRED",
          "scope": "CHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "LOW",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 1.3,
        "impactScore": 2.7
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-20T19:20:47.120348Z",
          "id": "CVE-2026-75526",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-79"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/django-cms/django-cms/commit/b56a568844ff3702495945f73a31d0868285bf88",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/django-cms/django-cms/pull/8711",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/django-cms/django-cms/releases/tag/5.0.9",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/django-cms/django-cms/security/advisories/GHSA-hvq6-2r72-p2x7",
      "source": "[email protected]"
    }
  ]
}