Buffer-Overflow-Fehler in FFmpeg

Eine Schwachstelle in FFmpeg hat zur Folge, dass ein entfernter Angreifer Befehle mit den Rechten des Anwenders ausführen kann.

Ursache ist ein Buffer-Overflow-Fehler in der Funktion “mpegts_write_pmt()”. Ein Angreifer kann dieses Problem ausnutzen, indem er sein Opfer dazu bringt, eine von ihm konstruierte Datei mit FFmpeg abzuspielen. Der Programmierfehler befindet sich an mehreren Stellen in der Quelltextdatei “libavformat/mpegtsenc.c”. Sie alloziert ein Array auf dem Stack alloziert:

uint8_t data[1012], *q;

Dieses wird anschließend mit folgender Zeiger-Operation gefüllt:

*q++ = stream_type;

wobei “q” anfangs auf den Beginn von “data” zeigt:

q = data;

. Das Problem besteht darin, dass ein Angreifer Kontrolle über “stream_type” hat, und damit einen Stack Buffer Overflow erzwingen kann.

Das Patch für diese Schwachstelle besteht darin, zusätzliche Längenabfragen in den Code einzubauen, um zu verhindern, dass über das Ende von “data[]” hinaus geschrieben wird. Damit ist die Attacke dann nicht mehr möglich.

Nach oben