Bottle 0.10.x before 0.10.12, 0.11.x before 0.11.7, and 0.12.x before 0.12.6 does not…
Priority LOW 36CWE-20Published · Updated
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- — Not recorded in CVSS 2.0
- Attack complexity
- Medium
- Impact type
- —
- Confidentiality · integrity · availability
- Partial · Partial · Partial
- Fix status
- Fixed
Attack profile from CVSS 2.0 · NVD. Fix status from CNA and GitHub.
Summary
Bottle 0.10.x before 0.10.12, 0.11.x before 0.11.7, and 0.12.x before 0.12.6 does not properly limit content types, which allows remote attackers to bypass intended access restrictions via an accepted Content-Type followed by a ; (semi-colon) and a Content-Type that would not be accepted, as demonstrated in YouCompleteMe to execute arbitrary code.
Why it matters now
EPSS 0.03115 87th percentileScored 2026-11-07
Fix Fixed bottle (PyPI): 0.10.12, 0.11.7, 0.12.6
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | bottle (PyPI) | 0.10.0 to before 0.10.12 | 0.10.12 | Patch available | GHSA-873q-wpqr-xfgw |
| — | bottle (PyPI) | 0.11.0 to before 0.11.7 | 0.11.7 | Patch available | GHSA-873q-wpqr-xfgw |
| — | bottle (PyPI) | 0.12.0 to before 0.12.6 | 0.12.6 | Patch available | GHSA-873q-wpqr-xfgw |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- bottle (PyPI) Vendor— Affected 0.10.0 to before 0.10.12 Fixed in 0.10.12 Patch available GHSA-873q-wpqr-xfgw
- bottle (PyPI) Vendor— Affected 0.11.0 to before 0.11.7 Fixed in 0.11.7 Patch available GHSA-873q-wpqr-xfgw
- bottle (PyPI) Vendor— Affected 0.12.0 to before 0.12.6 Fixed in 0.12.6 Patch available GHSA-873q-wpqr-xfgw
CPE configurations NVD · 26
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:bottlepy:bottle:0.10.0:*:*:*:*:*:*:* | 0.10.0 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.1:*:*:*:*:*:*:* | 0.10.1 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.2:*:*:*:*:*:*:* | 0.10.2 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.3:*:*:*:*:*:*:* | 0.10.3 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.4:*:*:*:*:*:*:* | 0.10.4 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.5:*:*:*:*:*:*:* | 0.10.5 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.6:*:*:*:*:*:*:* | 0.10.6 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.7:*:*:*:*:*:*:* | 0.10.7 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.8:*:*:*:*:*:*:* | 0.10.8 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.9:*:*:*:*:*:*:* | 0.10.9 | Vulnerable | Bottlepy |
- cpe:2.3:a:bottlepy:bottle:0.10.0:*:*:*:*:*:*:* Versions 0.10.0 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.1:*:*:*:*:*:*:* Versions 0.10.1 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.2:*:*:*:*:*:*:* Versions 0.10.2 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.3:*:*:*:*:*:*:* Versions 0.10.3 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.4:*:*:*:*:*:*:* Versions 0.10.4 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.5:*:*:*:*:*:*:* Versions 0.10.5 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.6:*:*:*:*:*:*:* Versions 0.10.6 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.7:*:*:*:*:*:*:* Versions 0.10.7 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.8:*:*:*:*:*:*:* Versions 0.10.8 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.9:*:*:*:*:*:*:* Versions 0.10.9 Vulnerable ·Bottlepy
Show 16 more CPE
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:bottlepy:bottle:0.10.10:*:*:*:*:*:*:* | 0.10.10 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.10.11:*:*:*:*:*:*:* | 0.10.11 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.0:*:*:*:*:*:*:* | 0.11.0 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.1:*:*:*:*:*:*:* | 0.11.1 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.2:*:*:*:*:*:*:* | 0.11.2 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.3:*:*:*:*:*:*:* | 0.11.3 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.4:*:*:*:*:*:*:* | 0.11.4 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.5:*:*:*:*:*:*:* | 0.11.5 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.6:*:*:*:*:*:*:* | 0.11.6 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.11.7:*:*:*:*:*:*:* | 0.11.7 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.12.0:*:*:*:*:*:*:* | 0.12.0 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.12.1:*:*:*:*:*:*:* | 0.12.1 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.12.2:*:*:*:*:*:*:* | 0.12.2 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.12.3:*:*:*:*:*:*:* | 0.12.3 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.12.4:*:*:*:*:*:*:* | 0.12.4 | Vulnerable | Bottlepy |
| cpe:2.3:a:bottlepy:bottle:0.12.5:*:*:*:*:*:*:* | 0.12.5 | Vulnerable | Bottlepy |
- cpe:2.3:a:bottlepy:bottle:0.10.10:*:*:*:*:*:*:* Versions 0.10.10 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.10.11:*:*:*:*:*:*:* Versions 0.10.11 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.0:*:*:*:*:*:*:* Versions 0.11.0 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.1:*:*:*:*:*:*:* Versions 0.11.1 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.2:*:*:*:*:*:*:* Versions 0.11.2 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.3:*:*:*:*:*:*:* Versions 0.11.3 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.4:*:*:*:*:*:*:* Versions 0.11.4 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.5:*:*:*:*:*:*:* Versions 0.11.5 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.6:*:*:*:*:*:*:* Versions 0.11.6 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.11.7:*:*:*:*:*:*:* Versions 0.11.7 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.12.0:*:*:*:*:*:*:* Versions 0.12.0 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.12.1:*:*:*:*:*:*:* Versions 0.12.1 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.12.2:*:*:*:*:*:*:* Versions 0.12.2 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.12.3:*:*:*:*:*:*:* Versions 0.12.3 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.12.4:*:*:*:*:*:*:* Versions 0.12.4 Vulnerable ·Bottlepy
- cpe:2.3:a:bottlepy:bottle:0.12.5:*:*:*:*:*:*:* Versions 0.12.5 Vulnerable ·Bottlepy
Remediation
- Fix · GHSA-873q-wpqr-xfgw bottle (PyPI) Fixed in 0.10.12 Advisory →
- Fix · GHSA-873q-wpqr-xfgw bottle (PyPI) Fixed in 0.11.7 Advisory →
- Fix · GHSA-873q-wpqr-xfgw bottle (PyPI) Fixed in 0.12.6 Advisory →
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2014-3137
- 2026-10-03 Alias added: GHSA-873q-wpqr-xfgw
References
Other 5
- https://github.com/defnull/bottle/issues/616
- [oss-security] 20140501 Re: CVE request: Python Bottle JSON content-type not restrictive enough
- https://github.com/bottlepy/bottle/issues/616
- https://github.com/bottlepy/bottle
- https://github.com/pypa/advisory-database/tree/main/vulns/bottle/PYSEC-2014-77.yaml
More Bottlepy Bottle vulnerabilities
- TI-2022-13691 Bottle before 0.12.20 mishandles errors during early request binding. CVSS 3.1CRITICAL 9.8
- TI-2020-17286 Web Cache Poisoning CVSS 3.1MEDIUM 6.8
- TI-2016-08070 redirect() in bottle.py in bottle 0.12.10 doesn't filter a "\r\n" sequence, which leads… CVSS 3.0MEDIUM 6.5
Sources
- CVE-2014-3137 · CVE Program
- CVE-2014-3137 · NVD
- FIRST EPSS
- GHSA-873q-wpqr-xfgw · GitHub Advisory Database · CC BY 4.0
- CVE-2014-3137 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences