ZRTPCPP, an open-source library that's used by several applications offering end-to-end encrypted phone calls, contained three vulnerabilities that could have enabled arbitrary code execution and denial-of-service attacks, according to researchers from security firm Azimuth Security.
ZRTPCPP is a C++ implementation of the ZRTP cryptographic key agreement protocol for VoIP (voice over IP) communications designed by PGP creator Phil Zimmermann.
The library is used by secure communications provider Silent Circle in its Silent Phone app, as well as by other programs that support encrypted phone calls, including CSipSimple, LinPhone, Twinkle, several client apps for the Ostel service and "anything using the GNU ccRTP with ZRTP enabled," said Azimuth Security co-founder Mark Dowd in a blog post on Thursday.
Following the recent reports about the U.S. National Security Agency's data collection programs that appear to cover Internet audio conversations, there's been an increased interest into encrypted communication services from end users.
The vulnerabilities in ZRTPCPP were found while evaluating the security of some of the products that offer encrypted phone call capabilities, Dowd said.
One vulnerability consists of a buffer overflow in the ZRtp::storeMsgTemp() function, the researcher said. "If an attacker sends a packet larger than 1024 bytes that gets stored temporarily (which occurs many times -- such as when sending a ZRTP Hello packet), a heap overflow will occur, leading to potential arbitrary code execution on the vulnerable host."
Another function, ZRtp::prepareCommit(), contains multiple stack overflows that occur when preparing a response to a client's ZRTP Hello packet. It is unlikely that this vulnerability is exploitable for remote code execution due to technical constraints, but it can be used to crash the target application, Dowd said.
The third vulnerability is an information leakage one and can be used to obtain information that could be used to achieve reliable remote code execution in conjunction with the previously mentioned heap overflow bug. "In addition, it could possibly be used to leak sensitive crypto-related data, although the extent of how useful this is has not been investigated," Dowd said.
In a later update to the blog post, Dowd said that patches for the vulnerabilities have been added to ZRTPCPP's code repository on Github and that Silent Circle has updated its own apps on Google Play and Apple's App Store with fixes.
This was only an initial analysis of a minor component of encrypted phone call apps, he said. "It would be beneficial for the security community to undertake further study of some of these products."