rootpwn

critical · CVSS v3 9.1 · CVSS v4 7

CVE-2026-63349

AnyIO versions prior to 4.14.2 incorrectly handle the extra_groups argument in process launching functions on POSIX systems. When callers at

Overview

AnyIO versions prior to 4.14.2 incorrectly handle the extra_groups argument in process launching functions on POSIX systems. When callers attempt to clear inherited supplementary groups, the argument is misplaced, causing child processes to retain unintended parent privileges. This breaks privilege-dropping security boundaries in applications relying on these subprocess helpers.

Description

AnyIO is a high level asynchronous concurrency and networking framework that works on top of either Trio or asyncio. In 4.14.0, AnyIO accepts the POSIX extra_groups argument in anyio.run_process() and anyio.open_process(), but open_process() forwards the group argument to the backend instead of extra_groups. A caller that supplies extra_groups=[] to clear inherited supplementary groups can therefore launch a child that retains the parent process groups, undermining a privilege-dropping boundary. If group is also supplied, the integer group value is passed where an iterable of supplementary groups is expected and the launch can fail with TypeError. This issue affects POSIX applications that rely on AnyIO subprocess helpers to launch less-privileged child processes. This issue is fixed in version 4.14.2.

Impact

This vulnerability impacts Confidentiality, Integrity, and Availability (CIA) indirectly by allowing unauthorized privilege retention in child processes. POSIX applications utilizing AnyIO to spawn lower-privileged workers or subprocesses are at risk. An attacker could potentially bypass intended permission boundaries if the parent process operates with elevated rights.

Remediation

Upgrade the AnyIO package to version 4.14.2 or later where the extra_groups argument handling is corrected. Review all calls to anyio.run_process() and anyio.open_process() that utilize supplementary group arguments to ensure privilege boundaries are properly enforced.

Risk context

The vulnerability is rated as critical with a CVSS v3 score of 9.1, though EPSS data is currently unavailable. Immediate remediation is recommended for POSIX-based services using AnyIO for subprocess isolation.

Affected products

  • AnyIO < 4.14.2

Scores

Severity
critical
CVSS v2
8.5
CVSS v3
9.1
CVSS v4
7
EPSS

AnyIO privilege-escalation POSIX subprocess Python

← All CVEs