GHSA-5p39-cfhj-2xmp: Pip/anyio vulnerability

Published Sep 18, 2026
·
Updated

Impact AnyIO starts process-pool workers with stderr connected to a pipe but never drains that pipe. The worker redirects stdin and stdout to /dev/null to protect its protocol, but does not redirect stderr even though the documentation says all three standard streams are redirected. Worker code that writes enough attacker-influenced data to stderr can fill the pipe, block before returning the stdout protocol response, and wedge the awaiting process-pool call.

Anyone who runs untrusted or faulty code that writes too much to stderr is at risk.

Patches This vulnerability will be patched in v4.14.2.

Workarounds Closing sys.stderr in the target function should at least prevent the deadlock.

Affected Software

1 affected componentFixes available
pip/anyio<4.14.2
4.14.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/anyio to a version that resolves this vulnerability.

    Fixed in 4.14.2
  2. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Fixed in 4.14.2
  3. Configuration

    As a workaround, close `sys.stderr` in the target function so the worker’s pipe connected to `stderr` is not left to fill and deadlock.

    AnyIO process-pool worker stderr handling = Close sys.stderr in the target function (or otherwise redirect/drain stderr to prevent pipe filling)
  4. Configuration

    Update the worker so `stderr` is also redirected (the worker currently redirects `stdin` and `stdout` to `/dev/null` but not `stderr`, despite documentation stating all three standard streams are redirected).

    AnyIO process-pool worker stderr redirection = Redirect stderr to /dev/null (like stdin and stdout)

Event History

Sep 18, 2026
Advisory Published
via GitHub·05:17 PM
Data Sourced
via GitHub·05:17 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

Who is most likely to be affected?

Applications that use AnyIO process-pool workers to run untrusted or faulty code are at risk when that code can write a large amount of attacker-influenced data to stderr.

2

What must happen for exploitation or failure to occur?

Code running in a process-pool worker must write enough data to stderr to fill the worker's undrained stderr pipe. The worker then blocks before sending its stdout protocol response, causing the awaiting process-pool call to wedge.

3

Is there a mitigation if updating is not immediately possible?

Closing sys.stderr in the target function should at least prevent the deadlock. The issue is planned to be patched in v4.14.2.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203