Every CVE Search/ Get API key

CVE-2023-6507

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

6.1 MediumFix available

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Attack profile

How easy it is to exploit

Attack vector
Adjacent network
Complexity
Low
Privileges needed
High
User interaction
None

What an attacker can affect

Confidentiality
High
Integrity
High
Availability
None

Exploit likelihood

1.34%Up 1.3 points since Dec 9, 2023
90%50%10%1%

What each source reports

CVE List Score used 6.1

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
CVE-2023-6507
CVSS 3.1
6.1 MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Weakness
CWE-269
Updated
2026-11-02
EUVDEUVD-2023-58738 6.1

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
EUVD-2023-58738
CVSS 3.1
6.1 MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-4wxh-fpjf-c8wf 6.1

An issue was found in CPython 3.12.0 `subprocess` module on POSIX platforms. The issue was fixed...

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
GHSA-4wxh-fpjf-c8wf
CVSS 3.1
6.1 MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Weakness
CWE-269
Updated
2026-11-02
NVD 6.1

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
CVE-2023-6507
CVSS 3.1
6.1 MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
CVSS 3.1
4.9 MediumCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-269
Updated
2026-11-02
OSVAZL-35143 4.9

CVE-2023-6507 affecting package python3 for versions less than 3.12.3-1

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
AZL-35143
CVSS 3.1
4.9 MediumCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
OSVBELL-CVE-2023-6507 4.9

CVE-2023-6507 does not affect BellSoft software

Record
BELL-CVE-2023-6507
CVSS 3.1
4.9 MediumCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
Updated
2026-11-02
Show 9 moreShow less
OSV 6.1

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
CVE-2023-6507
CVSS 3.1
6.1 MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Weakness
CWE-269
Updated
2026-11-04
OSVUBUNTU-CVE-2023-6507 4.9

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases. When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list. This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
UBUNTU-CVE-2023-6507
CVSS 3.1
4.9 MediumCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:N
CVSS 3.1
6.1 MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Updated
2026-11-02
OSVBIT-libpython-2023-6507 No score

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
BIT-libpython-2023-6507
Updated
2026-11-02
OSVBIT-python-2023-6507 No score

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
BIT-python-2023-6507
Updated
2026-11-02
OSVBIT-python-min-2023-6507 No score

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
BIT-python-min-2023-6507
Updated
2026-11-02
OSVopenSUSE-SU-2024:13511-1 No score

python312-3.12.1-1.1 on GA media

These are all security issues fixed in the python312-3.12.1-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2024:13511-1
Updated
2026-11-02
OSVPSF-2023-12 No score

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
PSF-2023-12
Updated
2026-11-02
OSVPSF-CVE-2023-6507 No score

Groups not dropped before running subprocess when using empty 'extra_groups' parameter

An issue was found in CPython 3.12.0 subprocess module on POSIX platforms. The issue was fixed in CPython 3.12.1 and does not affect other stable releases.

When using the extra_groups= parameter with an empty list as a value (ie extra_groups=[]) the logic regressed to not call setgroups(0, NULL) before calling exec(), thus not dropping the original processes' groups before starting the new process. There is no issue when the parameter isn't used or when any value is used besides an empty list.

This issue only impacts CPython processes run with sufficient privilege to make the setgroups system call (typically root).

Record
PSF-CVE-2023-6507
Updated
2026-11-02
OSVUSN-6891-1 No score

python3.5, python3.6, python3.7, python3.8, python3.9, python3.10, python3.11, python3.12 vulnerabilities

It was discovered that Python incorrectly handled certain inputs. An attacker could possibly use this issue to execute arbitrary code. This issue only affected Ubuntu 14.04 LTS and Ubuntu 18.04 LTS. (CVE-2015-20107)

It was discovered that Python incorrectly used regular expressions vulnerable to catastrophic backtracking. A remote attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 14.04 LTS. (CVE-2018-1060, CVE-2018-1061)

It was discovered that Python failed to initialize Expat’s hash salt. A remote attacker could possibly use this issue to cause hash collisions, leading to a denial of service. This issue only affected Ubuntu 14.04 LTS. (CVE-2018-14647)

It was discovered that Python incorrectly handled certain pickle files. An attacker could possibly use this issue to consume memory, leading to a denial of service. This issue only affected Ubuntu 14.04 LTS. (CVE-2018-20406)

It was discovered that Python incorrectly validated the domain when handling cookies. An attacker could possibly trick Python into sending cookies to the wrong domain. This issue only affected Ubuntu 14.04 LTS. (CVE-2018-20852)

Jonathan Birch and Panayiotis Panayiotou discovered that Python incorrectly handled Unicode encoding during NFKC normalization. An attacker could possibly use this issue to obtain sensitive information. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-9636, CVE-2019-10160)

