CVE-2026-54552 json
sh _uid does not drop supplementary groups (incomplete privilege drop)
published 2026-07-17 3 mo ago modified 2026-10-22 17 d ago also GHSA-q38v-wp89-2w55 , PYSEC-2026-3540 , EUVD-2026-61127
- cvss
- 7.9
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 6%
- public exploits
- 0
- none known
Summary
sh provides Python process launching. Prior to 2.2.4, the _uid option in sh.py performs an incomplete privilege drop on Linux and Unix-like systems. When sh runs from an elevated process and launches a command with _uid set to an unprivileged user, the child changes its UID but can retain the parent process's supplementary groups because the privilege-drop sequence does not fully establish the target user's UID, primary GID, and supplementary groups. The child can therefore retain access to files or resources granted to privileged groups such as root, docker, disk, shadow, or sudo, violating the expected _uid privilege boundary. This issue is fixed in version 2.2.4.
Patch / fix
- pypi sh 2.2.4
- python-sh Debian 14 2.4.0-1
debian advisories DEBIAN-CVE-2026-54552
- python-sh SLES 16.0, SLES for SAP applications 16.0 2.2.2-160000.3.1
- python-sh SLES for SAP 15 SP6, SLES for SAP 15 SP5, SLES for SAP 15 SP4 +8 more 2.0.4-150400.9.6.1
suse advisories SUSE-SU-2026:23112-1SUSE-SU-2026:23134-1SUSE-SU-2026:3422-1
- python-sh openSUSE Leap 16.0 2.2.2-160000.3.1
- python-sh openSUSE Tumbleweed 2.3.0-1.1
opensuse advisories openSUSE-SU-2026:21516-1openSUSE-SU-2026:11372-1
- github.com/amoffat/sh@3d855da commit
- github.com/amoffat/sh#776 pull request
- github.com/amoffat/sh/releases/tag/2.2.4 release
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-54552 updated cvss 7.9
sh: sh: Incomplete privilege drop allows child processes to retain privileged group access.
-
Red Hat OpenShift Virtualization 4 container-native-virtualization/ocp-virt-validation-checkup-rhel9not affected: vulnerable code not in execute path
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 2 mo ago
Exploit prediction
0.17% chance of exploitation in the next 30 days, higher than 6% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.9 | CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N |
| GitHub | 3.1 | 7.9 | CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N |
| OSV | 3.1 | 7.9 | CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | sh | <2.2.4 |
2.2.4 |
Affected products
- amoffat sh
Classification
- Weakness
-
- CWE-273 Improper Check for Dropped Privileges
References
- github.com /amoffat/sh/pull/776
- github.com /amoffat/sh/commit/3d855daba91f87a089b490c0d1cf1df3faace2f1
-
github.com
/amoffat/sh/security/advisories/GHSA-q38v-wp89-2w55
web
-
github.com
/amoffat/sh/releases/tag/2.2.4
web
-
github.com
/amoffat/sh
package
-
pypi.org
/project/sh
package
-
github.com
/advisories/GHSA-q38v-wp89-2w55
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-54552
advisory
Sources
- CVE List CVE-2026-54552
- GitHub Advisory GHSA-q38v-wp89-2w55
- NVD CVE-2026-54552
- OSV PYSEC-2026-3540
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.