CVE-2026-21876 (GCVE-0-2026-21876)

Vulnerability from cvelistv5 – Published: 2026-01-08 13:55 – Updated: 2026-04-09 15:41
VLAI?
Title
OWASP CRS has multipart bypass using multiple content-type parts
Summary
The OWASP core rule set (CRS) is a set of generic attack detection rules for use with compatible web application firewalls. Prior to versions 4.22.0 and 3.3.8, the current rule 922110 has a bug when processing multipart requests with multiple parts. When the first rule in a chain iterates over a collection (like `MULTIPART_PART_HEADERS`), the capture variables (`TX:0`, `TX:1`) get overwritten with each iteration. Only the last captured value is available to the chained rule, which means malicious charsets in earlier parts can be missed if a later part has a legitimate charset. Versions 4.22.0 and 3.3.8 patch the issue.
CWE
  • CWE-794 - Incomplete Filtering of Multiple Instances of Special Elements
Assigner
Impacted products
Vendor Product Version
coreruleset coreruleset Affected: < 4.22.0
Affected: < 3.3.8
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-21876",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "yes"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-01-08T14:52:48.615550Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-04-09T15:41:17.073Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/daytriftnewgen/CVE-2026-21876"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "coreruleset",
          "vendor": "coreruleset",
          "versions": [
            {
              "status": "affected",
              "version": "\u003c 4.22.0"
            },
            {
              "status": "affected",
              "version": "\u003c 3.3.8"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "The OWASP core rule set (CRS) is a set of generic attack detection rules for use with compatible web application firewalls. Prior to versions 4.22.0 and 3.3.8, the current rule 922110 has a bug when processing multipart requests with multiple parts. When the first rule in a chain iterates over a collection (like `MULTIPART_PART_HEADERS`), the capture variables (`TX:0`, `TX:1`) get overwritten with each iteration. Only the last captured value is available to the chained rule, which means malicious charsets in earlier parts can be missed if a later part has a legitimate charset. Versions 4.22.0 and 3.3.8 patch the issue."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 9.3,
            "baseSeverity": "CRITICAL",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "LOW",
            "privilegesRequired": "NONE",
            "scope": "CHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-794",
              "description": "CWE-794: Incomplete Filtering of Multiple Instances of Special Elements",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-01-08T13:55:37.102Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5"
        },
        {
          "name": "https://github.com/coreruleset/coreruleset/commit/80d80473abf71bd49bf6d3c1ab221e3c74e4eb83",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/coreruleset/coreruleset/commit/80d80473abf71bd49bf6d3c1ab221e3c74e4eb83"
        },
        {
          "name": "https://github.com/coreruleset/coreruleset/commit/9917985de09a6cf38b3261faf9105e909d67a7d6",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/coreruleset/coreruleset/commit/9917985de09a6cf38b3261faf9105e909d67a7d6"
        },
        {
          "name": "https://github.com/coreruleset/coreruleset/releases/tag/v3.3.8",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/coreruleset/coreruleset/releases/tag/v3.3.8"
        },
        {
          "name": "https://github.com/coreruleset/coreruleset/releases/tag/v4.22.0",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/coreruleset/coreruleset/releases/tag/v4.22.0"
        }
      ],
      "source": {
        "advisory": "GHSA-36fv-25j3-r2c5",
        "discovery": "UNKNOWN"
      },
      "title": "OWASP CRS has multipart bypass using multiple content-type parts"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-21876",
    "datePublished": "2026-01-08T13:55:37.102Z",
    "dateReserved": "2026-01-05T17:24:36.927Z",
    "dateUpdated": "2026-04-09T15:41:17.073Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-21876\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-01-08T14:15:57.087\",\"lastModified\":\"2026-04-09T16:16:26.437\",\"vulnStatus\":\"Modified\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"The OWASP core rule set (CRS) is a set of generic attack detection rules for use with compatible web application firewalls. Prior to versions 4.22.0 and 3.3.8, the current rule 922110 has a bug when processing multipart requests with multiple parts. When the first rule in a chain iterates over a collection (like `MULTIPART_PART_HEADERS`), the capture variables (`TX:0`, `TX:1`) get overwritten with each iteration. Only the last captured value is available to the chained rule, which means malicious charsets in earlier parts can be missed if a later part has a legitimate charset. Versions 4.22.0 and 3.3.8 patch the issue.\"},{\"lang\":\"es\",\"value\":\"El conjunto de reglas base de OWASP (CRS) es un conjunto de reglas gen\u00e9ricas de detecci\u00f3n de ataques para usar con firewalls de aplicaciones web compatibles. Antes de las versiones 4.22.0 y 3.3.8, la regla actual 922110 tiene un error al procesar solicitudes multipart con m\u00faltiples partes. Cuando la primera regla en una cadena itera sobre una colecci\u00f3n (como \u0027MULTIPART_PART_HEADERS\u0027), las variables de captura (\u0027TX:0\u0027, \u0027TX:1\u0027) se sobrescriben con cada iteraci\u00f3n. Solo el \u00faltimo valor capturado est\u00e1 disponible para la regla encadenada, lo que significa que los conjuntos de caracteres maliciosos en partes anteriores pueden pasarse por alto si una parte posterior tiene un conjunto de caracteres leg\u00edtimo. Las versiones 4.22.0 y 3.3.8 parchean el problema.\"}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N\",\"baseScore\":9.3,\"baseSeverity\":\"CRITICAL\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"CHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":3.9,\"impactScore\":4.7},{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N\",\"baseScore\":5.3,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"NONE\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":3.9,\"impactScore\":1.4}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-794\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:owasp:owasp_modsecurity_core_rule_set:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"3.3.8\",\"matchCriteriaId\":\"85E31C8A-3287-4CD7-A3C8-29FB164CB229\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:owasp:owasp_modsecurity_core_rule_set:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.0.0\",\"versionEndExcluding\":\"4.22.0\",\"matchCriteriaId\":\"1FCBECBB-D90D-4883-81FF-F5F43C7A926C\"}]}]}],\"references\":[{\"url\":\"https://github.com/coreruleset/coreruleset/commit/80d80473abf71bd49bf6d3c1ab221e3c74e4eb83\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/coreruleset/coreruleset/commit/9917985de09a6cf38b3261faf9105e909d67a7d6\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/coreruleset/coreruleset/releases/tag/v3.3.8\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/coreruleset/coreruleset/releases/tag/v4.22.0\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Exploit\",\"Vendor Advisory\"]},{\"url\":\"https://github.com/daytriftnewgen/CVE-2026-21876\",\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\"}]}}",
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-21876\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"yes\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-01-08T14:52:48.615550Z\"}}}], \"references\": [{\"url\": \"https://github.com/daytriftnewgen/CVE-2026-21876\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-01-08T14:52:52.629Z\"}}], \"cna\": {\"title\": \"OWASP CRS has multipart bypass using multiple content-type parts\", \"source\": {\"advisory\": \"GHSA-36fv-25j3-r2c5\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"CHANGED\", \"version\": \"3.1\", \"baseScore\": 9.3, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"CRITICAL\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N\", \"integrityImpact\": \"LOW\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"NONE\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"coreruleset\", \"product\": \"coreruleset\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 4.22.0\"}, {\"status\": \"affected\", \"version\": \"\u003c 3.3.8\"}]}], \"references\": [{\"url\": \"https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5\", \"name\": \"https://github.com/coreruleset/coreruleset/security/advisories/GHSA-36fv-25j3-r2c5\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/coreruleset/coreruleset/commit/80d80473abf71bd49bf6d3c1ab221e3c74e4eb83\", \"name\": \"https://github.com/coreruleset/coreruleset/commit/80d80473abf71bd49bf6d3c1ab221e3c74e4eb83\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/coreruleset/coreruleset/commit/9917985de09a6cf38b3261faf9105e909d67a7d6\", \"name\": \"https://github.com/coreruleset/coreruleset/commit/9917985de09a6cf38b3261faf9105e909d67a7d6\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/coreruleset/coreruleset/releases/tag/v3.3.8\", \"name\": \"https://github.com/coreruleset/coreruleset/releases/tag/v3.3.8\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/coreruleset/coreruleset/releases/tag/v4.22.0\", \"name\": \"https://github.com/coreruleset/coreruleset/releases/tag/v4.22.0\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"The OWASP core rule set (CRS) is a set of generic attack detection rules for use with compatible web application firewalls. Prior to versions 4.22.0 and 3.3.8, the current rule 922110 has a bug when processing multipart requests with multiple parts. When the first rule in a chain iterates over a collection (like `MULTIPART_PART_HEADERS`), the capture variables (`TX:0`, `TX:1`) get overwritten with each iteration. Only the last captured value is available to the chained rule, which means malicious charsets in earlier parts can be missed if a later part has a legitimate charset. Versions 4.22.0 and 3.3.8 patch the issue.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-794\", \"description\": \"CWE-794: Incomplete Filtering of Multiple Instances of Special Elements\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-01-08T13:55:37.102Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-21876\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-04-09T15:41:17.073Z\", \"dateReserved\": \"2026-01-05T17:24:36.927Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-01-08T13:55:37.102Z\", \"assignerShortName\": \"GitHub_M\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…