The security researchers Markus Vervier and Jean-Philippe Aumasson have discovered multiple vulnerabilities in the Android version of the secure messaging application Signal that can be exploited by a remote attacker to alter attachments and cause the app to crash.
Signal is a free and open-source encrypted voice calling and instant messaging application for mobile devices. It runs on both iOS and Android and uses advanced end-to-end encryption protocols to protect communications from prying eyes.
The Signal app has been developed by Moxie Marlinspike, co-founded of the Open Whisper Systems firm.
If you are looking for the most secure messaging app, you can use Signal and strengthen security in your texts and phone calls. It is free of charge and it encrypts your data.
The Cryptographer and Professor at Johns Hopkins University Matt Green, the popular security expert Bruce Schneier, and of course the whistleblower Edward Snowden are among the most popular admirers of the Signal app, recently we saw the application also in the TV series Mr. Robot.
Vervier and Aumasson have analyzed the Signal Android version and discovered several security issues. The most worrisome issue is related to the message authentication code (MAC) used for the verification of the attachments.
Every time a Signal user sends a file, the attachment is first encrypted and then the application assigns it a MAC that is used by the recipient to verify the sender’s identity and the integrity of the file sent.
The file attached to the message is stored on Amazon’s S3 storage servers and it is available for the download via HTTPS to the recipient’s device.
The security duo discovered that it is possible to run a man-in-the-middle (MitM) attack to access the Amazon S3 storage or any of the CA certificates trusted by Android can serve the targeted user an modified attachment.
The experts discovered that it is possible to bypass the MAC verification function by padding the attachment with 4 Gb plus 1 byte of data.
The researchers noted that in practice the attacker does not need to send 4 Gb of data to the victim, by using HTTP stream compression it is possible to reduce the attachment to just 4.5 Mb.
“As seen above remainingData is of type int and calculated from the length of the file subtracted by the MAC length. Since file.length() will return a value of type long and files may be larger than Integer.MAX_VALUE, remainingData will wrap around.” reads the analysis published by the researchers.
“Unlike C(++), Java is “memory safe” and therefore this will not lead to any classical memory corruption condition. Instead, we can use this overflow to subvert the program logic. Now if the file is of size 4GB + 1 byte + X, the value will wrap around and remainingDatawill be set to X.”
The security experts also disclosed another flaw related to the application’s CallAudioManager class and how it handles Real-time Transport Protocol (RTP) packets. A remote attacker could exploit it to crash the messaging app.
The flaws were already reported to Signal on September 13, the company committed the fixes on the GitHub repository on the same day. Searching for Signal in the Google Play it is possible to note that it was released on September 16, which means that the official store offered the flawed application at in the last 3 three days.
(Security Affairs – messaging app, Signal)