Endlich(!) hat es mal jemand bemerkt und aufgeschrieben ... ohne diese Änderung war die "featovl.cfg" halt eine weitere Stelle, über die man in eine ansonsten geschlossene Box eindringen konnte, denn da ließ sich bis dahin alles einstellen, was einem so in den Sinn kam, von "PATH" (der dann auch zuerst auf einem USB-Stick suchen konnte, denn das "noexec" beim Mounten ist ja auch erst nachträglich hinzugekommen) bis hin zu "LD_LIBRARY_PATH" und es gibt - dadurch, daß die Firmware eben über alle Modelle praktisch dieselbe ist, wenn es um Shell-Skripte und Lua-Dateien geht - auch genug "versteckte" Aufrufe irgendwelcher Programme, die in einer speziellen Firmware gar nicht enthalten sind, weil die nur auf einem anderen Modell benötigt werden.
Solche Programme kann man selbst dann noch "zum Einstieg" benutzen, wenn man z.B. einem "PATH" keine "vorderen" Verzeichnisse hinzufügen kann, weil in irgendwelchen anderen Skript-Dateien die "natürlichen Verzeichnisse" noch einmal vorne eingefügt werden, ungefähr so:
Code:
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:$PATH
, wobei man mit solchen Konstruktionen ja meist vermeiden will, daß irgendwelche benutzerdefinierten Kommandos vor denen des Systems gefunden werden.
Wenn es dann aber irgendein Kommando ist, was gar nicht existiert (das Erzeugen der Support-Daten enthält z.B. einige schöne Kandidaten dafür), dann wird es auch in den ersten Verzeichnissen nicht gefunden und - sofern es irgendwo anders im Pfad noch auftaucht - dann von einer anderen Stelle geladen.
Ähnliches gilt auch für "LD_LIBRARY_PATH", denn auch wenn AVM den gar nicht selbst verwendet, hat man doch die C-Library so konfiguriert, daß er berücksichtigt würde und das eben sogar noch vor den "eingebauten" Verzeichnissen für die Suche nach Bibliotheken.
Da man die "featovl.cfg" eben auch ohne Shell-Zugriff ändern kann (notfalls muß man eben auf alte Einstellungen verzichten, wenn man über die erweiterten Supportdaten kein TFFS-Image zum Modifizieren kriegt), konnte man auch darüber wieder in eine FRITZ!Box "einsteigen", die ansonsten keine Möglichkeit dafür bot (und für die es auch keine Firmware zum Modifizieren gab).
Auch der zweite Teil dieser Änderung, mit dem es jetzt keine anderen Zeichen, die für eine Shell eine Sonderbedeutung haben, mehr in den Werten geben kann und womit bei einer späteren Verwendung einer solchen Variablen das Fehlen von "quotes" um den Namen nicht mehr zum Problem werden kann (oder auch das Einbetten von Kommandos über "$(...)"), macht die Verarbeitung an dieser Stelle deutlich sicherer (gegen einen potentiellen Angreifer).