← Back to CVE Explorer

CVE-2026-15830

Full vulnerability record from the local CVENow database.

Description

An issue was discovered in Django 6.0 before 6.0.9 and 5.2 before 5.2.18. GeoDjango's `django.contrib.gis.geos.GEOSGeometry` is subject to a potential denial-of-service when parsing deeply nested `GEOMETRYCOLLECTION` objects supplied as well-known text (WKT), well-known binary (WKB), or hex-encoded WKB, which triggers unbounded recursion and a segmentation fault in the underlying GEOS library. Spatial field lookups and the `django.contrib.gis.forms.GeometryField` form field are also affected. 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 MacPherson and kimchunbok_ for reporting this issue.

Severity
MEDIUM
CVSS score
6.9 (v4.0)
Vulnerability status
Modified
Source identifier
6a34fbeb-21d4-45e7-8e0a-62b95bc12c92
Published
2026-08-04 17:16:46.593000
Last modified
2026-10-24 16:10:00.153000
View original CVE JSON
{
  "id": "CVE-2026-15830",
  "sourceIdentifier": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
  "published": "2026-08-04T17:16:46.593",
  "lastModified": "2026-10-24T16:10:00.153",
  "vulnStatus": "Modified",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "An issue was discovered in Django 6.0 before 6.0.9 and 5.2 before 5.2.18.\nGeoDjango's `django.contrib.gis.geos.GEOSGeometry` is subject to a potential denial-of-service when parsing deeply nested `GEOMETRYCOLLECTION` objects supplied as well-known text (WKT), well-known binary (WKB), or hex-encoded WKB, which triggers unbounded recursion and a segmentation fault in the underlying GEOS library. Spatial field lookups and the `django.contrib.gis.forms.GeometryField` form field are also affected.\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 MacPherson and kimchunbok_ for reporting this issue."
    },
    {
      "lang": "es",
      "value": "Se descubrió un problema en Django 6.0 anterior a la versión 6.0.9 y 5.2 anterior a la versión 5.2.18. La clase ’django.contrib.gis.geos.GEOSGeometry’ de GeoDjango es susceptible a una posible denegación de servicio al analizar objetos ’GEOMETRYCOLLECTION’ profundamente anidados, proporcionados como texto conocido (WKT), binario conocido (WKB) o WKB codificado en hexadecimal, lo que desencadena una recursión ilimitada y un fallo de segmentación en la biblioteca GEOS subyacente. Las búsquedas de campos espaciales y el campo de formulario ’django.contrib.gis.forms.GeometryField’ también se ven afectados. Series de Django anteriores y sin soporte (como 5.1.x, 5.0.x y 4.2.x) no fueron evaluadas y también podrían verse afectadas. Django desea agradecer a Andrew MacPherson y kimchunbok_ por informar de este problema."
    }
  ],
  "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.0",
              "lessThan": "6.0.9",
              "versionType": "python",
              "status": "affected"
            },
            {
              "version": "6.0.9",
              "versionType": "python",
              "status": "unaffected"
            },
            {
              "version": "5.2",
              "lessThan": "5.2.18",
              "versionType": "python",
              "status": "affected"
            },
            {
              "version": "5.2.18",
              "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:N/PR:N/UI:N/VC:N/VI:N/VA:L/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": 6.9,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "attackRequirements": "NONE",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "vulnConfidentialityImpact": "NONE",
          "vulnIntegrityImpact": "NONE",
          "vulnAvailabilityImpact": "LOW",
          "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:L/PR:N/UI:N/S:U/C:N/I:N/A:L",
          "baseScore": 5.3,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "NONE",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "NONE",
          "integrityImpact": "NONE",
          "availabilityImpact": "LOW"
        },
        "exploitabilityScore": 3.9,
        "impactScore": 1.4
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-08-04T17:16:11.996083Z",
          "id": "CVE-2026-15830",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-674"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*",
              "versionEndExcluding": "5.2.17",
              "matchCriteriaId": "36AF9FD9-D477-457E-991A-66F40DB48637"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "6.0",
              "versionEndExcluding": "6.0.8",
              "matchCriteriaId": "D2E4E199-5735-4911-92F2-73B0AA1D173E"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://docs.djangoproject.com/en/dev/releases/security/",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Patch",
        "Vendor Advisory"
      ]
    },
    {
      "url": "https://github.com/django/django/commit/1eafa1a80f1363283f89208ba4499ed54e35f085",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/4353dfb56f8ba3a6fccc4bdd7f2ef2fbee3aa638",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/62ef9d40cf4ea75f16518436b44b8ab2515340df",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/6af5da31775417c610dbf9c3f1b5b8333d42daf6",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/django/django/commit/75d401a1491e04a907ed745c128836d51c982c0f",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92"
    },
    {
      "url": "https://github.com/django/django/commit/9e4a3f186b6b07b483bfd9195ea06734663fcd06",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/django/django/commit/ba80833fa656dd09660b97c4429331067db1b080",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/django/django/commit/d2e59b77fe18de318a8272c2a7bbc798d84d1d0d",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://groups.google.com/g/django-announce",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Mailing List"
      ]
    },
    {
      "url": "https://www.djangoproject.com/weblog/2026/aug/04/security-releases/",
      "source": "6a34fbeb-21d4-45e7-8e0a-62b95bc12c92",
      "tags": [
        "Vendor Advisory"
      ]
    }
  ]
}