decode_frame en libavcodec / exr.c en FFmpeg 4.3.1 tiene una escritura fuera de límites debido a errores en los cálculos de cuándo realizar operaciones de memset zero.
ymax = FFMAX(0, s->ymax + 1);
// Zero out the end if ymax+1 is not h
for (i = 0; i < planes; i++) {
ptr = picture->data[i] + (ymax * picture->linesize[i]);
for (y = ymax; y < avctx->height; y++) {
memset(ptr, 0, out_line_size);
ptr += picture->linesize[i];
if (ymax < avctx->height)
for (i = 0; i < planes; i++) {
ptr = picture->data[i] + (ymax * picture->linesize[i]);
for (y = ymax; y < avctx->height; y++) {
memset(ptr, 0, out_line_size);
ptr += picture->linesize[i];
}
}
}
picture->pict_type = AV_PICTURE_TYPE_I;
*got_frame = 1;
Referencias:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26532
https://github.com/FFmpeg/FFmpeg/commit/3e5959b3457f7f1856d997261e6ac672bba49e8b
https://github.com/FFmpeg/FFmpeg/commit/b0a8b40294ea212c1938348ff112ef1b9bf16bb3
Gracias por visitar este sitio, espero que te haya gustado y vuelvas proximamente, compartela en las redes sociales, gracias
Fecha actualización el 2021-01-05. Fecha publicación el 2021-01-05. Categoría: vulnerabilidad Autor: Oscar olg Mapa del sitio Fuente: NIST