Description
AnyIO is a high level asynchronous concurrency and networking framework that works on top of either Trio or asyncio. Prior to 4.14.2, AnyIO starts process-pool workers with standard error connected to a pipe that the parent never drains, even though the documented behavior redirects all three standard streams. Worker code that writes enough attacker-influenced data to sys.stderr can fill the pipe and block before returning the standard-output protocol response, causing the awaiting process-pool call to remain blocked indefinitely. Applications that run untrusted or faulty worker code capable of producing substantial standard-error output are affected. This issue is fixed in version 4.14.2.
Published: 2026-09-18
Score: 6.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

An Internal Runtime Race: AnyIO process‑pool workers launch child processes with standard error connected to a pipe that the parent never drains, despite documentation claiming all streams are redirected. The worker code can write attacker‑controlled data to sys.stderr, which fills the pipe and blocks the worker before it can send back its normal out‑of‑band signal. As a result, the calling coroutine awaiting the process‑pool call never receives the standard‑output protocol response and remains blocked indefinitely. The flaw is a classic memory resource exhaustion defect, mapped to CWE‑770, that can be leveraged to cause application sit‑busy behavior and deny service to legitimate users.

Affected Systems

All systems running AnyIO prior to version 4.14.2 are exposed. Vendors listed include agronholm:anyio, with affected releases below 4.14.2. Any code paths that spawn process‑pool workers and run code that might produce high stderr output are vulnerable. The bug remedy is available in release 4.14.2.

Risk and Exploitability

The CVSS score of 6.8 indicates a moderate severity. EPSS data is not provided, and the vulnerability is not listed in CISA KEV, implying no confirmed exploits yet. The attack vector requires a process‑pool worker that writes large amounts of data to its standard error stream – this may naturally arise from untrusted or buggy worker code. If such a scenario occurs, the blocking can persist forever, leading to denial of service. Prompt upgrade mitigates risk entirely.

Generated by OpenCVE AI on September 19, 2026 at 12:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade AnyIO to 4.14.2 or later
  • Review and constrain worker code to prevent excessive writes to sys.stderr
  • Apply process‑pool usage policies that limit untrusted code execution

Generated by OpenCVE AI on September 19, 2026 at 12:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-5p39-cfhj-2xmp AnyIO process-pool workers can block indefinitely on undrained stderr
History

Fri, 18 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Description AnyIO is a high level asynchronous concurrency and networking framework that works on top of either Trio or asyncio. Prior to 4.14.2, AnyIO starts process-pool workers with standard error connected to a pipe that the parent never drains, even though the documented behavior redirects all three standard streams. Worker code that writes enough attacker-influenced data to sys.stderr can fill the pipe and block before returning the standard-output protocol response, causing the awaiting process-pool call to remain blocked indefinitely. Applications that run untrusted or faulty worker code capable of producing substantial standard-error output are affected. This issue is fixed in version 4.14.2.
Title AnyIO process-pool workers can block indefinitely on undrained stderr
Weaknesses CWE-770
References
Metrics cvssV4_0

{'score': 6.8, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-18T18:07:27.772Z

Reserved: 2026-07-20T18:31:39.290Z

Link: CVE-2026-64847

cve-icon Vulnrichment

Updated: 2026-09-18T18:07:23.520Z

cve-icon NVD

Status : Received

Published: 2026-09-18T18:17:10.930

Modified: 2026-09-18T18:17:10.930

Link: CVE-2026-64847

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-19T12:15:17Z

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling