PHP mail() anfällig für SMTP-Injection

In der letzten Woche gab es verstärkt Angriffe gegen Formmail-Skripte. Die erste Welle gegen einen meiner Server nutze einen Fehler in einem Perl Skript eines Kunden aus. Die zweite Welle wurde erstaunlicherweise gegen PHP-Skripte gefahren, die nach bisherigen Erkenntnissen eigentlich nicht angreifbar waren. Eine Analyse des Angriffs offenbarte eine Schwäche in der PHP mail() Funktion, die sich ausnutzen läßt, wenn man dem Parameter additional_headers ungeprüftes Userinput übergibt. Es ist dann möglich den Mail-Header enden zu lassen und einen eigenen Text in den Body (und auch zusätzliche Cc und Bcc Empfänger) einzufügen. Die Attacke ist unter dem Link mail_with_checks Funktion näher beschrieben. Desweiteren gibt es dort auch eine Abhilfe.