In libavformat/nsvdec.c in FFmpeg 2.4 and 3.3.3, a DoS in nsvparseNSVfheader() due to lack of an EOF (End of File) check might cause huge CPU consumption. When a crafted NSV file, which claims a large "tableentriesused" field in the header but does not contain sufficient backing data, is provided, the loop over 'tableentries_used' would consume huge CPU resources, since there is no EOF check inside the loop.
[
{
"source": "https://github.com/ffmpeg/ffmpeg/commit/c24bcb553650b91e9eff15ef6e54ca73de2453b7",
"id": "CVE-2017-14171-352474f8",
"signature_type": "Function",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "nsv_parse_NSVf_header",
"file": "libavformat/nsvdec.c"
},
"digest": {
"function_hash": "272674515123442855883014561025808090604",
"length": 2647.0
}
},
{
"source": "https://github.com/ffmpeg/ffmpeg/commit/c24bcb553650b91e9eff15ef6e54ca73de2453b7",
"id": "CVE-2017-14171-942d45fb",
"signature_type": "Line",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "libavformat/nsvdec.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"163700682919203254672523376235181754336",
"313333650659292797870983492868699436327",
"104703890762874859995521295993227348633",
"77526834729182645364472304687455895246",
"57775010657314048499270854018607517522"
]
}
}
]