Code-BBCode kann Server bzw. PHP-Interpreter zum Absturz bringen

  • Affected App
    WoltLab Suite Core

    Ich habe keine Ahnung, wie genau, aber nehmt den Code aus angehängter Textdatei (will eine Indizierung vermeiden, daher in einem ZIP-Archiv) und fügt ihn im Quellcode-Modus in das Postingfeld ein und klickt auf "Vorschau" (Neuer Thread oder Erweiterte Antwort benutzen). Posten kann man's hier nicht wegen der Zeichenbegrenzung.


    Das ist ein Post, welchen ein User meines Forums soeben postete. Ich habe keinen Schimmer, wie er das zustande gebracht hat, aber Tatsache ist, ein Thread mit diesem Post kann nicht mehr aufgerufen werden.


    Nachtrag: WBB 4.0 und 4.1!

    Edited 2 times, last by King555: Anhang aus Datenschutzgründen entfernt und Entwickler via Konversation zugesendet ().

  • Code
    Premature end of script headers: index.php, referer:


    Grade im Testofurm mal gepostet.
    Das steht dann in den server logs..


    EDIT:


    Das war so in der schnell antwort.


    Nun wenn ich das als Neues Thema erstelle oder eine antwort im erweitertem modus (jeweils quellcode) kann ich das bei mir problemlos posten


    Vorschau: wenn ich auf Vorschau klicke dann zeigt der mir das zwar alles an, aber nicht mehr die möögichkeit den Beitrag abzusenden.


    EDIT 2:


    Wenn ich nun das Thema aufrufen möchte wo ich den Beitrag per Schnellantwort, ohne quell modus eingestellt (versucht) hatte komm Internal server error mit der gleichen Meldung wie oben.
    Das andere Thema wo ich jeweils erweiterter Modus und Quellcode kann ich immer noch einwandfrei aufrufen

  • Bei mir steht dann dort: mod_fcgid: process /var/www/cgi-bin/cgi_wrapper/cgi_wrapper(4844) exit(communication error), get unexpected signal 11

    • Official Post

    Hallo,


    ich kann das Problem bei mir mit PHP-Version 5.5.9+dfsg-1ubuntu4.5 reproduzieren. PHP stirbt mit einem SIGSEGV in der Bibliothek für reguläre Ausdrücke. Ich werde das mal untersuchen und ggf. für lange Codes das Syntax-Highlighting deaktivieren.

    • Official Post

    Hallo,


    das hier ursächliche Problem (ein Stack Overflow in libpcre) ist jetzt umgangen und wird mit WCF 2.0.10 ausgeliefert. Prinzipiell ist das ganze zwar ein Bug in PHP, laut dem offiziellen Bugtracker wird das ganze aber nicht behoben, da dies die regulären Ausdrücke deutlich verlangsamen würde: https://bugs.php.net/bug.php?id=45735
    Es ist allerdings möglich das ganze in eigenen Installation via pcre.recursion_limit-Einstellung zu konfigurieren. Bei mir hat es rund 16'000 rekursive Aufrufe bis zum Stack Overflow benötigt, das Limit von 100'000 in einer Standardinstallation liegt da also deutlich drüber.


    Zusätzlich ist jetzt als letzte Sicherheitsmaßnahme, falls noch andere reguläre Ausdrücke betroffen sind, eine Überprüfung der Codelänge integriert. Sollte der Code zu lang sein, so werden die Highlighter deaktiviert.

    • Official Post

    Hallo,

    @TimWolla Ab welcher länge greift die Änderung?


    Ab dem nächsten Update werden nur noch Einträge bis 16KiB gehighlighted. Das sollte für fast alle üblichen Quellcodes ausreichen :) Die Prüfung ist, wie gesagt, nur ein Sicherheitsnetz – optimalerweise werden die regulären Ausdrücke der Highlighter optimiert. In dem hier vorliegenden Fall hatten bereits etwa 8KiB gereicht um PHP zu Absturz zu bringen.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!