Skip to main content
Public proof of conceptFix available

CVE-2015-20107

A public proof of concept exists; no exploitation attested.

  • Published2022-04-13
  • Fixed in3.10.8
  • WeaknessCWE-77

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

In Python (aka CPython) up to 3.10.8, the mailcap module does not add escape characters into commands discovered in the system mailcap file. This may allow attackers to inject shell commands into applications that call mailcap.findmatch with untrusted input (if they lack validation of user-provided filenames or arguments). The fix is also back-ported to 3.7, 3.8, 3.9

Timeline

dates in UTC
  1. 2022-04-1316:15CVE publishedNVD

Versions per branch

NVD
Python
BranchAffectedFixed in
3.10≥ 3.10.0, < 3.10.83.10.8
3.7≥ 3.7.0, ≤ 3.7.15no fix published
3.8≥ 3.8.0, ≤ 3.8.15no fix published
3.9≥ 3.9.0, ≤ 3.9.15no fix published
Fedoraproject fedora
BranchAffectedFixed in
35.x= 35no fix published
36.x= 36no fix published
37.x= 37no fix published
Netapp active iq unified manager
BranchAffectedFixed in
—all versionsno fix published

2 more products in the sources.

as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • babelRocky Linux:8all versions · fixed in 0:2.5.1-10.module+el8.5.0+706+735ec4b3
  • babelRocky Linux:8all versions · fixed in 0:2.7.0-11.module+el8.5.0+672+ab6eb015
  • babelRed Hat:enterprise_linux:8::appstreamall versions · fixed in 0:2.5.1-10.module+el8.5.0+11014+88fc0d0band 1 other package
  • babelRed Hat:enterprise_linux:8::appstreamall versions · fixed in 0:2.7.0-11.module+el8.5.0+11015+9c1c7c42and 1 other package
  • babelAlmaLinux:8all versions · fixed in 2.5.1-10.module_el8.6.0+2781+fed64c13and 1 other package
  • CythonRocky Linux:8all versions · fixed in 0:0.28.1-7.module+el8.4.0+403+9ae17a31
  • CythonRocky Linux:8all versions · fixed in 0:0.28.1-7.module+el8.5.0+706+735ec4b3
  • CythonRocky Linux:8all versions · fixed in 0:0.29.14-4.module+el8.4.0+570+c2eaf144

531 more package ranges on OSV.dev

Vendor advisories

  • CVE-2015-20107 Red Hat Product Security893 products fixed · 12 known affected

    python: mailcap: findmatch() function does not sanitize the second argument

    python3 as a component of Red Hat Enterprise Linux 7 · python3-debug as a component of Red Hat Enterprise Linux 7 · python3-devel as a component of Red Hat Enterprise Linux 7 · +9 more

  • ICSA-23-348-10 CISA5 known affected

    Siemens SIMATIC S7-1500

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) · SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) · SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) · +2 more

  • SSA-398330 Siemens ProductCERT5 known affected

    SSA-398330: Vulnerabilities in the additional GNU/Linux subsystem of the SIMATIC S7-1500 CPU 1518(F)-4 PN/DP MFP >= V3.1.0 and < V3.1.5

    SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AB0) >= V3.1.0 < V3.1.5 · SIMATIC S7-1500 CPU 1518-4 PN/DP MFP (6ES7518-4AX00-1AC0) >= V3.1.0 < V3.1.5 · SIMATIC S7-1500 CPU 1518F-4 PN/DP MFP (6ES7518-4FX00-1AB0) >= V3.1.0 < V3.1.5 · +2 more

  • RHSA-2022:8353 Red Hat Product Security67 products fixed

    Red Hat Security Advisory: python3.9 security, bug fix, and enhancement update

  • RHSA-2022:7593 Red Hat Product Security264 products fixed

    Red Hat Security Advisory: python27:2.7 security update

  • RHSA-2022:7581 Red Hat Product Security239 products fixed

    Red Hat Security Advisory: python38:3.8 and python38-devel:3.8 security update

3 more advisories

Full record on NVD

Fix

  1. Update Python to 3.10.8
  2. Vendor fix CISA ICSA-23-348-10 · 5 productsUpdate to V3.1.5 or later version
  3. Vendor fix Siemens ProductCERT SSA-398330 · 1 productUpdate to V3.1.5 or later version
  4. Vendor fix Red Hat Product Security RHSA-2022:8353 · 67 productsFor details on how to apply this update, which includes the changes described in this advisory, refer to: https://access.redhat.com/articles/11258
  5. Workaround from the vendor Red Hat Product Security RHSA-2022:8353 · 67 productsUsers should upgrade to the latest version. If this is not possible and the affected version of the Python mailcap module has to be used then applications that use mailcap module should verify user input before passing it to the mailcap module, and the returned command before executing it.
  6. Mitigation from the vendor CISA ICSA-23-348-10 · 5 productsOnly build and run applications from trusted sources.
  7. No fix planned, says the vendor Red Hat Product Security CVE-2015-20107 · 8 productsOut of support scope

Advisories and patches

Detection

read 2026-11-01 01:02 UTC
Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof of concept
Metasploit modules
none listed
Metasploit Framework

Sources

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
Published
2022-04-13
Last Modified
2026-10-14
NVD status
Modified
GitHub Advisory
GHSA-wvcr-2gc8-63gg

Frequently asked questions

What is CVE-2015-20107?

In Python (aka CPython) up to 3.10.8, the mailcap module does not add escape characters into commands discovered in the system mailcap file. This may allow attackers to inject shell commands into applications that call mailcap.findmatch with untrusted input (if they lack validation of user-provided filenames or arguments). The fix is also back-ported to 3.7, 3.8, 3.9

Is CVE-2015-20107 actively exploited?

Active exploitation of CVE-2015-20107 has not been confirmed. Its EPSS score was 2.8% on 2026-11-08, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2015-20107?

CVE-2015-20107 has a CVSS v3 base score of 7.6 (HIGH severity), with vector string CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L.

Running Python? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record