CVE-2026-37737 json
sanic-cors contains an improper regular expression in the try_match() function
published 2026-06-05 5 mo ago modified 2026-07-23 3 mo ago also GHSA-94jw-hqvj-vw74 , PYSEC-2026-3539 , EUVD-2026-34844
- cvss
- 6.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 5%
- public exploits
- 0
- none known
Summary
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.
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5 mo ago
Exploit prediction
0.16% chance of exploitation in the next 30 days, higher than 5% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| CNA | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| GitHub | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 6.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | sanic-cors | <=2.2.0 |
no fix listed |
Classification
References
-
github.com
/ashleysommer/sanic-cors/blob/master/sanic_cors/core.py
web
-
github.com
/ashleysommer/sanic-cors
package
- pypi.org /project/Sanic-Cors/
-
github.com
/npbhatter17/security-advisories/blob/main/CVE-2026-37737-sanic-cors-advisory.md
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-37737
advisory
-
pypi.org
/project/Sanic-Cors
web
-
pypi.org
/project/sanic-cors
package
-
github.com
/advisories/GHSA-94jw-hqvj-vw74
advisory
Sources
- CVE List CVE-2026-37737
- GitHub Advisory GHSA-94jw-hqvj-vw74
- NVD CVE-2026-37737
- OSV PYSEC-2026-3539
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.