GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

PYSEC-2026-3539

Vulnerability from pysec - Published: 2026-07-23 11:41 - Updated: 2026-07-23 14:33
VLAI
Details

sanic-cors version 2.2.0 and prior contains an improper regular expression in the try_match() function in sanic_cors/core.py that uses re.match without end-anchoring. This allows an attacker to bypass CORS origin allowlists by registering a domain that begins with a trusted origin string, to gain unauthorized access to cross-origin requests for authenticated resources.

Impacted products
Name purl
sanic-cors pkg:pypi/sanic-cors

{
  "affected": [
    {
      "package": {
        "ecosystem": "PyPI",
        "name": "sanic-cors",
        "purl": "pkg:pypi/sanic-cors"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "last_affected": "2.2.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ],
      "versions": [
        "0.10.0",
        "0.10.0.post1",
        "0.10.0.post2",
        "0.10.0.post3",
        "0.10.0b1",
        "0.4.1",
        "0.4.1.2",
        "0.4.1.4",
        "0.5.1.0",
        "0.5.4.1",
        "0.5.4.2",
        "0.6.0.0",
        "0.6.0.1",
        "0.6.0.2",
        "0.9.0",
        "0.9.1",
        "0.9.2",
        "0.9.3",
        "0.9.4",
        "0.9.5",
        "0.9.6",
        "0.9.7",
        "0.9.8",
        "0.9.8.post1",
        "0.9.8.post2",
        "0.9.8.post3",
        "0.9.9",
        "0.9.9.post1",
        "0.9.9.post2",
        "0.9.9.post3",
        "0.9.9.post4",
        "1.0.0",
        "1.0.1",
        "2.0.0",
        "2.0.1",
        "2.1.0",
        "2.2.0",
        "2.2.0b1"
      ]
    }
  ],
  "aliases": [
    "CVE-2026-37737",
    "GHSA-94jw-hqvj-vw74"
  ],
  "details": "sanic-cors version 2.2.0 and prior contains an improper regular expression in the try_match() function in sanic_cors/core.py that uses re.match without end-anchoring. This allows an attacker to bypass CORS origin allowlists by registering a domain that begins with a trusted origin string, to gain unauthorized access to cross-origin requests for authenticated resources.",
  "id": "PYSEC-2026-3539",
  "modified": "2026-07-23T14:33:03.280301Z",
  "published": "2026-07-23T11:41:39.408627Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-37737"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/ashleysommer/sanic-cors"
    },
    {
      "type": "WEB",
      "url": "https://github.com/ashleysommer/sanic-cors/blob/master/sanic_cors/core.py"
    },
    {
      "type": "WEB",
      "url": "https://github.com/npbhatter17/security-advisories/blob/main/CVE-2026-37737-sanic-cors-advisory.md"
    },
    {
      "type": "WEB",
      "url": "https://pypi.org/project/Sanic-Cors"
    },
    {
      "type": "PACKAGE",
      "url": "https://pypi.org/project/sanic-cors"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/advisories/GHSA-94jw-hqvj-vw74"
    }
  ],
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "sanic-cors contains an improper regular expression in the try_match() function"
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

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…

Loading…