Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 11. Januar 2016 21:01
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Sicherheitslücke im ModulManager
Der Blick über den Tellerrand hat noch nie geschadet, insbesondere, wenn es um Sicherheitslücken geht. Mir fehlt zwar die Zeit, alle bekannteren Systeme im Detail zu verfolgen, doch was mir hier in die Finger gekommen ist, war zu augenscheinlich
http://www.heise.de/newsticker/meldung/ … 68105.html
http://blog.ioactive.com/2016/01/drupal … ocess.html
Konkret waren es die folgenden Passagen, die bei mir alle Alarmglocken schrillen ließen
Die System-Updates des freien Content-Management-Systems (CMS) Drupal werden im Klartext übertragen – ein Problem, das seit 2012 bekannt ist.
Die unverschlüsselten Updates sind mit Abstand das schwerwiegendste der drei Probleme. Ein Angreifer im selben Netz wie ein Drupal-Admin kann diesem manipulierte Update-Dateien unterschieben und auf diesem Wege die Kontrolle über das CMS übernehmen.
Flugs im Code des ModulManagers (V 1.5.8) geschaut - ModuleManager.module.php, Zeile 44
const _dflt_request_url = 'http://www.cmsmadesimple.org/ModuleRepository/request/v2/';
In der Zeile wird die URL des externen Repositorys definiert, über die die gesamte Update-Prozedur läuft. Gleiches findet sich im ModulManager der CMSMS V2
Wie ihr unschwer erkennen könnt, wird da eine Verbindung via http-Protokoll (und nicht dem sicheren https) aufgebaut. Ergo erfolgt sämtliche Kommunikation mit dem Repository unverschlüsselt, weshalb das für Drupal geschilderte Problem für CMSMS genau so relevant ist.
Die Tatsache, dass es bei CMSMS "nur" die Aktualisierung von Modulen betrifft (und nicht die System-Aktualisierung wie bei Drupal), glättet (bei mir) die Sorgenfalten keineswegs. Ob nun das System 'ne Backdoor hat oder nur ein Modul, ist praktisch ohne Bedeutung - Backdoor ist Backdoor.
Eine wirkliche Lösung ist nicht in Sicht, in Sachen SSL bzw TLS ist auf der .org keinerlei Aktivität zu erkennen, trotz dass die "Let's encrypt"-Initiative eine kostenfreie Lösung anbietet.
Soweit ihr (wie bislang empfohlen) weiterhin CMSMS in der 1er Version einsetzt, kann das Modul bedenkenlos entfernt werden und gut ist.
Für CMSMS V2 ist das ganze etwas dramatischer, da dort die gesamte Modulverwaltung in den ModulManager verlagert wurde - einfach den ModulManager löschen ist also nicht. Bereits beim ersten Aufruf des Moduls - siehe action.defaultadmin.php, Zeile 75
$newversions = modulerep_client::get_newmoduleversions();
wird eine unverschlüsselte Verbindung zum Server aufgebaut, ungefragt natürlich. Abschalten? Nicht vorgesehen!
Und das erfolgt zu einem Zeitpunkt, an dem noch gar nicht klar ist, was derjenige, der das Modul aufruft, eigentlich möchte. Für eine Übersicht aller installierten Module braucht es keine Abfrage des Repositorys.
Vereinfacht gesagt wird da sinnlos Traffic erzeugt - möglicherweise relevant, wenn der Traffic eures Hosts ein Limit hat.
Da besteht nur die Möglichkeit, dem Server eures Hosts die Kontaktaufnahme zu externen Servern generell zu verbieten. Voraussetzung ist natürlich, dass euer Hoster diese Einflußnahme auf den Server erlaubt.
Dies geht entweder über einen Eintrag in die .htaccess
php_value allow_url_fopen Off
php_value allow_url_include Off
(probieren, ob euer Host auf "Off" oder "0" (=Null) konfiguriert ist)
oder über einen Eintrag in die config.php
ini_set('allow_url_fopen', '0');
ini_set('allow_url_include', '0');
Wenn es funktioniert, gibt's 'ne modulseitige Fehlermeldung, dass keine Verbindung zum Forge hergestellt werden konnte.
Offline
#2 12. Januar 2016 09:29
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: Sicherheitslücke im ModulManager
Abschalten? Nicht vorgesehen!
Stimmt nicht.
Ist nur versteckt.
Bei CMSms 2 in der config.php die Option $config['developer_mode'] = true; setzen und im ModulManager im Tab "Settings" die URL zum Repository entfernen.
Dann verschwinden auch die beiden Tabs zum Suchen nach Modulen.
Außerdem werden die Ergebnisse der Requests ans Repository für mindesten eine Minute gecached.
(kommt drauf an, was in den globalen Einstellungen im Tab "Weitere Einstellungen" bei "Browserzwischenspeicher-Einstellungen" eingestellt ist)
Bei den Settings kann man dann auch einstellen, ob der ModulManager deinstalliert werden darf.
Allerdings gibt es keine Möglichkeit, das Modul bei Bedarf wieder zu installieren.
Die Modulverwaltung komplett aus dem Core auszulagern war meiner Meinung nach eine blöde Idee. Wozu etwas modularisieren, was zum Modularisieren gedacht ist? Modularisierung ist nunmal eine Core-Funktion des CMS.
Ein Modul zum Installieren von Modulen ... klingt nach dem berühmten Schlüssel in der Truhe.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#3 12. Januar 2016 09:56
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Abschalten? Nicht vorgesehen!
Stimmt nicht.
Ist nur versteckt.
Hand Hoch - wer kennt den Parameter $config['developer_mode'] = true;? Und wer hat ihn schon mal genutzt?
So versteckt, wie das ist, ist es für Otto Normalnutzer quasi nicht vorhanden, und damit ein Problem .
Oder ist das irgendwo sachgerecht publiziert? Sehe ja auch nicht alles ...
im ModulManager im Tab "Settings" die URL zum Repository entfernen.
Gleich die ganze URL entfernen ist aber auch bißl daneben. Denn wo nehme ich die aktuelle URL her, falls diese Funktion doch wieder mal genutzt werden soll? Ein Normalnutzer schaut ja nicht in die Sourcen. Ein einfacher Schalter "Ein/Aus" hätte es auch getan.
Das primäre Problem ist ja aber die Nichtnutzung von SSL/TLS - kann doch nicht so schwer sein, das zu aktivieren. Und die Verantwortung dafür liegt klar beim Dev-Team!
Allerdings gibt es keine Möglichkeit, das Modul bei Bedarf wieder zu installieren.
Die Installation ist nur ein Einzeiler und wurde daher offensichtlich in der ModuleManager.module.php platziert. Es wird da nur die Reposity-URL als Voreinstellung gesetzt.
Interessanter- und irgendwo auch logischerweise (Stichwort Schlüssel in der Truhe) wurde eine Deinstallation gar nicht vorgesehen.
Beitrag geändert von Andynium (12. Januar 2016 10:22)
Offline
#4 12. Januar 2016 10:47
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: Sicherheitslücke im ModulManager
Hand Hoch - wer kennt den Parameter $config['developer_mode'] = true;?
Bin auch nur im Code drüber gestolpert.
Keine Ahnung ob das irgendwo dokumentiert ist.
Gleich die ganze URL entfernen ist aber auch bißl daneben. Denn wo nehme ich die aktuelle URL her, falls diese Funktion doch wieder mal genutzt werden soll?
Dazu gibt es gleich daneben den Button "Reset"
Die Installation ist nur ein Einzeiler und wurde daher offensichtlich in der ModuleManager.module.php platziert. Es wird da nur die Reposity-URL als Voreinstellung gesetzt.
Und wer führt die Zeile aus, wenn das Modul zum Installieren von Modulen - was eben jene Zeile ausführen soll - nicht installiert ist?
Du musst dann an die Datenbank ran und das Ding sozusagen "per Hand" installieren.
Interessanter- und irgendwo auch logischerweise (Stichwort Schlüssel in der Truhe) wurde eine Deinstallation gar nicht vorgesehen.
Und das leitest Du woraus ab?
Weil keine eigene Funktion zum Deinstallieren existiert?
Ist doch egal.
Die Moduleinstellungen werden beim Deinstallieren automatisch alle entfernt, solange keine eigene Funktion namens AllowUninstallCleanup() definiert wurde, die false zurückgibt
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#5 12. Januar 2016 10:53
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Pfff, kommt mir vor wie ein Wespennest, in das ich hier hineingestochen hab ... ziemlicher Murks.
Offline
#6 12. Januar 2016 11:02
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.436
Re: Sicherheitslücke im ModulManager
Also halten wir einfach mal fest:
In CMSms 1 kann man den ModulManager deinstallieren. Thema erledigt.
Damit entfällt die Funktion, Module (ohne HTTPS) aus dem Modulrepository von CMSms zu beziehen und das System ist sicherer.
In CMSms 2 muss man den Developer Mode einschalten und beim ModulManager die Funktion zum Beziehen von Modulen aus dem CMSms Repository "deaktivieren", indem man in den Einstellungen die URL zum Repository löscht. Dann hat man am Ende das gleiche Resultat wie bei CMSms 1.
(Danach kann man den Developer Mode wieder deaktivieren)
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#7 12. Januar 2016 11:17
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Danke für die Zusammenfassung .
Offline
#8 09. August 2016 08:58
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Die Modulverwaltung komplett aus dem Core auszulagern war meiner Meinung nach eine blöde Idee.
Das hat man offensichtlich mittlerweile (fast 1 Jahr später) auch an anderer Stelle erkannt .
Nur - anstatt den Fehler einzugestehen und die Modulinstallation wieder in den Core zu integrieren, folgt nun dieses
Rev 10731 -- No longer allow ModuleManager to be disabled/uninstalled.
(ist aus dem Repository der kommenden 2.2)
Ja natürlich, es tut seinen Zweck.
Aber wenn ihr mich fragt ... Dünnbrettbohrer, denn für die Installation von Modulen braucht es die Modul-API nicht. So, wie der CMSMailer in den Core integriert wurde, gehörte auch der ModulManager dahin - IMHO (mein Lehrmeister hätte mir für so eine Bastellösung kräftig was gehustet, wenn ich so etwas abgeliefert hätte).
Offline
#9 26. Oktober 2016 14:00
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Die Modulverwaltung komplett aus dem Core auszulagern war meiner Meinung nach eine blöde Idee. Wozu etwas modularisieren, was zum Modularisieren gedacht ist? Modularisierung ist nunmal eine Core-Funktion des CMS.
Ein Modul zum Installieren von Modulen ... klingt nach dem berühmten Schlüssel in der Truhe.
Etwas OT, aber indirekt wurde bei der letzten GeekMoot der Grund für die allgemeine Modularisierung genannt
Up now: #cmsms as an application framework by @calguy1000 #app #video #gm2016
Warum muss man ein (bislang) einfach zu bedienendes CMS zu einem Framework umbauen? Zumal es selbige bereits wie Sand am Meer gibt ...
Offline
#10 29. Oktober 2016 09:23
- owr_web
- Server-Pate
- Registriert: 16. Dezember 2010
- Beiträge: 543
Re: Sicherheitslücke im ModulManager
Ach du sch....
was mich noch viel mehr stört, ist der Text nach framework und vor #app
Also endlich ganz offiziell, dass er sagt, es ist jetzt sein Eigentum - also nix mehr Team, sondern jetzt sind somit offiziell alle nur mehr Handlanger und Wasserträger.
Offline
#11 29. Oktober 2016 16:42
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Also endlich ganz offiziell, dass er sagt, es ist jetzt sein Eigentum
Hatte mich bislang nur auf den technischen Teil ("Framework") konzentriert.
Aus dieser Perspektive hatte ich es noch gar nicht betrachtet - Cafe Größenwahn. Und dann hält er noch Vorträge über lizenzrechtliche Themen... schräger geht es nicht. Jetzt fehlt nur noch, dass er dafür Geld verlangt.
Offline
#12 03. November 2016 19:40
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Wie gerade zu lesen ist, bringt der ModulManager noch ein anderes Problem mit.
Ist das Repository down, friert das Modul bis zum Timeout ein
Offline
#13 04. November 2016 06:38
- nockenfell
- Moderator
- Ort: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.930
- Webseite
Re: Sicherheitslücke im ModulManager
Kann ich bestätigen. Hatte ich diese Woche mit einer 2.1.5er.
Das Problem ist, dass danach die komplette Seite nicht mehr läuft, bis der Browser neugestartet wird.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#14 05. November 2016 15:01
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.231
- Webseite
Re: Sicherheitslücke im ModulManager
Oh, ich bin so froh, 2.1.5 nur in einem Test und ablaufend genutzt zu haben.
Wenn sich nichts ändert, schafft jemandem die Zerstörung des Projektes, weil nicht mehr zugehört wird, wie es Nutzer erfahren, was von Entwickler als "Verbesserungen" präsentiert wird.
Da schwimmt man doch weg, oder . . .
Kubuntu 22.04 - Win 11 pro / Kubuntu 20.04 - win10 pro
Offline
#15 07. November 2016 06:59
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Oh, ich bin so froh, 2.1.5 nur in einem Test und ablaufend genutzt zu haben.
Meinen Weg kennst du ja . Mal sehen, vllt bekomm ich es noch rechtzeitig als Weihnachtsgeschenk fertig...
Offline
#16 28. Dezember 2016 08:17
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: Sicherheitslücke im ModulManager
Wie ihr unschwer erkennen könnt, wird da eine Verbindung via http-Protokoll (und nicht dem sicheren https) aufgebaut. Ergo erfolgt sämtliche Kommunikation mit dem Repository unverschlüsselt, weshalb das für Drupal geschilderte Problem für CMSMS genau so relevant ist.
Die Tatsache, dass es bei CMSMS "nur" die Aktualisierung von Modulen betrifft (und nicht die System-Aktualisierung wie bei Drupal), glättet (bei mir) die Sorgenfalten keineswegs. Ob nun das System 'ne Backdoor hat oder nur ein Modul, ist praktisch ohne Bedeutung - Backdoor ist Backdoor.
Fast 1 Jahr hat man benötigt, um diese (eigentlich simple) Sicherheitslücke zu schließen
now use https.
Offline
Seiten: 1