Read the docs
TI-2022-13223 Aliases CVE-2022-31183GHSA-2cpx-6pqp-wf35

mTLS client verification is skipped in fs2 on Node.js

Priority HIGH 82CWE-295Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
Spoofing
Confidentiality · integrity · availability
High · High · High
Fix status
Fixed

Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub. Impact type from CWE-295.

Summary

fs2 is a compositional, streaming I/O library for Scala. When establishing a server-mode `TLSSocket` using `fs2-io` on Node.js, the parameter `requestCert = true` is ignored, peer certificate verification is skipped, and the connection proceeds. The vulnerability is limited to: 1. `fs2-io` running on Node.js. The JVM TLS implementation is completely independent. 2. `TLSSocket`s in server-mode. Client-mode `TLSSocket`s are implemented via a different API. 3. mTLS as enabled via `requestCert = true` in `TLSParameters`. The default setting is `false` for server-mode `TLSSocket`s. It was introduced with the initial Node.js implementation of fs2-io in 3.1.0. A patch is released in v3.2.11. The requestCert = true parameter is respected and the peer certificate is verified. If verification fails, a SSLException is raised. If using an unpatched version on Node.js, do not use a server-mode TLSSocket with requestCert = true to establish a mTLS connection.

Why it matters now

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.0083 57th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Fixed fs2 (typelevel): 3.2.11co.fs2:fs2-io (Maven): 3.2.11+5 more products

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
Poc
Automatable
Yes
Technical impact
Total

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
http4sfs23.1.0 to before 3.2.113.2.11Patch availableCNA
—co.fs2:fs2-io (Maven)3.1.0 to before 3.2.113.2.11Patch availableGHSA-2cpx-6pqp-wf35
—co.fs2:fs2-io_2.12 (Maven)3.1.0 to before 3.2.113.2.11Patch availableGHSA-2cpx-6pqp-wf35
—co.fs2:fs2-io_3 (Maven)3.1.0 to before 3.2.113.2.11Patch availableGHSA-2cpx-6pqp-wf35
—co.fs2:fs2-io_2.13 (Maven)3.1.0 to before 3.2.113.2.11Patch availableGHSA-2cpx-6pqp-wf35
—co.fs2:fs2-io_sjs1_2.13 (Maven)3.1.0 to before 3.2.113.2.11Patch availableGHSA-2cpx-6pqp-wf35
—co.fs2:fs2-io_sjs1_3 (Maven)3.1.0 to before 3.2.113.2.11Patch availableGHSA-2cpx-6pqp-wf35
  • fs2 Vendorhttp4s Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available CNA
  • co.fs2:fs2-io (Maven) Vendor— Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available GHSA-2cpx-6pqp-wf35
  • co.fs2:fs2-io_2.12 (Maven) Vendor— Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available GHSA-2cpx-6pqp-wf35
  • co.fs2:fs2-io_3 (Maven) Vendor— Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available GHSA-2cpx-6pqp-wf35
  • co.fs2:fs2-io_2.13 (Maven) Vendor— Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available GHSA-2cpx-6pqp-wf35
  • co.fs2:fs2-io_sjs1_2.13 (Maven) Vendor— Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available GHSA-2cpx-6pqp-wf35
  • co.fs2:fs2-io_sjs1_3 (Maven) Vendor— Affected 3.1.0 to before 3.2.11 Fixed in 3.2.11 Patch available GHSA-2cpx-6pqp-wf35

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:typelevel:fs2:*:*:*:*:*:*:*:*3.1.0 to before 3.2.11Vulnerablehttp4s
  • cpe:2.3:a:typelevel:fs2:*:*:*:*:*:*:*:* Versions 3.1.0 to before 3.2.11 Vulnerable ·http4s

Remediation

  • Fix · CNA fs2 (typelevel) Fixed in 3.2.11
  • Fix · GHSA-2cpx-6pqp-wf35 co.fs2:fs2-io (Maven) Fixed in 3.2.11 Advisory →
  • Fix · GHSA-2cpx-6pqp-wf35 co.fs2:fs2-io_2.12 (Maven) Fixed in 3.2.11 Advisory →
  • Fix · GHSA-2cpx-6pqp-wf35 co.fs2:fs2-io_3 (Maven) Fixed in 3.2.11 Advisory →
  • Fix · GHSA-2cpx-6pqp-wf35 co.fs2:fs2-io_2.13 (Maven) Fixed in 3.2.11 Advisory →
  • Fix · GHSA-2cpx-6pqp-wf35 co.fs2:fs2-io_sjs1_2.13 (Maven) Fixed in 3.2.11 Advisory →
  • Fix · GHSA-2cpx-6pqp-wf35 co.fs2:fs2-io_sjs1_3 (Maven) Fixed in 3.2.11 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2022-31183
  2. 2026-10-03 Alias added: GHSA-2cpx-6pqp-wf35

References

Sources