Ich habe keinen direkten Exploit zur Hand, rate aber trotzdem von eval() ab. Ein Escapefehler mit str_replace() und der User kriegt uninterpretierten PHP-Code geliefert. Ein Escapefehler mit eval() und der Server führt Code des Angreifers aus. (Ja, man sollte immmer davon ausgehen, daß die Anwendung permanent angegriffen wird; alles andere ist Leichtsinn.)
Nebenbei generierst du durch falsche Syntax links und rechts kaputte Konstanten. $lang[faker] ist nicht gleichbedeutend mit $lang['faker']!
BTW, es ist möglich, fast beliebiges JavaScript zu injizieren. Die Eingaben für Faker und Gefakten werden nicht ausreichend gefiltert, um Skripte abzufangen. Momentan kriege ich nichts besseres als window.location = "http://evil.tld/" hin, aber über die Lücke wären potentiell fiese Angriffe möglich und ein besser mit JavaScript bewandter Angreifer könnte u.U. sogar XSS durchführen.
Du weißt, daß das vBulletin eine ganze Weile lang unter Code-Injektionen zu leiden hatte? Derartige Angriffe funktionieren grundsätzlich nicht, wenn du eval() nicht verwendest (oder Dämlichkeiten machst wie hochgeldene Dateien zu includen).Zitat