LiveActive security incident?Get immediate response
CVE Record

CVE-2023-6507: 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`).

MediumCVSS 6.1Not KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

A privileged CPython 3.12.0 application on a POSIX system may start a child process with supplementary group permissions it intended to remove. This could let the child access or modify protected resources beyond its intended role. Ordinary unprivileged Python processes and other stable CPython releases are not affected according to the supplied description.

Executive priority

Schedule prompt remediation for privileged automation, service managers, or security boundaries using CPython 3.12.0. Broader emergency action is not indicated by the supplied evidence because the vulnerable configuration is specific, exploitation requires substantial privilege, and no active exploitation is documented.

Technical view

A regression in CPython 3.12.0 subprocess handling skips setgroups(0, NULL) when extra_groups=[] is supplied. The executed child consequently retains the parent process's supplementary groups. Exploitation requires a POSIX process privileged enough to change group membership, typically root. CPython 3.12.1 fixed the issue.

Likely exposure

Exposure is narrow: POSIX systems running CPython 3.12.0, where privileged code launches subprocesses using exactly extra_groups=[]. Omitting the parameter or supplying a non-empty value is not affected. Applications that never run Python with relevant privileges are unlikely to be exposed.

Exploitation context

The supplied sources do not establish active exploitation, and the CVE is not listed as KEV in the bundle. Abuse would require access to a vulnerable privileged execution path and influence over what the improperly privileged child process does. The CVSS 6.1 assessment reflects adjacent access and high privileges required.

Researcher notes

This is CWE-269 improper privilege management with confidentiality and integrity impact but no scored availability impact. The decisive trigger is an empty extra_groups value, not general subprocess use. The supplied narrative explicitly limits affected stable releases to CPython 3.12.0; avoid interpreting the broader structured version field without vendor clarification.

Mitigation direction

  • Upgrade affected CPython 3.12.0 installations to CPython 3.12.1 or a later supported stable release.
  • Prioritize privileged POSIX services and administrative automation using the subprocess module.
  • Until upgraded, avoid passing an empty extra_groups list where operationally safe.
  • Consult the Python security advisory and applicable platform package guidance.

Validation and detection

  • Inventory POSIX systems and containers running CPython 3.12.0.
  • Identify privileged Python processes, especially those running as root.
  • Review subprocess calls for the exact extra_groups=[] configuration.
  • After remediation, confirm child processes do not retain unintended supplementary groups.
  • Verify the deployed Python runtime reports a fixed, supported version.
Prepared
Confidence
high
Sources
4

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-269: Authorization and privilege behavior lookup

Authorization weaknesses can support privilege escalation and valid-account review, depending on exploit path. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2023-6507 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Medium
CVSS
6.1 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
3Timeline events
2ADP providers
6Source links

SSVC decision data

CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
6.1CVSS 3.1MediumCVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N0.95.2PSF

Vulnerability scoring details

Base CVSS 3.1 score

6.1Medium
CVSS 3.1 vector shape for CVE-2023-6507Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:A/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

ADP provider summaries

CISA-ADPCISA ADP Vulnrichment
other:ssvc
CVECVE Program Container
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
Python Software FoundationCPython0, 3.13.0a1unaffected
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-269 · source CWE mapping

Improper Privilege Management

Improper Privilege Management represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.