Trumpai: MediaWiki saugumas po PHP2Shell prasideda nuo serverio PHP, nes spraga slypi ten, o ne wiki. Vidiniai wiki dažnai metų metus neliečiami ir veikia su senomis PHP versijomis. Patikrinkite būseną puslapyje Special:Version, pataisykite ir paleiskite iš naujo, o po to patikrinkite LocalSettings.php, images ir sąsajos administratorius.
Kodėl vidiniai wiki yra vertingas taikinys
MediaWiki daugelyje įmonių, institucijų ir mokslo įstaigų tarnauja kaip vidinis vadovas. Ten rašomi procesai, kontaktiniai asmenys, tinklo schemos, serverių instrukcijos ir kartais net prieigos duomenys, kurių ten būti neturėtų. Užpuolikui toks wiki yra įmonės žemėlapis.
PHP spragos CVE-2026-109618 ir CVE-2026-109619, PHP komandos teigimu, leidžia vykdyti kenkėjišką kodą nuotoliniu būdu be prisijungimo. Wiki, kuris buvo sumanytas „tik vidiniam naudojimui“, bet pasiekiamas per internetą, taip tiesiogiai pažeidžiamas. O kadangi wiki retai būna IT dėmesio centre, jie dažnai veikia senuose serveriuose, neretai vis dar su PHP kaip Apache moduliu, PHP komandos teigimu, didžiausios rizikos veikimo būdu.
MediaWiki saugumas: PHP versijos ir pataisų būsenos patikra
Puslapis Special:Version rodo MediaWiki, PHP ir duomenų bazės versiją bei visus įdiegtus plėtinius ir išvaizdas (skins). Ištaisytos oficialios (upstream) versijos yra 8.5.12, 8.4.27, 8.3.36 ir 8.2.35. Daug wiki serverių veikia su Linux distribucijomis su atgaliniais perkėlimais (backport); rodomas numeris tada lieka toks pats, nors pataisa įdiegta.
Jei wiki veikia su PHP 8.1 ar senesne versija, PHP projektas oficialių atnaujinimų nebeteikia, yra tik minimalūs šaltinio kodo atgaliniai perkėlimai 7.4, 8.0 ir 8.1 versijoms. Kas tada galioja, apibendrina PHP 8.1 ir senesnės versijos. Kurias PHP versijas palaiko jūsų MediaWiki versija, pagal sistemos reikalavimus patikrinkite mediawiki.org. PHP keitimui gali reikėti MediaWiki atnaujinimo.
Priežiūros scenarijai ir užduočių vykdytojai (job runner) veikia per komandinės eilutės PHP. Ši versija taip pat turi būti pataisyta. Jei užduočių eilė veikia kaip nuolatinė paslauga, ją po atnaujinimo reikia paleisti iš naujo lygiai kaip žiniatinklio serverį ar PHP-FPM. Su mod_php tai reiškia paties Apache paleidimą iš naujo, nes PHP ten yra žiniatinklio serverio procese.
Taip pat išsiaiškinkite, kam wiki priklauso. Vidinius wiki dažnai pastatydavo kuris nors skyrius ir jie veikia už įprastos serverių priežiūros ribų. Be aiškios atsakomybės PHP atnaujinimas ten užsitęsia ilgiausiai.
Katalogai ir failai MediaWiki
| Vieta | Turinys | Patikros punktas |
|---|---|---|
LocalSettings.php |
Duomenų bazės prieiga, $wgSecretKey, $wgUpgradeKey, teisės, įkėlimo nustatymai |
įterptas kodas, raktus atnaujinti kilus įtarimui |
images/ |
įkelti failai ir peržiūros paveikslėliai | jokių PHP failų, jokio PHP vykdymo |
extensions/, skins/ |
Plėtiniai ir išvaizdos | nežinomi ar pakeisti failai |
cache/ |
Tarpinė saugykla | po išvalymo ištuštinti |
maintenance/ |
Komandinės eilutės priežiūros scenarijai | nenaudoti per žiniatinklį |
Įkėlimų katalogas žiniatinklio serverio lygiu neturėtų vykdyti scenarijų. Su Apache tai nepriklauso nuo PHP veikimo būdo ir daroma taip:
<Directory "/var/www/wiki/images">
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>
</Directory>
Nepavojinga pirmoji patikra:
find images -type f -name "*.php*"
ls -l LocalSettings.php
Patikrinkite puslapių MediaWiki:Common.js ir MediaWiki:Common.css versijų istoriją. Pakeitimai ten veikia kiekvieną wiki lankytoją ir yra tipinė vieta įterptam kodui.
Teisės, grupės ir plėtiniai
MediaWiki saugumą lemia naudotojų grupės. Puslapiuose Special:ListUsers ir Special:UserRights patikrinkite, kas priklauso grupėms Administratoriai, Biurokratai ir Sąsajos administratoriai. Sąsajos administratoriai gali keisti viso wiki JavaScript; ši grupė turėtų būti labai maža.
Vidiniam wiki skaitymas be prisijungimo turėtų būti išjungtas, o naujų paskyrų registracija užblokuota. Įkėlimus leiskite tik tiems failų tipams, kurių tikrai reikia. Plėtiniai atneša savo PHP kodą; neprižiūrimi plėtiniai papildomai stabdo kiekvieną atnaujinimą. Dėl failų teisių serveryje orientyrą pateikia vadovas Failų teisės žiniatinklio serveryje.
Ką gali MediaWiki atnaujinimas ir ko ne
MediaWiki atnaujinimas pakeičia branduolį (Core) ir uždaro jame žinomas klaidas. Jis netaiso PHP, nepaleidžia iš naujo PHP procesų, nieko nekeičia LocalSettings.php ir nepašalina nei failų images/ kataloge, nei MediaWiki:Common.js pakeitimų, nei papildomų grupių narių. Jis taip pat neįrodo, kad iki pataisos niekas neskaitė.
Greitą apžvalgą suteikia ir žurnalai puslapyje Special:Log. Nauji naudotojų paskyros, grupių teisių pakeitimai ir sąsajos puslapių redagavimai nuo 2026 m. spalio 17 d. ten pažymėti su laiku.
Kaip PHP SOS padeda konkrečiai?
- Tikriname jūsų wiki serverio PHP versiją, veikimo būdą ir atgalinių perkėlimų (backport) būseną ir leidžiame patvirtinti paleidimą iš naujo.
- Išsaugome žurnalus nuo 2026 m. spalio 20 d., duomenų bazę ir failus.
- Tikriname
LocalSettings.php, įkėlimus, plėtinius, grupių teises ir sąsajos puslapių versijų istoriją. - Pagal PHP2Shell skubią pagalbą kartu su jumis vertiname, ar wiki turi likti viešai pasiekiamas.
Dažni klausimai
Ar MediaWiki paveiktas PHP2Shell?
Pati MediaWiki naujos spragos neturi, bet veikia su PHP. Jei serverio PHP nepataisytas, užpuolikas, PHP komandos teigimu, gali vykdyti kodą be prisijungimo. MediaWiki atnaujinimas spragos neuždaro.
Kur galiu pamatyti savo wiki PHP versiją?
Puslapyje Special:Version MediaWiki išvardija įdiegtą programinę įrangą, taip pat PHP versiją. Ar įdiegtas atgalinis perkėlimas (backport), iš to nematyti; tai patvirtina serverio operatorius.
Kodėl MediaWiki:Common.js yra rizika?
Šio puslapio turinys kaip JavaScript pateikiamas visiems wiki lankytojams. Kas gali jį keisti, gali vykdyti kodą kiekvieno naudotojo naršyklėje. Todėl sąsajos administratorių grupė turėtų būti labai maža.
Ar pakanka wiki padaryti pasiekiamą tik viduje?
Wiki tik įmonės tinkle ar per VPN gerokai sumažina riziką, nes užpuolikai iš interneto jo tiesiogiai nepasiekia. Pataisyti vis tiek reikia, nes ataka gali ateiti ir iš vidinio tinklo.