CVE-2025-58369
fs2: Half-shutdown of socket during TLS handshake may result in spin loop on opposite side
fs2 is a compositional, streaming I/O library for Scala. Versions up to and including 2.5.12, 3.0.0-M1 through 3.12.2, and 3.13.0-M1 through 3.13.0-M6 are vulnerable to denial of service attacks though TLS sessions using fs2-io on the JVM using the fs2.io.net.tls package. When establishing a TLS session, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. The CPU is consumed until the overall connection is closed, potentially shutting down a fs2-io powered server. This issue is fixed in versions 2.5.13, 3.12.1, and 3.13.0-M7.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
5.3
fs2: Half-shutdown of socket during TLS handshake may result in spin loop on opposite side
fs2 is a compositional, streaming I/O library for Scala. Versions up to and including 2.5.12, 3.0.0-M1 through 3.12.2, and 3.13.0-M1 through 3.13.0-M6 are vulnerable to denial of service attacks though TLS sessions using fs2-io on the JVM using the fs2.io.net.tls package. When establishing a TLS session, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. The CPU is consumed until the overall connection is closed, potentially shutting down a fs2-io powered server. This issue is fixed in versions 2.5.13, 3.12.1, and 3.13.0-M7.
- Record
CVE-2025-58369- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400
- Updated
- 2026-11-02
EUVDEUVD-2025-27048
5.3
fs2 is a compositional, streaming I/O library for Scala. Versions up to and including 2.5.12, 3.0.0-M1 through 3.12.2, and 3.13.0-M1 through 3.13.0-M6 are vulnerable to denial of service attacks though TLS sessions using fs2-io on the JVM using the fs2.io.net.tls package. When establishing a TLS session, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. The CPU is consumed until the overall connection is closed, potentially shutting down a fs2-io powered server. This issue is fixed in versions 2.5.13, 3.12.1, and 3.13.0-M7.
- Record
EUVD-2025-27048- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-rrw2-px9j-qffj
5.3
FS2 half-shutdown of socket during TLS handshake may result in spin loop on opposite side
Impact
When establishing a TLS session using fs2-io on the JVM using the fs2.io.net.tls package, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. This CPU is consumed until the overall connection is closed.
This could be used as a denial of service attack on an fs2-io powered server -- for example, by opening many connections and putting them in a half-shutdown state.
Note: this issue impacts ember backed http4s servers with HTTPS as a result of ember using fs2's TLS support.
Patches
Fixed in fs2 3.12.2 and 3.13.0-M7.
Workarounds
No workarounds.
For more information
If you have any questions or comments about this advisory:
Open an issue. Contact the Typelevel Security Team.
- Record
GHSA-rrw2-px9j-qffj- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400
- Updated
- 2026-11-02
NVD
5.3
fs2 is a compositional, streaming I/O library for Scala. Versions up to and including 2.5.12, 3.0.0-M1 through 3.12.2, and 3.13.0-M1 through 3.13.0-M6 are vulnerable to denial of service attacks though TLS sessions using fs2-io on the JVM using the fs2.io.net.tls package. When establishing a TLS session, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. The CPU is consumed until the overall connection is closed, potentially shutting down a fs2-io powered server. This issue is fixed in versions 2.5.13, 3.12.1, and 3.13.0-M7.
- Record
CVE-2025-58369- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400
- Updated
- 2026-11-02
OSV
5.3
fs2: Half-shutdown of socket during TLS handshake may result in spin loop on opposite side
fs2 is a compositional, streaming I/O library for Scala. Versions up to and including 2.5.12, 3.0.0-M1 through 3.12.2, and 3.13.0-M1 through 3.13.0-M6 are vulnerable to denial of service attacks though TLS sessions using fs2-io on the JVM using the fs2.io.net.tls package. When establishing a TLS session, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. The CPU is consumed until the overall connection is closed, potentially shutting down a fs2-io powered server. This issue is fixed in versions 2.5.13, 3.12.1, and 3.13.0-M7.
- Record
CVE-2025-58369- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVGHSA-rrw2-px9j-qffj
5.3
FS2 half-shutdown of socket during TLS handshake may result in spin loop on opposite side
Impact
When establishing a TLS session using fs2-io on the JVM using the fs2.io.net.tls package, if one side of the connection shuts down write while the peer side is awaiting more data to progress the TLS handshake, the peer side will spin loop on the socket read, fully utilizing a CPU. This CPU is consumed until the overall connection is closed.
This could be used as a denial of service attack on an fs2-io powered server -- for example, by opening many connections and putting them in a half-shutdown state.
Note: this issue impacts ember backed http4s servers with HTTPS as a result of ember using fs2's TLS support.
Patches
Fixed in fs2 3.12.2 and 3.13.0-M7.
Workarounds
No workarounds.
For more information
If you have any questions or comments about this advisory:
Open an issue. Contact the Typelevel Security Team.
- Record
GHSA-rrw2-px9j-qffj- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - Weakness
- CWE-400
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
co.fs2:fs2-io_2.12Maven |
3.13.0-M1 up to 3.13.0-M7 | 3.13.0-M7 |
co.fs2:fs2-io_2.13Maven |
3.13.0-M1 up to 3.13.0-M7 | 3.13.0-M7 |
co.fs2:fs2-io_3Maven |
3.13.0-M1 up to 3.13.0-M7 | 3.13.0-M7 |
co.fs2:fs2-io_2.12Maven |
3.0.0-M1 up to 3.12.2 | 3.12.2 |
co.fs2:fs2-io_2.13Maven |
3.0.0-M1 up to 3.12.2 | 3.12.2 |
co.fs2:fs2-io_3Maven |
3.0.0-M1 up to 3.12.2 | 3.12.2 |
co.fs2:fs2-io_0.26Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_0.27Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.11Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.12.0-M4Maven |
before 2.5.13 | 2.5.13 |
Show 24 moreShow less
| Package | Affected | Fixed |
|---|---|---|
co.fs2:fs2-io_2.12.0-RC1Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.12.0-M5Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.12.0-RC2Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.13.0-M5Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.12Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.13Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_3Maven |
before 2.5.13 | 2.5.13 |
co.fs2:fs2-io_2.12Maven |
3.0.0-M1 up to 3.12.2, plus listed versions 3.0-02891453.0-045ebbb3.0-047d51d3.0-0591bb73.0-085e456 Show 45 moreShow less3.0-0bb4bb23.0-0ca6acd3.0-0dfc8583.0-0e26dbd3.0-1-a96dc773.0-10-5c8bb3b3.0-10-79348273.0-10-979dff63.0-10-989f7a23.0-10-c920bee3.0-100-e1126313.0-101-bbca8393.0-102-30295e33.0-103-1cc67303.0-106-c6387533.0-107-c54815f3.0-109-e17c45d3.0-11-990650d3.0-111-a95ee443.0-113-87116233.0-116-2c116d63.0-116-de371a53.0-117-375521f3.0-12-0c0ce2f3.0-12-2af05713.0-12-7d4150a3.0-12-fb1b6f93.0-12-ff1970e3.0-121-8013a953.0-121-e4872e63.0-122-b9c31783.0-124-5d7a7623.0-124-b9bcb663.0-126-567bf1d3.0-12e0bc03.0-13-2b411c53.0-13-8ca332b3.0-13-99492193.0-130-1713a293.0-132-e67ebd13.0-132-ea59c103.0-136-72a3de23.0-137-cb074ba3.0-137-dd1db283.0-139-e8c50f3 |
3.12.2 |
co.fs2:fs2-io_2.12Maven |
3.13.0-M1 up to 3.13.0-M7, plus listed versions 3.13.0-M23.13.0-M33.13.0-M53.13.0-M6 |
3.13.0-M7 |
co.fs2:fs2-io_2.13Maven |
3.0.0-M1 up to 3.12.2, plus listed versions 3.0-02891453.0-045ebbb3.0-047d51d3.0-0591bb73.0-085e456 Show 45 moreShow less3.0-0bb4bb23.0-0ca6acd3.0-0dfc8583.0-0e26dbd3.0-1-a96dc773.0-10-5c8bb3b3.0-10-79348273.0-10-979dff63.0-10-989f7a23.0-10-c920bee3.0-100-e1126313.0-101-bbca8393.0-102-30295e33.0-103-1cc67303.0-106-c6387533.0-107-c54815f3.0-109-e17c45d3.0-11-990650d3.0-111-a95ee443.0-113-87116233.0-116-2c116d63.0-116-de371a53.0-117-375521f3.0-12-0c0ce2f3.0-12-2af05713.0-12-7d4150a3.0-12-fb1b6f93.0-12-ff1970e3.0-121-8013a953.0-121-e4872e63.0-122-b9c31783.0-124-5d7a7623.0-124-b9bcb663.0-126-567bf1d3.0-12e0bc03.0-13-2b411c53.0-13-8ca332b3.0-13-99492193.0-130-1713a293.0-132-e67ebd13.0-132-ea59c103.0-136-72a3de23.0-137-cb074ba3.0-137-dd1db283.0-139-e8c50f3 |
3.12.2 |
co.fs2:fs2-io_2.13Maven |
3.13.0-M1 up to 3.13.0-M7, plus listed versions 3.13.0-M23.13.0-M33.13.0-M53.13.0-M6 |
3.13.0-M7 |
co.fs2:fs2-io_3Maven |
3.0.0-M1 up to 3.12.2, plus listed versions 3.0-10-5c8bb3b3.0-10-79348273.0-10-989f7a23.0-10-c920bee3.0-101-bbca839 Show 45 moreShow less3.0-103-1cc67303.0-107-c54815f3.0-117-375521f3.0-12-0c0ce2f3.0-12-7d4150a3.0-12-fb1b6f93.0-121-8013a953.0-124-5d7a7623.0-13-2b411c53.0-13-8ca332b3.0-130-1713a293.0-132-ea59c103.0-137-cb074ba3.0-14-478b3c33.0-14-bf73c023.0-141-fa4c1d53.0-143-df426d03.0-145-25b16723.0-15-f96dad13.0-16-23f5c5a3.0-16-73742f53.0-16-ac50b2f3.0-16-b119f823.0-18-342d18f3.0-18-a20779f3.0-19-723d2bf3.0-2-2eed22b3.0-2-5aec1613.0-2-a745d703.0-2-e11f4df3.0-20-44aa9aa3.0-20-e82e2c73.0-20-ff09d7e3.0-21-853c4073.0-22-328a1253.0-22-652a9673.0-24-1450b7f3.0-24-79943383.0-25-6c40b6b3.0-25-892cda63.0-26-ce8cda93.0-27-095de6c3.0-29-8c600343.0-29-f855bf83.0-319-b53c370 |
3.12.2 |
co.fs2:fs2-io_3Maven |
3.13.0-M1 up to 3.13.0-M7, plus listed versions 3.13.0-M23.13.0-M33.13.0-M53.13.0-M6 |
3.13.0-M7 |
co.fs2:fs2-io_0.26Maven |
All versions, plus listed versions 2.4-4ed62ae2.4-8fa361a2.4-d455ec82.4-d6ca5da2.4.3 Show 6 moreShow less2.4.43.0-0bb4bb23.0-4e770f03.0-64069b93.0-825babc3.0-a355a2e |
None known |
co.fs2:fs2-io_0.27Maven |
All versions, plus listed versions 2.4-0076a632.4-06d97e92.4-0d3c7b82.4-0fb91f32.4-14075f2 Show 45 moreShow less2.4-16001992.4-16b3ea42.4-1731d9f2.4-1e40a2b2.4-1fc59302.4-255d5cd2.4-2c6305e2.4-2d519812.4-2fe25182.4-30a57b92.4-3411bc52.4-35ba5da2.4-3dea4bf2.4-42795dd2.4-42b3d0d2.4-42b88762.4-43a07212.4-5461f352.4-559c8612.4-5730e6e2.4-58cbf862.4-59006ce2.4-5fc8de02.4-676b2de2.4-6aecba02.4-6c355652.4-708dd492.4-71f938e2.4-72b47d92.4-7382e692.4-773fe742.4-7a3b8582.4-7b28fee2.4-7dcf0282.4-87f83612.4-995d5d62.4-9cf1c252.4-a02957a2.4-a11eb332.4-a87c9702.4-a9ff2662.4-b2f49e52.4-bc3a1aa2.4-bc3a9672.4-c73acad |
None known |
co.fs2:fs2-io_2.11Maven |
All versions, plus listed versions 0.10.00.10.0-M10.10.0-M100.10.0-M110.10.0-M2 Show 45 moreShow less0.10.0-M30.10.0-M40.10.0-M50.10.0-M60.10.0-M70.10.0-M80.10.0-M90.10.0-RC10.10.0-RC20.10.10.10.20.10.30.10.40.10.50.10.60.10.70.9.00.9.0-M10.9.0-M20.9.0-M30.9.0-M40.9.0-M50.9.0-M60.9.0-RC10.9.0-RC20.9.10.9.20.9.30.9.40.9.50.9.5-RC10.9.60.9.71.0.01.0.0-M11.0.0-M21.0.0-M31.0.0-M41.0.0-M51.0.0-RC11.0.0-RC21.0.11.0.21.0.31.0.4 |
None known |
co.fs2:fs2-io_2.12.0-M4Maven |
All versions, plus listed versions 0.9.0-M10.9.0-M20.9.0-M30.9.0-M4 |
None known |
co.fs2:fs2-io_2.12.0-RC1Maven |
All versions, plus listed versions 0.9.00.9.1 |
None known |
co.fs2:fs2-io_2.12.0-M5Maven |
All versions, plus listed versions 0.9.0-M50.9.0-M60.9.0-RC10.9.0-RC2 |
None known |
co.fs2:fs2-io_2.12.0-RC2Maven |
All versions, plus listed versions 0.9.1 |
None known |
co.fs2:fs2-io_2.13.0-M5Maven |
All versions, plus listed versions 1.0.31.0.4 |
None known |
co.fs2:fs2-io_2.12Maven |
before 2.5.13, plus listed versions 0.10.00.10.0-M10.10.0-M100.10.0-M110.10.0-M2 Show 45 moreShow less0.10.0-M30.10.0-M40.10.0-M50.10.0-M60.10.0-M70.10.0-M80.10.0-M90.10.0-RC10.10.0-RC20.10.10.10.20.10.30.10.40.10.50.10.60.10.70.9.20.9.30.9.40.9.50.9.5-RC10.9.60.9.71.0.01.0.0-M11.0.0-M21.0.0-M31.0.0-M41.0.0-M51.0.0-RC11.0.0-RC21.0.11.0.21.0.31.0.41.0.51.1.0-M11.1.0-M22.0.02.0.12.1.02.2.02.2.12.2.22.3.0 |
2.5.13 |
co.fs2:fs2-io_2.13Maven |
before 2.5.13, plus listed versions 1.1.0-M11.1.0-M22.0.02.0.12.1.0 Show 45 moreShow less2.2.02.2.12.2.22.3.02.4-0076a632.4-06d97e92.4-0d3c7b82.4-0fb91f32.4-14075f22.4-16001992.4-16b3ea42.4-1731d9f2.4-1e40a2b2.4-1fc59302.4-255d5cd2.4-2c6305e2.4-2d519812.4-2fe25182.4-30a57b92.4-3411bc52.4-35ba5da2.4-3dea4bf2.4-42795dd2.4-42b3d0d2.4-42b88762.4-43a07212.4-4ed62ae2.4-5461f352.4-559c8612.4-5730e6e2.4-58cbf862.4-59006ce2.4-5fc8de02.4-676b2de2.4-6aecba02.4-6c355652.4-708dd492.4-71f938e2.4-72b47d92.4-7382e692.4-773fe742.4-7a3b8582.4-7b28fee2.4-7dcf0282.4-87f8361 |
2.5.13 |
co.fs2:fs2-io_3Maven |
before 2.5.13, plus listed versions 2.5-13-1a7ce3e2.5-14-d78ca552.5-15-fdcf03a2.5-16-f51e5bd2.5-2-0f99472 Show 22 moreShow less2.5-2-54ba4972.5-2-d8fe2292.5-20-cd0f23a2.5-22-b8507982.5-26-07232562.5-28-1e4bfb42.5-3-b59bc252.5-33-7c6a7b92.5-37-24282e22.5-4-2e3a96a2.5-5-9970d712.5-5-bf2966a2.5-6-1ac0af72.5-7-f63941f2.5-9-60c7cb42.5.102.5.112.5.122.5.62.5.72.5.82.5.9 |
2.5.13 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2025-58369 is a medium vulnerability (CVSS 5.3) in Typelevel Fs2, published September 5, 2025. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.47%, the 40th percentile. Fixed in co.fs2:fs2-io_2.12 3.13.0-M7.
References
github.com/typelevel/fs2/security/advisories/GHSA-rrw2-px9j-qffj
github.com/typelevel/fs2/issues/3590
github.com/typelevel/fs2/commit/46e2dc3abf994dcf3d0b804b2ddb3c10c04d4976
github.com/typelevel/fs2/commit/5c6c4c6c1ef330f7e6b53661ecc63d5f5ba8885c
github.com/typelevel/fs2/commit/edf0c4f2e660360d1c1a8c5377ce32294de89238
github.com/typelevel/fs2/releases/tag/v3.12.2
Left out here: 1,472 versions. The JSON record has them.