Eine Sicherheitslücke in der Bibliothek Libtar hat zur Folge, dass ein lokaler Angreifer Befehle mit den Rechten des Anwenders ausführen kann.
Ursache ist ein Integer-Overflow-Fehler in der Quelltextdatei “lib/block.c” Der Programmierfehler befindet sich in mehreren Zeilen der Funktion “th_read_internal()” innerhalb von “if (TH_ISLONGLINK(t))”-Blöcken. Hier werden an mehren Stellen Speichergrößen berechnet:
j = (sz / T_BLOCKSIZE) + (sz % T_BLOCKSIZE ? 1 : 0);
Allerdings kann es hier zu Integer Overflows kommen, die dazu führen, dass anschließende Speicherallokationen wie
(char *)malloc(j * T_BLOCKSIZE);
Buffer Overflows auslösen und es damit einem Angreifer erlauben, beliebige Befehle auszuführen.
Betroffen sind die Versionen 1.2.19 und älter.

