Critical flaw revealed in Facebook Fizz TLS project

The DoS vulnerability is trivially easy to trigger.
Written by Charlie Osborne, Contributing Writer

Researchers have found a vulnerability in the open-source Facebook Fizz project which is relatively easy to trigger for the purposes of a denial-of-service (DoS) attack.

Facebook Fizz is an open-source TLS 1.3 library written in C++ 14. TLS is one of the newer encryption standards for the Internet available and has been designed to be the successor to SSL. TLS implements stronger encryption standards and also has removed support for older, less secure algorithms.

As ZDNet has previously reported, Facebook Fizz was open-sourced in August 2018. The system offers improved functionality for middlebox handshake failures and supports asynchronous I/O by default.

The social networking giant, which uses the system on its own internal and external infrastructure, claims that Fizz also reduces memory and CPU problems.

According to researchers from Semmle, a "critical" bug in the project laid the software open to DoS attacks.

The vulnerability, CVE-2019-3560, was discovered by Kevin Backhouse of the Semmle Security Research team. He discovered an integer overflow in a 16-bit unsigned addition by way of taint analysis which could be exploited to create an infinite loop in Fizz, thereby creating the conditions necessary for a DoS attack.

See also: Key takeaways from damning UK report on Facebook's world of "digital gangsters"

"Fizz is written in a modern C++ style, so it's unlikely to have something like a buffer overflow, which is so common in older C projects," Backhouse said. "That's why I used QL to query for integer overflows instead. The overflow I found causes the code to enter an infinite loop, which could be used to launch a denial of service attack."

A DoS attack performed against Fizz could prevent the service from being available to legitimate users but would not result in any unauthorized access to data.

CNET: Facial recognition can speed you through airport security, but there's a cost

Semmle reported the bug through the Facebook White Hat program on February 20, 2019, and the security flaw was "fixed immediately" on Facebook's internal servers. A patch was created and pushed to GitHub on February 25. A fix has also been included in Fizz version 2019.02.25.00 and later.

The findings resulted in a bug bounty award from the social networking giant. Semmle received $10,000, a fee which is being doubled and donated to charity and nonprofit organizations.

TechRepublic: Vulnerability in Android Instant Apps can be used to steal history, authentication tokens

Facebook said that "while denial of service issues are typically not considered as part of our bug bounty program, this submission discussed scenarios which could have had significant risk."

In related news, on Thursday Facebook admitted to storing Facebook, Facebook Lite and Instagram user passwords in plaintext. While the readable format was used internally, Facebook is keen to emphasize there is no evidence that this inadvisable practice has lead to the compromise of any user accounts. 

Facebook's worst privacy scandals and data disasters

Previous and related coverage

Editorial standards