IMAP Storage Buffer Overflows in Asterisk's Voicemail
11 Oct. 2007
Summary
The function "sprintf" was used heavily throughout the Asterisk IMAP-specific voicemail code. After auditing the code, two vulnerabilities were discovered, both buffer overflows.
Vulnerable Systems:
* Asterisk Open Source version 1.4.12 and prior
Immune Systems:
* Asterisk Open Source version 1.4.13
The following buffer overflow required write access to Asterisk's configuration files in order to be exploited.
1) If a combination of the astspooldir (set in asterisk.conf), the voicemail context, and voicemail mailbox, were very long, then there was a buffer overflow when playing a message or forwarding a message (in the case of forwarding, the context and mailbox in question are the context and mailbox that the message was being forwarded to).
The following buffer overflow could be exploited remotely.
2) If any one of, or any combination of the Content-type or Content-description headers for an e-mail that Asterisk recognized as a voicemail message contained more than a 1024 characters, then a buffer would overflow while listening to a voicemail message via a telephone. It is important to note that this did NOT affect users who get their voicemail via an e-mail client.
Resolution:
"sprintf" calls have been changed to "snprintf" wherever space was not specifically allocated to the buffer prior to the sprintf call. This includes places which are not currently prone to buffer overflows.