Skip to content

[3.14] gh-151519: Check effective gid in _test_all_chown_common group-0 guard (GH-151521)#151550

Merged
itamaro merged 1 commit into
python:3.14from
miss-islington:backport-2ce2600-3.14
Jun 16, 2026
Merged

[3.14] gh-151519: Check effective gid in _test_all_chown_common group-0 guard (GH-151521)#151550
itamaro merged 1 commit into
python:3.14from
miss-islington:backport-2ce2600-3.14

Conversation

@miss-islington

@miss-islington miss-islington commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

The guard that skips the "chown to gid 0 should fail" assertion used
only os.getgroups() (supplementary groups). The kernel also accepts
the effective/filesystem gid for chown, so when a process runs with
egid 0 and a non-zero uid (common in containers and user namespaces),
chown(-1, 0) succeeds and the assertion spuriously fails.

Add an os.getegid() != 0 check alongside the existing
0 not in os.getgroups() guard.
(cherry picked from commit 2ce2600)

Co-authored-by: Itamar Oren itamarost@gmail.com

…p-0 guard (pythonGH-151521)

The guard that skips the "chown to gid 0 should fail" assertion used
only `os.getgroups()` (supplementary groups). The kernel also accepts
the effective/filesystem gid for chown, so when a process runs with
egid 0 and a non-zero uid (common in containers and user namespaces),
chown(-1, 0) succeeds and the assertion spuriously fails.

Add an `os.getegid() != 0` check alongside the existing
`0 not in os.getgroups()` guard.
(cherry picked from commit 2ce260033b457a0ad2c9767a1d9902bef5a30b0e)

Co-authored-by: Itamar Oren <itamarost@gmail.com>
@bedevere-app bedevere-app Bot added awaiting review tests Tests in the Lib/test dir labels Jun 16, 2026
@itamaro itamaro merged commit af459e5 into python:3.14 Jun 16, 2026
51 checks passed
@miss-islington miss-islington deleted the backport-2ce2600-3.14 branch June 16, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip news tests Tests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants