Jürgen Ströhmann <juergen.stroehmann@t-online.de> (Di 20 Apr 2021 12:04:26 CEST): > Multiaccount-Nutzung ? > - Gibt es irgendwo einen Einstieg in die konkrete Bedeutung von "tainting" :-))) Für kritische Operationen (vornehmlich wenn nicht sogar ausschließlich) das Öffnen von Files (lsearch, dbm, …) dürfen für den Dateinamen keine Expansionen (Variablen) verwendet werden, deren Inhalt zweifelhaft ist. Ein typisches Beispiel: # Beispiel 1 begin routers localuser: check_local_user transport = appendfile begin transports appendfile: driver = appendfile file = /var/mail/$local_part Ein anderes Beispiel # Beispiel 2 begin routers virtual_aliases: driver = redirect data = ${lookup{$local_part}lsearch{$config_dir/domains/$domain}} In beiden Fällen werden $domain bzw. $local_part von außen durch den Absender kontrolliert, und könnten *theoretisch* sowas wie „../../../../etc/passwd“ enthalten. Mit etwas Phantasie läßt sich daraus vielleicht was schönes basteln. Deshalb werden in einer „aktuellen“ 4.94-Version diese o.g. Zeilen nicht mehr funktionieren und mit einem „Tainted data while ...“ oder so ähnlich abgebrochen. #1 ist leicht behebbar, weil nach dem check_local_user automatisch eine Variable $local_part_data mit einem geprüften Local Part enthält - file = /var/mail/$local_part + file = /var/mail/$local_part_data Im zweiten Beipiel sieht die offizielle Lösung etwas anders aus: virtual_aliases: driver = redirect + domains = dsearch,ret=key;$config_dir/domains - data = ${lookup{$local_part}lsearch{$config_dir/domains/$domain}} + data = ${lookup{$local_part}lsearch{$config_dir/domains/$domain_data}} Das alles ist jetzt aus dem Kopf aufgeschrieben, ohne Prüfung, vielleicht ist es also auch falsch. Die aktuell zu 90% implementierte Option „allow_insecure_tainted_data“ würde die ersten zwei Beispiele weiterhin funktionieren lassen, aber um den Preis von Log-Meldungen. Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann -- SCHLITTERMANN.de ---------------------------- internet & unix support - Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} - gnupg encrypted messages are welcome --------------- key ID: F69376CE -
Attachment:
signature.asc
Description: PGP signature