Security Advisory: bzip2 gefährdet das System

asg

push it, don´t hype
SECURITY ALERT

Wer ein Antivirusprogramm unter seinem system laufen hat, sollte in nächster Zeit aufpassen das einem nicht die Festplatte vollgeschrieben wird oder die Ressourcen durch das Antivirenprogramm aufgefressen werden.
Insbesondere bei Mailservern die mit Antivirenprogrammen arbeiten ist die Gefahr gross.

Durch das Erstellen von sehr grossen Dateien die nur mit Nullen gefüllt sind, und das anschliessende packen im bzip2 Format, können Server, bzw. deren Speicherplatz auf der Platte, vollaufen.
Da die Dateien gepackt relativ klein erscheinen ist die vermeintliche Gefahr nicht sofort sichtbar, aber Virenscanner denrpacken iese Dateien zuerst um deren Inhalt zu untersuchen. Dabei wird dann die wahre Grösse der Datei bekannt, diese kann dann mehrere GB betragen und das Filesystem somit vollaufen lassen. Auch das Dekomprimieren dauert seine Zeit, welches wiederum Ressourcen frisst und der Email-Verkehr erheblich ins Stocken bringt.

Da es bisher noch keine Lösung von den Antivirenherstellern gibt, wird angeraten Dateien im bzip2 Format nicht anzunehmen und diese Emails beispielsweise zu verwerfen.

Auch ZIP Dateien können zu dem Problem führen, wenn deren Headerinformationen geändert wurden.
 
Wer das nicht glaubt: das Attachment ist ein Gigabyte Nullen schwer. Da hier nur Textfiles attachet werden dürfen, habe ich es vorher uuencoded. Zum Testen:
Code:
$ uudecode bla.bz2.txt 
$ bzip2 -d bla.bz2
Enjoy...

Ach ja, erzeugt habe ich es mit:
Code:
dd if=/dev/zero bs=1m count=1024 | bzip2 - > bla.bz2

Es lebe die Shannon-Entropie!
 

Anhänge

Vielleichjt bin ich zu blöde aber welchen Grund gibt es denn ein riesenfile nur mit 0 anzulegen/zu speichern??

c ya

xash
 
Ich habe hier den amavisd-new und der erkennt auch das die entpackte Datei zu groß wird, läßt die Mail dann aber quasi ungeprüft durch.
Die Kopfzeile in der Mai dazu:
X-Amavis-Hold: Exceeded storage quota 556000 bytes by run_command_copy; last chunk 16384 bytes

Also entweder scannen und bei dem Versuch /tmp voll schreiben oder ungesehen weiterleiten... ist beides keine glückliche Lösung.
 
So funktioniert es mit Amavis/Clamscan

relevante amavis config:
------------------------

$bypass_decode_parts = 0;
$MAXLEVELS = 5; # (default is undef, no limit)
$MAXFILES = 500; # (default is undef, no limit)
$MIN_EXPANSION_QUOTA = 100*1024; # bytes (default undef, not enforced)
$MAX_EXPANSION_QUOTA = 300*1024*1024; # bytes (default undef, not enforced)
$MIN_EXPANSION_FACTOR = 5; # times original mail size (must be specified)
$MAX_EXPANSION_FACTOR = 500; # times original mail size (must be specified)

Optionen fuer clamscan: --max-recursion=5 --max-space=8192

Leider funktioniert das nur mit Virenscannern die selber Limits beherschen, bei Sophos z.B. hab ich keine Loesung.
 
Zurück
Oben