It was discovered that Python incorrectly parsed certain email addresses. A remote attacker could possibly use this issue to trick Python applications into accepting email addresses that should be denied. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-16056)

It was discovered that the Python documentation XML-RPC server incorrectly handled certain fields. A remote attacker could use this issue to execute a cross-site scripting (XSS) attack. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-16935)

It was discovered that Python documentation had a misleading information. A security issue could be possibly caused by wrong assumptions of this information. This issue only affected Ubuntu 14.04 LTS and Ubuntu 18.04 LTS. (CVE-2019-17514)

It was discovered that Python incorrectly stripped certain characters from requests. A remote attacker could use this issue to perform CRLF injection. This issue only affected Ubuntu 14.04 LTS and Ubuntu 18.04 LTS. (CVE-2019-18348)

It was discovered that Python incorrectly handled certain TAR archives. An attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 14.04 LTS and Ubuntu 18.04 LTS. (CVE-2019-20907)

Colin Read and Nicolas Edet discovered that Python incorrectly handled parsing certain X509 certificates. An attacker could possibly use this issue to cause Python to crash, resulting in a denial of service. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-5010)

It was discovered that incorrectly handled certain ZIP files. An attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-9674)

It was discovered that Python incorrectly handled certain urls. A remote attacker could possibly use this issue to perform CRLF injection attacks. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-9740, CVE-2019-9947)

Sihoon Lee discovered that Python incorrectly handled the local_file: scheme. A remote attacker could possibly use this issue to bypass blocklist meschanisms. This issue only affected Ubuntu 14.04 LTS. (CVE-2019-9948)

It was discovered that Python incorrectly handled certain IP values. An attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 14.04 LTS and Ubuntu 18.04 LTS. (CVE-2020-14422)

It was discovered that Python incorrectly handled certain character sequences. A remote attacker could possibly use this issue to perform CRLF injection. This issue only affected Ubuntu 14.04 LTS and Ubuntu…

