Theo de Raadt hat eine Änderung hinzugefügt, die die Verwendung des Nullzeichens in Shell-Skripten, die vom standardmäßig verwendeten BefehlInterpreter ksh verarbeitet werden, verboten hat. Das Vorhandensein von Nullzeichen in Skripten führt nun zu einem Abbruch der Ausführung mit einer Fehlermeldung, es sei denn, sie befinden sich unter den am Ende der Datei angehängten Daten nach dem Code. Die Änderung ist in den OpenBSD-Current-Zweig aufgenommen worden, auf dessen Basis die OpenBSD-Version 7.6 erstellt wird.
Es wird angemerkt, dass eine solche Änderung die Unbestimmtheit des Verhaltens ausschließt, die mit der Verarbeitung des Nullzeichens im C-Code verbunden ist, der Strings verwendet, bei denen das Nullbyte zur Indikation des Endes der Zeichenfolge dient. Die Untersuchung der Behandlung des Nullzeichens in verschiedenen Shells hat gezeigt, dass in jeder von ihnen ein oder mehrere Fälle festgestellt wurden, in denen das Nullbyte in den Eingabedaten oder dem Inhalt von Variablen zu einem abweichenden Verhalten im Vergleich zu anderen Shells führte; beispielsweise ignorierten einige Shells es, einige ersetzten es durch ein Leerzeichen, während andere die weitere Analyse des Skripts abbrachen oder dessen Ausführung stoppten.
Quelle: opennet.ru
