CVE-2016-6886: MatrixSSL denial of service in pstm_reverse function

CVE-2016-6886 · Severity: high · CVSS 7.5 · Published 2017-01-13

MatrixSSL is a lightweight TLS/SSL library used to secure communications in embedded devices and applications. A vulnerability in how it handles certain cryptographic keys allows a remote attacker to crash the service by sending a specially crafted value during the initial connection handshake. This results in a denial of service, preventing legitimate users from establishing secure connections to the affected device or application.

Technologies: Matrixssl. Vendors: Matrixssl.

Quick answers

Is CVE-2016-6886 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2016-6886 being exploited in the wild.
How severe is CVE-2016-6886?
High severity, with a CVSS score of 7.5, published 13 January 2017.
Which products and versions are affected?
MatrixSSL MatrixSSL before 3.8.4.
Is there a fix for CVE-2016-6886?
A patch was published on 2016-08-01: Fixed in MatrixSSL version 3.8.4 Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2016-6886 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2016-6886?
Check whether you run Matrixssl. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

Technical details

A denial of service vulnerability exists in the MatrixSSL bignum library within the pstm_reverse function. The function fails to properly handle zero-sized inputs, leading to an integer underflow of a length variable and a subsequent invalid memory read. This can be triggered remotely during an RSA key exchange if an attacker provides a zero value or a value equal to the key's modulus as the secret key. The resulting crash terminates the process. The issue was addressed in MatrixSSL version 3.8.4.

Affected products

  • MatrixSSL MatrixSSL before 3.8.4

Timeline

  • 2016-07-31: disclosed: Initial public disclosure by Hanno Böck (The Fuzzing Project)
  • 2016-08-01: patched: Fixed in MatrixSSL version 3.8.4
  • 2017-01-13: advisory: NVD publication date

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.