Record
USN-6891-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
python3
Azure Linux:3
before 3.12.3-1
3.12.3-1
libpython
Bitnami
3.12.0 up to 3.12.1
3.12.1
python
Bitnami
3.12.0 up to 3.12.1
3.12.1
python-min
Bitnami
3.12.0 up to 3.12.1
3.12.1
python3.5
Ubuntu:Pro:14.04:LTS
From an advisory covering 41 CVEs
before 3.5.2-2ubuntu0~16.04.4~14.04.1+esm1, plus listed versions
3.5.2-2ubuntu0~16.04.4~14.04.1
3.5.2-2ubuntu0~16.04.4~14.04.1+esm1
python3.5
Ubuntu:Pro:16.04:LTS
From an advisory covering 41 CVEs
before 3.5.2-2ubuntu0~16.04.13+esm13, plus listed versions
3.5.0-33.5.0-3ubuntu13.5.1~rc1-2ubuntu13.5.1-13.5.1-2
Show 30 moreShow less
3.5.1-33.5.1-53.5.1-6ubuntu13.5.1-6ubuntu23.5.1-9ubuntu13.5.1-103.5.2-2~16.013.5.2-2~16.043.5.2-2ubuntu0~16.04.13.5.2-2ubuntu0~16.04.23.5.2-2ubuntu0~16.04.33.5.2-2ubuntu0~16.04.43.5.2-2ubuntu0~16.04.53.5.2-2ubuntu0~16.04.83.5.2-2ubuntu0~16.04.93.5.2-2ubuntu0~16.04.103.5.2-2ubuntu0~16.04.113.5.2-2ubuntu0~16.04.123.5.2-2ubuntu0~16.04.133.5.2-2ubuntu0~16.04.13+esm13.5.2-2ubuntu0~16.04.13+esm23.5.2-2ubuntu0~16.04.13+esm33.5.2-2ubuntu0~16.04.13+esm53.5.2-2ubuntu0~16.04.13+esm63.5.2-2ubuntu0~16.04.13+esm73.5.2-2ubuntu0~16.04.13+esm83.5.2-2ubuntu0~16.04.13+esm93.5.2-2ubuntu0~16.04.13+esm103.5.2-2ubuntu0~16.04.13+esm113.5.2-2ubuntu0~16.04.13+esm12
3.5.2-2ubuntu0~16.04.13+esm13
python3.6
Ubuntu:Pro:18.04:LTS
From an advisory covering 41 CVEs
before 3.6.9-1~18.04ubuntu1.13+esm2, plus listed versions
3.6.3-1ubuntu13.6.4~rc1-13.6.4~rc1-23.6.4-13.6.4-2
Show 22 moreShow less
3.6.4-3build13.6.4-43.6.5~rc1-13.6.5-33.6.6-1~18.043.6.7-1~18.043.6.8-1~18.04.13.6.8-1~18.04.23.6.8-1~18.04.33.6.9-1~18.043.6.9-1~18.04ubuntu13.6.9-1~18.04ubuntu1.13.6.9-1~18.04ubuntu1.33.6.9-1~18.04ubuntu1.43.6.9-1~18.04ubuntu1.63.6.9-1~18.04ubuntu1.73.6.9-1~18.04ubuntu1.83.6.9-1~18.04ubuntu1.93.6.9-1~18.04ubuntu1.103.6.9-1~18.04ubuntu1.123.6.9-1~18.04ubuntu1.133.6.9-1~18.04ubuntu1.13+esm1
3.6.9-1~18.04ubuntu1.13+esm2
python3.7
Ubuntu:Pro:18.04:LTS
From an advisory covering 41 CVEs
before 3.7.5-2ubuntu1~18.04.2+esm3, plus listed versions
3.7.0~a2-13.7.0~a3-13.7.0~a3-23.7.0~a3-33.7.0~a4-1
Show 12 moreShow less
3.7.0~b1-13.7.0~b1-1build13.7.0~b2-13.7.0~b3-13.7.0-1~18.043.7.1-1~18.043.7.3-2~18.04.13.7.5-2~18.043.7.5-2~18.04.43.7.5-2ubuntu1~18.04.23.7.5-2ubuntu1~18.04.2+esm13.7.5-2ubuntu1~18.04.2+esm2
3.7.5-2ubuntu1~18.04.2+esm3
python3.8
Ubuntu:Pro:18.04:LTS
From an advisory covering 41 CVEs
before 3.8.0-3ubuntu1~18.04.2+esm2, plus listed versions
3.8.0-3~18.043.8.0-3~18.04.13.8.0-3ubuntu1~18.04.23.8.0-3ubuntu1~18.04.2+esm1
3.8.0-3ubuntu1~18.04.2+esm2
python3.8
Ubuntu:20.04:LTS
From an advisory covering 41 CVEs
before 3.8.10-0ubuntu1~20.04.10, plus listed versions
3.8.0-13.8.0-23.8.0-33.8.0-43.8.0-5
Show 18 moreShow less
3.8.1-2ubuntu33.8.2~rc1-1ubuntu13.8.2-13.8.2-1ubuntu13.8.2-1ubuntu1.13.8.2-1ubuntu1.23.8.5-1~20.043.8.5-1~20.04.23.8.5-1~20.04.33.8.10-0ubuntu1~20.043.8.10-0ubuntu1~20.04.13.8.10-0ubuntu1~20.04.23.8.10-0ubuntu1~20.04.43.8.10-0ubuntu1~20.04.53.8.10-0ubuntu1~20.04.63.8.10-0ubuntu1~20.04.73.8.10-0ubuntu1~20.04.83.8.10-0ubuntu1~20.04.9
3.8.10-0ubuntu1~20.04.10
Show 4 moreShow less
Affected packages
PackageAffectedFixed
python3.9
Ubuntu:Pro:20.04:LTS
From an advisory covering 41 CVEs
before 3.9.5-3ubuntu0~20.04.1+esm2, plus listed versions
3.9.0~rc1-1~20.043.9.0-5~20.043.9.5-3~20.04.13.9.5-3ubuntu0~20.04.13.9.5-3ubuntu0~20.04.1+esm1
3.9.5-3ubuntu0~20.04.1+esm2
python3.10
Ubuntu:22.04:LTS
From an advisory covering 41 CVEs
before 3.10.12-1~22.04.4, plus listed versions
3.10.0-23.10.0-33.10.0-43.10.0-53.10.0-5build1
Show 15 moreShow less
3.10.1-13.10.1-23.10.2-13.10.2-53.10.2-73.10.3-13.10.4-33.10.4-3ubuntu0.13.10.6-1~22.043.10.6-1~22.04.13.10.6-1~22.04.23.10.6-1~22.04.2ubuntu13.10.6-1~22.04.2ubuntu1.13.10.12-1~22.04.23.10.12-1~22.04.3
3.10.12-1~22.04.4
python3.11
Ubuntu:Pro:22.04:LTS
From an advisory covering 41 CVEs
before 3.11.0~rc1-1~22.04.1~esm1, plus listed versions
3.11.0~rc1-1~22.04
3.11.0~rc1-1~22.04.1~esm1
python312
openSUSE:Tumbleweed
before 3.12.1-1.1
3.12.1-1.1

History

History
RecordedChangedSources
affectedOSV
factsOSV
affected
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2023-6507 is a medium vulnerability (CVSS 6.1) in Python Cpython, published December 8, 2023. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.34%, the 71st percentile. Fixed in python3 3.12.3-1.

References

Show 49 moreShow less
This page doesn't list everything

Left out here: the rest of 1 source description. The JSON record has them.

MoveEnter Open