Travis Cross aa4261d11f Avoid buffer-overflow on short RTCP/SRTCP packets
In `srtp_unprotect_rtcp()` we are not validating that the packet
length is as long as the minimum required.  This would cause
`enc_octet_len` to underflow, which would cause us to try to decrypt
data past the end of the packet in memory -- a buffer over-read and
buffer overflow.

In `srtp_protect_rtcp()`, we were similarly not validating the packet
length.  Here we were also polluting the address of the SRTCP
encrypted flag and index (the `trailer`), causing us to write one word
to a bogus memory address before getting to the encryption where we
would also overflow.

In this commit we add checks to appropriately validate the RTCP/SRTCP
packet lengths.

`srtp_unprotect_rtcp_aead()` (but not protect) did correctly validate
the packet length; this check would now be redundant as the check in
`srtcp_unprotect_rtcp()` will also run first, so it has been removed.
2014-06-30 19:00:35 +00:00
2014-03-24 12:39:59 +00:00
2014-06-16 18:10:45 -05:00
2014-04-01 20:14:55 -07:00
2014-02-12 12:08:56 -06:00
2014-03-15 00:15:02 +08:00
2014-06-30 01:23:07 +05:00
2014-06-17 17:20:00 -05:00
2014-04-13 10:01:17 +02:00
2010-04-01 21:00:45 -04:00
2012-05-28 16:35:00 +00:00
2014-06-17 21:14:14 -05:00
2013-09-16 22:59:26 +05:00
2013-09-16 22:59:26 +05:00
2012-05-15 10:20:52 -05:00
2014-02-02 12:33:37 +01:00
2010-01-23 20:19:18 +00:00
2009-11-18 19:42:00 +00:00
2014-06-13 22:34:50 -05:00
2014-01-17 16:17:57 -06:00
2013-04-04 20:52:47 -05:00
2013-12-23 22:43:06 +05:00
Description
FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unl
Multiple Licenses 196 MiB
Languages
C 65.2%
C++ 20.8%
JavaScript 4.8%
Assembly 2%
Makefile 1%
Other 5.4%