Skip to content

fs2-io skips mTLS client verification

Critical severity GitHub Reviewed Published Jul 26, 2022 in typelevel/fs2 • Updated Jan 31, 2023

Package

maven co.fs2:fs2-io (Maven)

Affected versions

>= 3.1.0, < 3.2.11

Patched versions

3.2.11

Description

Impact

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. TLSSockets in server-mode. Client-mode TLSSockets are implemented via a different API.
  3. mTLS as enabled via requestCert = true in TLSParameters. The default setting is false for server-mode TLSSockets.

It was introduced with the initial Node.js implementation of fs2-io in v3.1.0.

Patches

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.

Workarounds

If using an unpatched version on Node.js, do not use a server-mode TLSSocket with requestCert = true to establish a mTLS connection.

References

For more information

If you have any questions or comments about this advisory:

References

@ChristopherDavenport ChristopherDavenport published to typelevel/fs2 Jul 26, 2022
Published to the GitHub Advisory Database Jul 29, 2022
Reviewed Jul 29, 2022
Published by the National Vulnerability Database Aug 1, 2022
Last updated Jan 31, 2023

Severity

Critical
9.8
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2022-31183

GHSA ID

GHSA-2cpx-6pqp-wf35

Source code

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.