CVE-2026-64847
AnyIO process-pool workers can block indefinitely on undrained stderr
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
6.8
AnyIO process-pool workers can block indefinitely on undrained stderr
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.
- Record
CVE-2026-64847- CVSS 4.0
- 6.8 Medium
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 - Weakness
- CWE-770
- Updated
- 2026-11-02
EUVDEUVD-2026-83193
6.8
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.
- Record
EUVD-2026-83193- CVSS 4.0
- 6.8 Medium
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 - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-5p39-cfhj-2xmp
6.8
AnyIO process-pool workers can block indefinitely on undrained stderr
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.
- Record
GHSA-5p39-cfhj-2xmp- CVSS 4.0
- 6.8 Medium
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 - Weakness
- CWE-770
- Updated
- 2026-11-02
NVD
6.8
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.
- Record
CVE-2026-64847- CVSS 4.0
- 6.8 Medium
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV
6.8
AnyIO process-pool workers can block indefinitely on undrained stderr
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.
- Record
CVE-2026-64847- CVSS 4.0
- 6.8 Medium
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 - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-64847
6.8
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.
- Record
DEBIAN-CVE-2026-64847- CVSS 4.0
- 6.8 Medium
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
Show 8 moreShow less
OSVGHSA-5p39-cfhj-2xmp
6.8
AnyIO process-pool workers can block indefinitely on undrained stderr
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.
- Record
GHSA-5p39-cfhj-2xmp- CVSS 4.0
- 6.8 Medium
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 - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVPYSEC-2026-4024
6.8
AnyIO process-pool workers can block indefinitely on undrained stderr
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.
- Record
PYSEC-2026-4024- CVSS 4.0
- 6.8 Medium
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 - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-64847
6.8
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.
- Record
UBUNTU-CVE-2026-64847- CVSS 4.0
- 6.8 Medium
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 - Updated
- 2026-11-02
OSVCLSA-2026-1790063936 No score
TuxCare security update for anyio (2 CVEs)
TuxCare rebuilt anyio to address 2 CVEs. Fixed in 3.7.1.post2+tuxcare.
- Record
CLSA-2026-1790063936- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:22060-1 No score
Security update for python-anyio
This update for python-anyio fixes the following issues:
- CVE-2026-63374: TLSStream IDNA 2003 host name encoding enables potential TLS certificate spoofing (bsc#1281476).
- CVE-2026-64847: AnyIO process-pool workers can block indefinitely on undrained stderr (bsc#1281475).
- Record
openSUSE-SU-2026:22060-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:24122-1 No score
Security update for python-anyio
This update for python-anyio fixes the following issues:
- CVE-2026-63374: TLSStream IDNA 2003 host name encoding enables potential TLS certificate spoofing (bsc#1281476).
- CVE-2026-64847: AnyIO process-pool workers can block indefinitely on undrained stderr (bsc#1281475).
- Record
SUSE-SU-2026:24122-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:24208-1 No score
Security update for python-anyio
This update for python-anyio fixes the following issues:
- CVE-2026-63374: TLSStream IDNA 2003 host name encoding enables potential TLS certificate spoofing (bsc#1281476).
- CVE-2026-64847: AnyIO process-pool workers can block indefinitely on undrained stderr (bsc#1281475).
- Record
SUSE-SU-2026:24208-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4416-1 No score
Security update for python-anyio
This update for python-anyio fixes the following issues:
- CVE-2026-63374: : TLSStream IDNA 2003 host name encoding enables potential TLS certificate spoofing (bsc#1281476).
- CVE-2026-64847: AnyIO process-pool workers can block indefinitely on undrained stderr (bsc#1281475).
- Record
SUSE-SU-2026:4416-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
anyioPyPI |
before 4.14.2 | 4.14.2 |
anyioTuxCare:PyPI From an advisory covering 2 CVEs |
3.7.1 up to 3.7.1.post2+tuxcare, plus listed versions 3.7.1.post1+tuxcare |
3.7.1.post2+tuxcare |
python-anyioDebian:12 |
All versions, plus listed versions 3.6.2-13.7.0-14.1.0-14.11.0-14.11.0-2 Show 19 moreShow less4.11.0-34.12.1-14.12.1-24.12.1-34.15.1-14.15.1-24.15.1-34.2.0-14.3.0-14.4.0-14.6.0-14.6.2-14.6.2-24.6.2-34.6.2-44.7.0-14.8.0-14.8.0-24.8.0-3 |
None known |
python-anyioDebian:13 |
All versions, plus listed versions 4.11.0-14.11.0-24.11.0-34.12.1-14.12.1-2 Show 5 moreShow less4.12.1-34.15.1-14.15.1-24.15.1-34.8.0-3 |
None known |
python-anyioDebian:14 |
before 4.15.1-1, plus listed versions 4.11.0-14.11.0-24.11.0-34.12.1-14.12.1-24.12.1-34.8.0-3 |
4.15.1-1 |
anyioPyPI |
before 4.14.2, plus listed versions 1.0.01.0.0a11.0.0a21.0.0b11.0.0b2 Show 45 moreShow less1.0.0rc11.0.0rc21.1.01.2.01.2.11.2.21.2.31.3.01.3.11.4.02.0.02.0.0b12.0.0b22.0.0rc12.0.0rc22.0.12.0.22.1.02.2.03.0.03.0.0rc13.0.0rc23.0.0rc33.0.0rc43.0.13.1.03.2.03.2.13.3.03.3.13.3.23.3.33.3.43.4.03.5.03.6.03.6.13.6.23.7.03.7.0rc13.7.14.0.04.0.0rc14.1.04.10.0 |
4.14.2 |
python-anyioSUSE:Linux Micro 6.2 From an advisory covering 2 CVEs |
before 4.8.0-160000.3.1 | 4.8.0-160000.3.1 |
python-anyioSUSE:Linux Enterprise Server 16.0 From an advisory covering 2 CVEs |
before 4.8.0-160000.3.1 | 4.8.0-160000.3.1 |
python-anyioSUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 2 CVEs |
before 4.8.0-160000.3.1 | 4.8.0-160000.3.1 |
python-anyioSUSE:Linux Enterprise Module for Public Cloud 15 SP4 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
Show 18 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-anyioSUSE:Linux Enterprise Module for Public Cloud 15 SP5 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Module for Public Cloud 15 SP6 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Module for Python 3 15 SP7 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioSUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 2 CVEs |
before 4.1.0-150400.9.11.1 | 4.1.0-150400.9.11.1 |
python-anyioUbuntu:22.04:LTS |
All versions, plus listed versions 2.0.2-23.5.0-2ubuntu13.5.0-3ubuntu2 |
None known |
python-anyioUbuntu:24.04:LTS |
All versions, plus listed versions 3.7.0-14.2.0-1 |
None known |
python-anyioUbuntu:26.10 |
All versions, plus listed versions 4.11.0-34.12.1-24.12.1-34.15.1-3 |
None known |
python-anyioUbuntu:26.04:LTS |
All versions, plus listed versions 4.8.0-34.11.0-24.11.0-3 |
None known |
python-anyioopenSUSE:Leap 16.0 From an advisory covering 2 CVEs |
before 4.8.0-160000.3.1 | 4.8.0-160000.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-64847 is a medium vulnerability (CVSS 6.8) in Agronholm Anyio, published September 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.16%, the 4th percentile. Fixed in anyio 4.14.2.
References
github.com/agronholm/anyio/security/advisories/GHSA-5p39-cfhj-2xmp
github.com/agronholm/anyio/pull/1207
github.com/agronholm/anyio/commit/f1b7301c8264b0d2e8d24a5788fd29e93dea4040
github.com/agronholm/anyio/releases/tag/4.14.2
github.com/advisories/GHSA-5p39-cfhj-2xmp
github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64847.json
Show 13 moreShow less
nvd.nist.gov/vuln/detail/CVE-2026-64847
security-tracker.debian.org/tracker/CVE-2026-64847
github.com/agronholm/anyio
pypi.org/project/anyio
suse.com/support/update/announcement/2026/suse-su-202624122-1
bugzilla.suse.com/1281475
bugzilla.suse.com/1281476
suse.com/security/cve/CVE-2026-63374
suse.com/security/cve/CVE-2026-64847
suse.com/support/update/announcement/2026/suse-su-202624208-1
suse.com/support/update/announcement/2026/suse-su-20264416-1
ubuntu.com/security/CVE-2026-64847
cve.org/CVERecord?id=CVE-2026-64847
Left out here: 19 versions. The JSON record has them.