avformat/rtpdec_mpeg4: reject zero-length AU header sections
Reject AU header sections with a signaled length of zero in rtp_parse_mp4_au(). The AU-headers-length field specifies the length in bits of the AU header section that immediately follows. A zero-length section is not useful input for this parser and can lead to invalid downstream state, so reject it up front together with oversized values. *Vulnerability reported by Zhenpeng (Leo) Lin at depthfirst* *Patch validated by Zheng Yu at depthfirst* Fixes: OOB read
This commit is contained in:
committed by
michaelni
parent
fd5023053a
commit
8010aa2193
@@ -138,7 +138,7 @@ static int rtp_parse_mp4_au(PayloadContext *data, const uint8_t *buf, int len)
|
||||
length in bits */
|
||||
au_headers_length = AV_RB16(buf);
|
||||
|
||||
if (au_headers_length > RTP_MAX_PACKET_LENGTH)
|
||||
if (au_headers_length == 0 || au_headers_length > RTP_MAX_PACKET_LENGTH)
|
||||
return -1;
|
||||
|
||||
data->au_headers_length_bytes = (au_headers_length + 7) / 8;
|
||||
|
||||
Reference in New Issue
Block a user