← Back to CVE Explorer

CVE-2026-113593

Full vulnerability record from the local CVENow database.

Description

An issue was discovered in Django 6.1 before 6.1.3, 6.0 before 6.0.10, and 5.2 before 5.2.19. The `django.middleware.cache.UpdateCacheMiddleware` and the `django.views.decorators.cache.cache_page()` decorator generate identical cache keys for requests that omit a header listed in the response’s `Vary` header and requests that include that header with an empty value, potentially allowing remote attackers to access private data cached for another request. Earlier, unsupported Django series (such as 5.1.x, 5.0.x, and 4.2.x) were not evaluated and may also be affected. Django would like to thank Andrew Gonzalez for reporting this issue.

Severity
LOW
CVSS score
2.3 (v4.0)
Vulnerability status
Deferred
Source identifier
6a34fbeb-21d4-45e7-8e0a-62b95bc12c92
Published
2026-11-03 16:17:19.183000
Last modified
2026-11-03 16:17:19.330000
View original CVE JSON
{
  "id": "CVE-2026-113593",
  "sourceIdentifier": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
  "published": "2026-11-03T16:17:19.183",
  "lastModified": "2026-11-03T16:17:19.330",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "An issue was discovered in Django 6.1 before 6.1.3, 6.0 before 6.0.10, and 5.2 before 5.2.19.\nThe `django.middleware.cache.UpdateCacheMiddleware` and the `django.views.decorators.cache.cache_page()` decorator generate identical cache keys for requests that omit a header listed in the response’s `Vary` header and requests that include that header with an empty value, potentially allowing remote attackers to access private data cached for another request.\nEarlier, unsupported Django series (such as 5.1.x, 5.0.x, and 4.2.x) were not evaluated and may also be affected.\nDjango would like to thank Andrew Gonzalez for reporting this issue."
    }
  ],
  "affected": [
    {
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "affectedData": [
        {
          "vendor": "djangoproject",
          "product": "Django",
          "defaultStatus": "unaffected",
          "collectionURL": "https://pypi.org/project/Django/",
          "packageName": "django",
          "repo": "https://github.com/django/django/",
          "versions": [
            {
              "version": "6.1",
              "lessThan": "6.1.3",
              "versionType": "python",
              "status": "affected"
            },
            {
              "version": "6.1.3",
              "versionType": "python",
              "status": "unaffected"
            },
            {
              "version": "6.0",
              "lessThan": "6.0.10",
              "versionType": "python",
              "status": "affected"
            },
            {
              "version": "6.0.10",
              "versionType": "python",
              "status": "unaffected"
            },
            {
              "version": "5.2",
              "lessThan": "5.2.19",
              "versionType": "python",
              "status": "affected"
            },
            {
              "version": "5.2.19",
              "versionType": "python",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV40": [
      {
        "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
        "type": "Secondary",
        "cvssData": {
          "version": "4.0",
          "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
          "baseScore": 2.3,
          "baseSeverity": "LOW",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "PRESENT",
          "privilegesRequired": "NONE",
          "userInteraction": "PASSIVE",
          "vulnConfidentialityImpact": "LOW",
          "vulnIntegrityImpact": "NONE",
          "vulnAvailabilityImpact": "NONE",
          "subConfidentialityImpact": "NONE",
          "subIntegrityImpact": "NONE",
          "subAvailabilityImpact": "NONE",
          "exploitMaturity": "NOT_DEFINED",
          "confidentialityRequirement": "NOT_DEFINED",
          "integrityRequirement": "NOT_DEFINED",
          "availabilityRequirement": "NOT_DEFINED",
          "modifiedAttackVector": "NOT_DEFINED",
          "modifiedAttackComplexity": "NOT_DEFINED",
          "modifiedAttackRequirements": "NOT_DEFINED",
          "modifiedPrivilegesRequired": "NOT_DEFINED",
          "modifiedUserInteraction": "NOT_DEFINED",
          "modifiedVulnConfidentialityImpact": "NOT_DEFINED",
          "modifiedVulnIntegrityImpact": "NOT_DEFINED",
          "modifiedVulnAvailabilityImpact": "NOT_DEFINED",
          "modifiedSubConfidentialityImpact": "NOT_DEFINED",
          "modifiedSubIntegrityImpact": "NOT_DEFINED",
          "modifiedSubAvailabilityImpact": "NOT_DEFINED",
          "Safety": "NOT_DEFINED",
          "Automatable": "NOT_DEFINED",
          "Recovery": "NOT_DEFINED",
          "valueDensity": "NOT_DEFINED",
          "vulnerabilityResponseEffort": "NOT_DEFINED",
          "providerUrgency": "NOT_DEFINED"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N",
          "baseScore": 3.1,
          "baseSeverity": "LOW",
          "attackVector": "NETWORK",
          "attackComplexity": "HIGH",
          "privilegesRequired": "NONE",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "NONE",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 1.6,
        "impactScore": 1.4
      }
    ]
  },
  "weaknesses": [
    {
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-524"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://docs.djangoproject.com/en/dev/releases/security/",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/2006a2b068766bf332f1afcc32b7614d8e5759a2",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/55e2e009b4f3996e5c55af7b22a8c41eb826e892",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/9007fecd3633cfd90b093ebe106af564347c8aee",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/c0b7e5e4e4546e8ddc58262f1945938bb9d9ac2d",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://groups.google.com/g/django-announce",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://www.djangoproject.com/weblog/2026/nov/03/security-releases/",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    }
  ]
}