Blog

Security improvements in Admidio 4.1

Admidio 4.1 has received several improvements to prevent cross-site scripting (XSS) attacks, which we would like to present here. This should also encourage you to update to version 4.1 as soon as possible.

The most obvious change you might stumble over first is the change from the ID in a URL to the UUID (Universal unique identifier). This turns the unique ID of a record in a table e.g. 298 into a longer unique UUID e.g. 123e4567-e89b-12d3-a456-426614174000 . We have introduced these UUIDs at all places in the program where IDs are called via the URL. What is the advantage of this new identification of a record? With the old ID, you quickly notice that it is simply incremented by one digit with each data record. So as an attacker I can easily build a script that calls the URL to delete a member in a loop.
https://www.meine-seite.de/admidio/adm_program/modules/members/members_function.php?mode=3&id=1
https://www.meine-seite.de/admidio/adm_program/modules/members/members_function.php?mode=3&id=2
https://www.meine-seite.de/admidio/adm_program/modules/members/members_function.php?mode=3&id=3
...
Now all I have to do is direct a logged in administrator to my website and run this script. Then all members are deleted.
With the UUID I can not do this so easily, because I do not know the IDs. These are almost worldwide unique and can not be traced. To create such a script as an attacker, he would need access to your member administration beforehand and would have to read out the UUIDs of the members.
If you have previously stored links with an ID somewhere, you must now adapt them.
The previous URL: https://www.meine-Seite.de/admidio/adm_program/modules/profile/profile.php?user_id=1 must be changed to the following URL: : https://www.meine-Seite.de/admidio/adm_program/modules/profile/profile.php?user_uuid=123e4567-e89b-12d3-a456-426614174000
A list of all possible transfers to the modules can be found in our wiki.

Another change in Admidio 4.1 is the introduction of a CSRF token. This is a longer random ID which is regenerated with every page visit. The token is now sent to the server with every form and every executing call. The server compares the sent token with the token stored there and executes the function only if these two tokens are identical. With this adjustment it can be prevented that someone executes a link, e.g. the one above, on a foreign web page. The foreign site usually does not know your current session token.

Both adjustments make your site more secure against so called Cross-Site-Scripting (XSS) attacks where the attacker leads logged in users to his site to execute his customized scripts. It was and is not possible to execute a script directly on your installation, which changes data without the user consciously doing so.

---------------------------------------------------------------------------------

Admidio 4.1 hat verschiedene Verbesserungen zur Prävention von Cross-Site-Scripting (XSS) Attacken bekommen, welche wir hier kurz vorstellen wollen. Dies soll euch auch dazu animieren möglichst zeitnah auf die Version 4.1 zu aktualisieren.

 

Die offensichtlichste Änderung über die ihr vielleicht auch als erstes stolpern werdet, ist die Umstellung von der ID in einer URL zu der UUID (Universal unique identifier). Damit wird aus der eindeutigen ID eines Datensatzes in einer Tabelle z.B. 298 eine längere einzigartige UUID z.B. 123e4567-e89b-12d3-a456-426614174000 . Diese UUIDs haben wir an allen Stellen im Programm eingeführt an denen IDs über die URL aufgerufen werden. Was ist der Vorteil dieser neuen Identifikation eines Datensatzes? Bei der alten ID stellt man schnell fest, dass diese mit jedem Datensatz einfach um eine Stelle hochgesetzt wird. Als Angreifer kann ich also leicht ein Script bauen, welches die URL zum Löschen eines Mitglieds in einer Schleife aufruft.

https://www.meine-seite.de/admidio/adm_program/modules/members/members_function.php?mode=3&id=1

https://www.meine-seite.de/admidio/adm_program/modules/members/members_function.php?mode=3&id=2

https://www.meine-seite.de/admidio/adm_program/modules/members/members_function.php?mode=3&id=3

Nun muss ich nur noch einen angemeldeten Administrator auf meine Webseite leiten und dieses Script ausführen lassen. Anschließend sind dann alle Mitglieder gelöscht.

Mit der UUID kann ich dies nicht so einfach machen, da ich die IDs nicht kenne. Diese sind nahezu weltweit einmalig und können nicht nachvollzogen werden. Um so ein Script als Angreifer zu erstellen, bräuchte er vorher Zugang zu eurer Mitgliederverwaltung und müsste die UUIDs der Mitglieder auslesen.

Habt ihr vorher irgendwo Links mit einer ID hinterlegt, so müsst ihr diese nun anpassen.

Die bisherige URL: https://www.meine-Seite.de/admidio/adm_program/modules/profile/profile.php?user_id=1 muss auf folgende URL geändert werden: : https://www.meine-Seite.de/admidio/adm_program/modules/profile/profile.php?user_uuid=123e4567-e89b-12d3-a456-426614174000

Eine Auflistung aller möglichen Übergaben zu den Modulen findet ihr in unserem Wiki.

 

Eine weitere Änderung von Admidio 4.1 ist die Einführung eines CSRF-Token. Dies ist eine längere zufällige ID, welche bei jedem Seitenbesuch neu generiert wird. Das Token wird jetzt mit jedem Formular und jedem ausführenden Aufruf mit an den Server geschickt. Dieser vergleicht das gesendete Token mit dem dort hinterlegten Token und führt die Funktion nur aus, sofern diese beiden Token identisch sind. Mit dieser Anpassung kann verhindert werden, dass jemand auf einer fremden Webseite einen Link, wie z.B. den oberen ausführt. Die fremde Seite kennt i.d.R. nicht euer aktuelles Session-Token.

 

Beide Anpassungen machen eure Seite sicherer gegen sogenannte Cross-Site-Scripting (XSS) Attacken bei der der Angreifer angemeldete Benutzer auf seine Seite führt um dort dann seine angepassten Skripte ausführen zu lassen. Es war und ist bisher nicht möglich gewesen direkt auf eurer Installation ein Script auszuführen, welches Daten verändert, ohne dass der Benutzer dies bewusst durchgeführt hat.

 

Admidio 4.1.7 released

Another release with some bugfixes. Within the members management it wasn't possible to create a copy of an existing member. The function had updated the original member.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1.7


The Admidio Team

-----------------------------------------------------------------------------------

Ein weiteres Release mit einigen Bugfixes. In der Mitgliederverwaltung war es nicht möglich, eine Kopie eines bestehenden Mitglieds zu erstellen. Die Funktion hatte das Originalmitglied aktualisiert.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1.7 herunterladen

Das Admidio Team

Admidio 4.1.6 released

In this release, we fixed a bug with the select boxes. Here, in some cases, the first entry was not mapped correctly, which could lead to different errors in Adimidio.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1.6


The Admidio Team

-----------------------------------------------------------------------------------

In dieser Version haben wir einen Fehler bei den Auswahlboxen behoben. Hier wurde in einigen Fällen der erste Eintrag nicht korrekt zugeordnet, was zu verschiedenen Fehlern in Adimidio führen konnte.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1.6 herunterladen

Das Admidio Team

Admidio 4.1.5 released

Due to some regressions to the installation process and the profile editing within version 4.1.4 we quickly release the next bugfix version 4.1.5.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1.5


The Admidio Team

-----------------------------------------------------------------------------------

Aufgrund von Problemen im Installationsprozess und der Profilbearbeitung in der Version 4.1.4 veröffentlichen wir kurzfristig die nächste Bugfix-Version 4.1.5.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1.5 herunterladen

Das Admidio Team

Admidio 4.1.4 released

Within this version we made some significant improvements against XSS attacks. So as always we recommend you to update to this version as soon as possible.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1.4


The Admidio Team

-----------------------------------------------------------------------------------

In dieser Version haben wir einige wichtige Verbesserungen gegen XSS-Angriffe vorgenommen. Wie immer empfehlen wir Ihnen daher, so schnell wie möglich auf diese Version zu aktualisieren.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1.4 herunterladen

Das Admidio Team

Admidio 4.1.2 released

We have resolved several issues with the members module, the lists and our plugins. We recommend to update your installation to this version if you already have Version 4.1 installed.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1.2


The Admidio Team

-----------------------------------------------------------------------------------

Wir haben einige Probleme mit dem Mitgliedermodul, den Listen und unseren Plugins behoben. Wir empfehlen euch, eure Installation auf diese Version zu aktualisieren, auch wenn ihr bereits die Version 4.1 installiert habt.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1.2 herunterladen

Das Admidio Team

Admidio 4.0.13 released

We released a maintenance update for Admidio 4.0 that will address some security relevant issues. So if you don't want to update to version 4.1 you should do an update to 4.0.13.

The following issues have been fixed:
#1138 Url within menu entry could be used to execude javascript
#1144 XSS possible within profile fields that contains urls
#1146 Call of not initialized variable in groups_roles.php
#1148 URL within menu module could not be relative anymore
#1159 Url could contain Javascript that leeds to XSS

We recommend you to read our announcements for version 4.0 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.0.13


The Admidio Team

-----------------------------------------------------------------------------------

Wir veröffentlichen ein Wartungsupdate für Admidio 4.0, das einige sicherheitsrelevante Probleme behebt. Wenn ihr also nicht auf die Version 4.1 aktualisieren möchtet, sollten ihr ein Update auf 4.0.13 durchführen.

Die folgenden Probleme wurden behoben:
#1138 Url within menu entry could be used to execude javascript
#1144 XSS possible within profile fields that contains urls
#1146 Call of not initialized variable in groups_roles.php
#1148 URL within menu module could not be relative anymore
#1159 Url could contain Javascript that leeds to XSS

Wir empfehlen euch die Ankündigungen für Version 4.0 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.0.13 herunterladen

Das Admidio Team

Admidio 4.1.1 released

Due to a bug in the update script, which could occur if write permissions in the adm_themes folder were missing, there is now already the first bugfix version available.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1.1


The Admidio Team

-----------------------------------------------------------------------------------

Aufgrund eines Fehlers im Update-Skript, der bei fehlenden Schreibrechten im adm_themes-Ordner auftreten konnte, gibt es nun bereits die erste Bugfix-Version.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1.1 herunterladen

Das Admidio Team

Admidio 4.1 released

We are proud to announce version 4.1 of Admidio. At this point we would like to thank everyone who helped us during the beta phase and reported problems and improvements. We were able to identify and fix some issues.

A full list of all bugfixes can be found in our issue tracker!

We recommend you to read our announcements for version 4.1 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.1


The Admidio Team

-----------------------------------------------------------------------------------

Wir sind stolz, die Version 4.1 von Admidio ankündigen zu können. An dieser Stelle möchten wir uns bei allen bedanken, die uns in der Beta-Phase geholfen und Probleme und Verbesserungen gemeldet haben. Wir konnten einige Probleme identifzieren und beheben.

Eine vollständige Liste aller Fehlerbehebungen könnt ihr in unserer Änderungshistorie sehen!

Wir empfehlen euch die Ankündigungen für Version 4.1 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.1 herunterladen

Das Admidio Team

Admidio 4.0.12 released

We have fixed a Cross-Site-Scripting (XSS) vulnerability with that it was possible to create a link that will execute Javascript within the Admidio page.

We recommend you to read our announcements for version 4.0 if you have not done before.

If you are new to Admidio and want to install it on your webpage than the following wikipage could help:Install Admidio
The following wiki pages maybe interesting on an Update:
Update Admidio
Update from version 2 or 3 to version 4

Download Admidio 4.0.12


The Admidio Team

-----------------------------------------------------------------------------------

Wir haben eine Cross-Site-Scripting (XSS) Schwachstelle behoben, mit der es möglich war, einen Link zu erstellen, der Javascript innerhalb der Admidio-Seite ausführt.

Wir empfehlen euch die Ankündigungen für Version 4.0 zu lesen, falls ihr dies nicht bereits gemacht habt.

Wenn du neu zu Admidio gestoßen bist und Admidio auf deiner Homepage installieren möchtest, folge bitte der Anleitung in unserem Wiki:Admidio installieren
Die folgenden Links helfen dir bei einem Update deiner vorhandenen Installation:
Admidio aktualisieren
Aktualisierung der Version 2 oder 3 auf Version 4

Admidio 4.0.12 herunterladen

Das Admidio Team