Contao 4.4.52, 4.9.6 und 4.10.1 sind verfügbar. Die Releases schließen die Sicherheitslücke CVE-2020-25768.
Ganzen Beitrag zu 'Contao 4.4.52, 4.9.6 und 4.10.1 sind verfügbar' lesen
Druckbare Version
Contao 4.4.52, 4.9.6 und 4.10.1 sind verfügbar. Die Releases schließen die Sicherheitslücke CVE-2020-25768.
Ganzen Beitrag zu 'Contao 4.4.52, 4.9.6 und 4.10.1 sind verfügbar' lesen
Die Kunden sind verunsichert. Daher ist es schon wichtig zu wissen: Was genau bedeutet das?
https://contao.org/de/sicherheitshin...ormularen.html
Ich verstehs nicht.
1. "Es ist möglich, Insert-Tags in Formulare im Frontend einzuschleusen, die bei der Ausgabe der Seite ersetzt werden."
Um welche Formulare geht es überhaupt und inwiefern wird etwas ausgegeben? Das wäre schon sehr wichtig zu wissen, gerade im Hinblick darauf, dass wir viele Erweiterungen entwickeln...
2. "Empfohlene Lösung: Update auf Contao 4.4.52, 4.9.6 oder 4.10.1."
Okay, also denke ich mir: "Super, das löst das Problem also".
"Workaround: Deaktiviere das Login-Formular im Frontend und verwende keine Formularfelder mit Array-Keys wie z.B. fieldname[]."
Nun bin ich selbst verunsichert. Also muss ich nun doch etwas machen, obwohl ich update oder ist der Workaround der Ersatz für die "empfohlene Lösung"?
Bitte um Aufklärung.
Danke für die Info!
Dann ist nur noch die Frage (1) inwiefern man eigene Formulare (Module) anpassen muss, damit diese wieder sicher sind. Hast du evtl. den Link zu dem geänderten Code?
Im Changelog find ich zu dem Sicherheitsupdate leider auch nichts, also hier:
https://github.com/contao/contao/blo...6/CHANGELOG.md
Evtl. kann mir ja auch jemand Details per PM schreiben, falls die Infos nicht für die Öffentlichkeit bestimmt sind (um Hackern keine Anleitung zu bieten).
Das ist doch gar nicht realisierbar. Jedes Checkbox-Menü hat solche Felder, u.a. Newsletter beim Registrieren.
Edit: Hab es gerade in der Demo nachgestellt (allerdings ist dort noch Contao 4.9.5).
https://demo.contao.org/en/applications.html
Naja, wenn es für dein jeweiliges Projekt nicht realisierbar ist, weil du in dem Formular "foo[]" brauchst, dann musst du zwingend Contao aktualisieren. Du hast eben diese zwei Möglichkeiten: entweder du verwendest im Formular keine Formularfelder mit Array-Notation, oder du aktualisierst Contao.
Dann versteh ich die Logik leider nicht. Selbst in eigenen Erweiterungen werden die Felder validiert, wenn der inputType entsprechend gesetzt ist. Und nur wenn der inputType entsprechend gesetzt ist, werden die eckigen Klammern dran gesetzt.
Warum sollte man (außer bei Checkbox Menü und Radiobox Menü) eckige Klammern verwenden? Dann müsste das ja jemand explizit beim Feldnamen eingeben und sowas macht doch kein Mensch, da es überhaupt keinen Sinn ergibt?
Damit du die Daten dann automatisch als Array hast. Wenn du ein Formular mitgenerieren lässt und dann abschickst, dann hast du mitHTML-Code:<input type="text" name="foo[]">
<input type="text" name="foo[]">
ein Array mit zwei Elementen. Ob und warum du das brauchst kommt halt einfach auf den jeweiligen Use-Case an.PHP-Code:
$request->request->get('foo')
Achso okay, danke für die Erklärung... multicolumns im Frontend quasi... leider gibt es so ein Textfelder Widget ja nicht von Haus aus (was ich mir schon oft gewünscht habe). Also kann das ja nur von selbst zusammengezimmerten Formularen oder Erweiterungen ohne vernünftige Validierung kommen.
Das heißt im Prinzip, sofern man z.B. nur den Formulargenerator eingesetzt hat (und keine eckigen Klammern manuell eingefügt hat), dann braucht man gar nicht updaten?
Sollte das der Fall sein, finde ich die große Ankündigung und Panikmache etwas übertrieben. Klar kostet es als (Core) Entwickler Zeit, aber es ist doch immens wichtig, dass zumindest die Agenturen und Entwickler klar bescheid wissen was genau das Problem ist und nicht wegen der Unklarheit alle gleichzeitig wie wild E-Mails schreiben und instant updaten müssen.
Nein, das kannst du auch direkt im Formulargenerator so machen.
Doch, es geht eigentlich spezifisch um den Formulargenerator. Aber ganz allgemein geht es um alle zutreffenden Teile einer Applikation, die die Contao Widgets benutzen - also auch wenn man bspw. Haste Forms nutzt.
Ich habe schon Hunderte Contao-Installationen gesehen, aber noch nie, dass jemand bei Textfeldern eckige Klammern verwendet, um es als Array zu gebrauchen. Zudem wird beim Standard-Formulargenerator anschließend doch gar nichts ausgegeben.
Außerdem fällt mir nicht wirklich ein sinnvoller Ansatz ein inwiefern man irgendetwas schlimmes manipulieren kann durch den Einsatz von Inserttags. Das schlimmste wäre doch, dass man eine Datei inkludiert. Diese müsste aber auf dem Server im Templates Ordner sein und außerdem müsste man bescheid wissen was für Dateien da überhaupt herumliegen. Zudem müsste in den Dateien irgendwas ganz spezielles stattfinden, dass man das hier überhaupt als Sicherheitslücke bezeichnen kann.
Also wenn man mal ehrlich ist: Es müssen sooooooo viele Bedingungen erfüllt sein, dass das Problem eher theoretischer Natur ist.
Wir haben das auf jeden Fall mal schon so verwendet (wenn auch nicht über den Formulargenerator).
Doch natürlich wird da etwas ausgegeben.
Auch wenn dir persönlich nichts kein Ansatz einfällt, ist es nach wie vor ein kritisches Sicherheitsproblem. Ansätze wie man dieses Sicherheitsproblem ausnutzen kann werden wir hier auch nicht diskutieren.
Wenn du die Array Notation meinst: ja, da ist es ein wenig spezieller. Das Problem in Login Formular erfordert jedoch keine besonderen Bedingungen.
Moderation: aber wie gesagt, die Diskussion sollte hiermit beendet werden.