MOSS/Secure Open Source/Completed

From MozillaWiki
Jump to: navigation, search

Secure Open Source has completed the following audits.

2017

chrony

Dates: June - September 2017

chrony is an implementation of the Network Time Protocol, used either to set the time on a particular machine or act as an NTP server for other machines on the network. The audit was performed by Cure53, and kindly funded by CII.

The team found the following problems:

  • 2 Low

Cure53 write: The overwhelmingly positive result of this security assignment performed by three Cure53 testers can be clearly inferred from a marginal number and low-risk nature of the findings amassed in this report. Withstanding eleven full days of on-remote testing in August of 2017 means that Chrony is robust, strong, and developed with security in mind. The software boasts sound design and is secure across all tested areas. It is quite safe to assume that untested software in the Chrony family is of a similarly exceptional quality. In general, the software proved to be well-structured and marked by the right abstractions at the appropriate locations. While the functional scope of the software is quite wide, the actual implementation is surprisingly elegant and of a minimal and just necessary complexity. In sum, the Chrony NTP software stands solid and can be seen as trustworthy.

The documents are as follows:

expat

Dates: February - July 2017

expat is a stream-oriented XML parser library written in C. The audit was performed by Radically Open Security.

The team found the following problems:

  • 4 Medium
  • 3 Low

The documents are as follows:

GNU libmicrohttpd

Dates: January - May 2017

GNU libmicrohttpd is a small embeddable HTTP 1.1 server written in C which supports TLS and IPv6. The audit was performed by Least Authority.

The team found the following problems:

  • 1 Medium
  • 2 Low
  • 1 Informational

The documents are as follows:

oauth2-server

Dates: December 2016 - January 2017

oauth2-server is a standards compliant implementation of an OAuth 2.0 authorization server written in PHP. The audit was performed by independent auditor Brian Carpenter.

The team found the following problems:

  • 1 Low

There is no fix and validation log; the subsystem in which the issue was found is being removed.

dovecot

Dates: October 2016 - January 2017

dovecot is a POP and IMAP mailserver; it is used in 68% of IMAP server deployments worldwide. The audit was performed by Cure53.

The team found the following problems:

  • 3 Low

The Cure53 team were extremely impressed with the quality of the dovecot code. They wrote: "Despite much effort and thoroughly all-encompassing approach, the Cure53 testers only managed to assert the excellent security-standing of Dovecot. More specifically, only three minor security issues have been found in the codebase, thus translating to an exceptionally good outcome for Dovecot, and a true testament to the fact that keeping security promises is at the core of the Dovecot development and operations."

ntp

Dates: December 2016 - March 2017

ntp is a implementation of the Network Time Protocol. The audit was performed by Cure53.

The team found the following problems:

  • 1 Critical
  • 2 High
  • 1 Medium
  • 8 Low
  • 2 Informational

This audit was performed at the same time as an audit of ntpsec, which is based on a version of the ntp code.

ntpsec

Dates: December 2016 - March 2017

ntpsec is a implementation of the Network Time Protocol, a fork of ntp. The audit was performed by Cure53.

The team found the following problems:

  • 3 High
  • 1 Medium
  • 3 Low
  • 1 Informational

This audit was performed at the same time as an audit of ntp, of which this codebase is a fork.

2016

PCRE

Dates: October 2015 - June 2016

PCRE (Perl-Compatible Regular Expressions) is a C library for implementing regular expressions in a codebase. It is used in various open source projects including Exim, Apache, PHP and KDE, as well as Apple Safari. We audited PCRE2, a newer version which is currently less commonly-used but which is expected to become increasingly common. The audit was performed by Cure53.

The team found the following problems:

  • 1 Critical
  • 5 Medium
  • 20 Low
  • 3 Informational

The critical vulnerability was a stack buffer overflow which could have led to arbitrary code execution when compiling untrusted regular expressions.

libjpeg-turbo

Dates: November 2015 - June 2016

libjpeg-turbo is a fork of the libjpeg codebase which is particularly focussed on speed, and on compatibility with the most commonly-used standard profiles of JPEG. It is used by a number of open source projects, including Chrome, LibreOffice, Firefox and various flavours of VNC. The audit was performed by Cure53.

The team found the following problems:

  • 1 High
  • 2 Medium
  • 2 Low

The high vulnerability was an out-of-bounds read. It is unclear exactly how exploitable it was. However, more interesting were the two medium vulnerabilities, which were initially reported as DoS bugs in the libjpeg-turbo library but on further investigation were found to be issues with the JPEG standard itself. These issues were reproduced across multiple JPEG implementations, can be triggered by entirely legal JPEGs, and so are not easy to mitigate in any JPEG library itself. We have written up these issues in a separate report, along with our suggestions as to how applications using JPEG can mitigate them in their own code.

phpMyAdmin

Dates: May - June 2016

phpMyAdmin is a web-based administration tool for MySQL databases. The audit was performed by NCC Group.

The team found the following problems:

  • 3 Medium
  • 5 Low
  • 1 Informational

NCC Group found no serious issues in this codebase.

dnsmasq

Dates: May - August 2016

dnsmasq is a lightweight implementation of DNS, DHCP, router advertisement and network boot. It is used in resource-constrained environments such as routers and firewalls (e.g. openWRT and DD-WRT), Android, and OpenStack. The audit was performed by Cure53.

The team found the following problems:

  • 1 Medium
  • 5 Low

zlib

Dates: July - September 2016

zlib is a compression library implementing the 'deflate' compression algorithm, used in countless applications. The audit was performed by Trail of Bits.

The team found the following problems:

  • 1 Medium
  • 4 Low

One of the Low severity issues is still under discussion between the zlib development team and the auditors, as they are working out how to resolve it without performance degradation.

curl

Dates: August - November 2016

curl is a command-line application for transferring data, most usually over HTTP or HTTPS. The audit was performed by Cure53.

The team found the following problems:

  • 4 High
  • 5 Medium
  • 9 Low
  • 5 Informational

8 of the vulnerabilities resulted in security advisories being produced by the curl team on November 2nd, 2016.