-
Notifications
You must be signed in to change notification settings - Fork 149
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
heap buffer overflow is found in movDemuxer::mov_read_trun #841
Comments
This input seems to cause other memory leaks, so we will continue to investigate. |
The following tsMuxer/tsMuxer/movDemuxer.cpp Lines 1510 to 1519 in 75c9cb3
|
this heap buffer overflow is exploitable (reverse shell can be activated). The ASAN of mov_read_trun has not completely disappeared, but at least the heap buffer overflow has been completely mitigated by PR #851 . |
Our fuzzer found heap buffer overflow in movDemuxer. in the current master(75c9cb3).
PoC is here.
Following is an output of ASAN.
vuln15.mov is in poc15.zip
It is caused by two Bug
mov_read_stsd()
.tsMuxer/tsMuxer/movDemuxer.cpp
Line 1522 in 75c9cb3
a.size
is a value calculated based on user input, but it does not take min with the size of stsd, that is,atom.size - ( m_processedBytes - start_pos)
.When
a.size
is large, assuming a very large atom exists under stsd, all subsequent input would be subject toParseEntryTable
undermov_read_stsd
.ctts_count
is not initialized withentries
inmov_read_ctts
.tsMuxer/tsMuxer/movDemuxer.cpp
Lines 1189 to 1191 in 75c9cb3
When calling in the order of
mov_read_trun
->mov_read_ctts
->mov_read_trun
, the vector ofctts_data
is resized inmov_read_ctts
butctts_count
remains, so a heap buffer overflow occurs at the following place in the secondmov_read_trun
.tsMuxer/tsMuxer/movDemuxer.cpp
Lines 1100 to 1102 in 75c9cb3
The first bug makes it easier for the second bug to ignite.
This heap overflow has the potential to destroy the heap to some extent at will.
Ricerca Security, Inc.
The text was updated successfully, but these errors were encountered: