# CVE-2026-63349: AnyIO run_process/open_process privilege dropping bug with extra_groups

Source: https://junglewise.ai/threats/cve-2026-63349-anyio-run-process-open-process-privilege-dropping-bug-with-extra  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-18. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-63349 · Severity: high · CVSS 4 · Published 2026-09-18

AnyIO is a Python library for asynchronous I/O that provides subprocess management helpers. A bug in versions 4.14.0–4.14.1 prevents the extra_groups parameter from working correctly when launching child processes, potentially leaving privileged supplementary group memberships intact that should have been dropped. Applications relying on AnyIO to launch less-privileged child processes may fail to properly restrict those processes' capabilities.

Technologies: [anyio (PyPI)](https://junglewise.ai/threats/technologies/anyio). Vendors: [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-63349 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-63349 being exploited in the wild.

**How severe is CVE-2026-63349?** High severity, with a CVSS score of 4, published 18 September 2026.

**Which products and versions are affected?** anyio (PyPI) >= 4.14.0, < 4.14.2, ECOSYSTEM:introduced=4.14.0,fixed=4.14.2.

**Is there a fix for CVE-2026-63349?** Yes. anyio (PyPI): upgrade to 4.14.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-63349 attacked?** It is attacked with local access, in a software library.

**Am I affected by CVE-2026-63349?** Check whether you run anyio (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- anyio (PyPI): upgrade to 4.14.2 or later

  ```sh
  pip install "anyio>=4.14.2"
  ```


## Technical details

The vulnerability is a privilege management bug in AnyIO's open_process() function. When the extra_groups parameter is provided to set or clear supplementary groups, the function incorrectly assigns kwargs["extra_groups"] = group instead of kwargs["extra_groups"] = extra_groups, passing the wrong variable to the backend. This causes child processes to retain the parent's supplementary group memberships instead of having them modified as requested. If both group and extra_groups are supplied, an integer is passed where a list is expected, resulting in TypeError. This is a POSIX-specific correctness issue affecting privilege-dropping scenarios. The bug affects versions 4.14.0 through 4.14.1 and is patched in version 4.14.2.

## Affected products

- Alex Gronholm AnyIO 4.14.0 to 4.14.1

## Identifiers

- CVE-2026-63349
- GHSA-3w57-8xmc-8v26
- PYSEC-2026-4023

## Timeline

- 2026-07-07: disclosed
- 2026-09-18: patched: Version 4.14.2 released

## References

- [https://api.github.com/users/Faze-up](https://api.github.com/users/Faze-up)

## Related threats

- [AnyIO TLSStream IDNA 2003 host name encoding certificate spoofing](https://junglewise.ai/threats/cve-2026-63374-anyio-tlsstream-idna-2003-host-name-encoding-certificate-spoofing)
- [AnyIO process-pool workers indefinite blocking on undrained stderr](https://junglewise.ai/threats/cve-2026-64847-anyio-process-pool-workers-indefinite-blocking-on-undrained)
