CVE-2016-6885: MatrixSSL denial of service in pstm_exptmod function

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

MatrixSSL is a lightweight security library used to provide encrypted communications for embedded devices and applications. A flaw in its mathematical processing allows a remote attacker to crash a server or device by sending a specially crafted zero-value during the initial connection handshake. This results in a denial of service, potentially disrupting secure communications and device availability.

Technologies: Matrixssl. Vendors: Matrixssl.

Quick answers

Is CVE-2016-6885 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2016-6885 being exploited in the wild.
How severe is CVE-2016-6885?
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-6885?
A patch was published on 2016-07-31: 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-6885 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2016-6885?
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 vulnerability exists in the pstm_exptmod function within MatrixSSL's bignum library. The function fails to properly handle a base value of zero during modular exponentiation, leading to an invalid free operation and a subsequent application crash. This can be triggered remotely by an unauthenticated attacker during cryptographic handshakes, such as RSA key exchanges, where the client provides the base value. The issue was addressed in version 3.8.4, though the fix involves returning an error for zero-base inputs rather than supporting them.

Affected products

  • MatrixSSL MatrixSSL before 3.8.4

Timeline

  • 2016-07-31: disclosed: Public disclosure by Hanno Böck (The Fuzzing Project)
  • 2016-07-31: 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.