Pokud jste ode mě obdrželi e-mail, který vás odkazuje na tuto stránku, je to proto, že se zdá, že váš web běží na verzi pluginu Simple Membership (členského pluginu pro WordPress od smp7 / wp.insider, který se nachází ve vašich souborech na cestě /wp-content/plugins/simple-membership/), která spadá do ovlivněného rozsahu známého bezpečnostního problému. Tato stránka vysvětluje, o jaký problém jde, jak zjistit, kterou verzi máte, jak provést aktualizaci a jaký následný krok je poté nejdůležitější.

Jedná se o chybu CVE-2026-15930, převzetí administrátorského účtu bez ověření totožnosti prostřednictvím vlastního registračního formuláře pluginu pro členství. Postihuje každé vydání starší než 4.7.8 a je opravena ve verzi 4.7.8. Pokud používáte cokoliv staršího než 4.7.8, aktualizujte Simple Membership na verzi 4.7.8 nebo novější (verze 4.7.9 vyšla později a opravu zachovává, takže je rovněž v pořádku).

Jedna věc by měla být jasná, protože se liší od některých dalších upozornění, která jsem odeslal: neexistuje žádná starší verze, která by byla bezpečná. Nejde o chybu, která byla v určitém okamžiku zavedena a poté opravena. Byla přítomna v pluginu od jeho úplně prvního zveřejněného vydání až po verzi 4.7.7, takže argument „moje instalace je příliš stará na to, aby byla postižena” zde neplatí. Jedinými verzemi, které nejsou postiženy, jsou 4.7.8 a novější.

Toto upozornění také nezávisí na tom, jak je váš web nakonfigurován. Neexistuje žádné nastavení, které by bylo potřeba zapnout: jakmile je plugin aktivován, zveřejní stránku membership-registration obsahující svůj registrační formulář, takže i běžná instalace vystavuje formulář návštěvníkům, kteří nejsou přihlášeni. Pokud je vaše verze starší než 4.7.8, vyplatí se aktualizaci provést co nejdříve.

Jedná se o chybu v pluginu, nikoliv v jádru WordPressu. Plně aktualizovaný WordPress vás nechrání, pokud je samotný plugin Simple Membership na ovlivněné verzi.

Je tato zpráva legitimní?

Ano. Jedná se o zprávu o zodpovědném odhalení chyby od nezávislého bezpečnostního výzkumníka, která vychází z dobré víry. Nežádám vás o peníze, hesla ani přístup k vašemu webu a nepokoušel jsem se do něj vlomit, nic do něj odeslat ani cokoliv zneužít.

Jen jsem se podíval na veřejně dostupné soubory, které váš web poskytuje každému návštěvníkovi (stejným způsobem, jakým je veřejná vaše domovská stránka), a zaznamenal jsem verzi, kterou plugin zveřejňuje. Úmyslně jsem neodeslal váš registrační formulář ani jsem mu nic neposlal, a žádná část této kontroly se nedotýká vašich dat, administrátorské oblasti ani žádné soukromé části vašeho webu (více pod Co jsem udělal a co ne níže).

Pokud byste chtěli ověřit, kdo jsem, podívejte se na kontaktní údaje na konci této stránky a na stránku O mně.

Proč na tom záleží

Simple Membership přidává na web WordPress úrovně členství a chráněný obsah a poskytuje návštěvníkům veřejný registrační formulář, aby se mohli sami zaregistrovat k členství. Právě tento formulář je zde vstupním bodem.

V postižených verzích plugin neověřoval, zda WordPress skutečně vytvořil nový účet, než pokračoval v uložení odeslaných údajů. Když nebylo možné požadovanou registraci vytvořit jako skutečně nového uživatele, protože zvolené jméno kolidovalo s účtem, který již existoval, plugin přesto pokračoval a zapsal odeslané údaje na tento existující účet. Praktickým důsledkem je, že e-mailová adresa a heslo zadané do veřejného registračního formuláře se stanou přihlašovacími údaji účtu, který již na webu existoval. V praxi bývá přepsaným účtem původní administrátor webu, což předává ovládnutí webu tomu, kdo formulář vyplnil.

Stojí za to vyslovit jasně dvě věci. Za prvé, není potřeba žádné přihlášení a nic nemusí být špatně nastaveno: stačí anonymní návštěvník a registrační stránka, kterou plugin sám o sobě zveřejňuje. Za druhé, výsledkem je administrátorské ovládnutí webu, nikoliv omezený únik dat, a proto je zde doporučením provést aktualizaci co nejdříve, místo aby byla zařazena do příští běžné údržby.

Popisuji to na úrovni, kterou potřebuje majitel webu k tomu, aby mohl jednat, a ne dále. Nezveřejňuji detaily, které by někomu umožnily chybu reprodukovat, a žádám vás, abyste se ji nepokoušeli vyzkoušet na svém webu ani na webu kohokoliv jiného. Přečtení čísla vaší verze, jak je popsáno níže, vám řekne vše, co potřebujete k rozhodnutí, co dělat.

Pokud můj e-mail odkazoval na tento problém, znamená to, že verze, kterou váš web uvádí, je starší než 4.7.8. Neověřoval jsem, zda je váš konkrétní web zranitelný; vše, co jsem pozoroval, je verze.

Týká se to mě?

Vše se odvíjí od jedné otázky: kterou verzi pluginu Simple Membership používáte? Nemusíte mi věřit na slovo, existují tři způsoby kontroly. Na rozdíl od některých pluginů, o kterých píšu, jsou zde všechny tři důvěryhodné, protože všechny hlásí stejné podkladové číslo verze.

Z administrace WordPressu (autoritativní):

  1. Přihlaste se do nástěnky WordPressu (obvykle na adrese yourdomain.com/wp-admin).
  2. Přejděte na Pluginy a poté Nainstalované pluginy.
  3. Najděte Simple Membership, položku, jejíž složka je simple-membership, a poznamenejte si verzi uvedenou pod jejím názvem.

Z veřejného manifestu (není potřeba se přihlašovat): otevřete v prohlížeči yourdomain.com/wp-content/plugins/simple-membership/readme.txt. Řádek Stable tag: blízko začátku je verze, kterou vaše instalace uvádí, a jedná se o stejný veřejný soubor, který jsem četl já.

Ze zdrojového kódu vaší stránky (není potřeba se přihlašovat): zobrazte si zdrojový kód libovolné stránky na vašem webu a hledejte styl pluginu, css/swpm.common.css, na cestě /wp-content/plugins/simple-membership/. Číslo ?ver= k němu připojené je verze pluginu, odvozená z vlastní konstanty verze pluginu, takže u tohoto pluginu jde o spolehlivý údaj, nikoliv o klam.

Poté použijte toto pravidlo a mějte na paměti, že verze se porovnávají číselně, nikoliv abecedně, takže 4.7.10 by bylo novější než 4.7.8, i když jako text vypadá menší:

  • Cokoliv starší než 4.7.8: postiženo. Aktualizujte nyní. Neexistuje žádná hranice, pod kterou by se starší vydání znovu stalo bezpečným.
  • 4.7.8 nebo novější: již opraveno. Sem patří i 4.7.9, která opravu zachovává.

Poznámka k doplňkům Simple Membership. Placené doplňky pluginu se instalují jako samostatné pluginy, ve vlastních složkách, s vlastními řadami verzí. Číslo verze doplňku nevypovídá o tomto problému vůbec nic. Důležitá je verze samotného základního pluginu Simple Membership, složka simple-membership, zjištěná kteroukoliv z výše uvedených tří kontrol.

Jak aktualizovat

Nejbezpečnější cestou je aktualizace přímo prostřednictvím WordPressu, a to nejprve po provedení zálohy:

  1. Zálohujte svůj web (soubory i databázi) před provedením jakýchkoli změn. Většina poskytovatelů hostingu nabízí zálohování jedním kliknutím, nebo můžete použít plugin pro zálohování WordPressu.
  2. V administraci WordPressu přejděte na Nástěnka a poté na Aktualizace, nebo na Pluginy a poté na Nainstalované pluginy. Pokud je zde uvedena aktualizace Simple Membership, nainstalujte ji odtud.
  3. Pokud preferujete příkazovou řádku, WP-CLI provede totéž: wp plugin update simple-membership.
  4. Pokud se žádná aktualizace neobjeví, můžete si stáhnout nejnovější verzi přímo ze stránky pluginu v adresáři WordPress.org, Simple Membership, a aktualizovat přes Pluginy poté Instalace pluginů a Nahrát plugin.
  5. Po aktualizaci potvrďte nové číslo verze (4.7.8 nebo novější) pomocí výše uvedených kroků a zkontrolujte, že váš registrační formulář, úrovně členství a chráněný obsah stále fungují normálně.

Pokud používáte placené doplňky Simple Membership, aktualizujte je společně se základním pluginem, protože jejich vydání jsou obvykle spárována.

Když už tam jste, je dobré ověřit, že jádro WordPressu a vaše ostatní pluginy jsou aktuální, protože stejný princip se vztahuje na všechny z nich.

Po aktualizaci

Aktualizace na verzi 4.7.8 nebo novější problém uzavírá. Existuje zde jeden následný krok, který je důležitější než obvyklá údržba, a stojí za přečtení i v případě, že jste si jisti, že se nic nestalo.

Obvyklé doporučení by tento případ přehlédlo. Když lidé kontrolují web po chybě umožňující ovládnutí účtu, hledají neznámé nové administrátorské účty. Taková kontrola by zde nic nenašla, protože žádný nový účet nevzniká. Existující účet je přepsán, takže počet administrátorů se nemění a v seznamu se neobjeví žádné nerozpoznané jméno. Mění se přihlašovací údaje účtu, který již znáte. Proto:

  • Zkontrolujte e-mailovou adresu u každého administrátorského účtu. V administraci WordPressu přejděte na Uživatelé, filtrujte na Administrátor a ověřte, že každý z nich stále nese e-mailovou adresu, kterou by měl mít. Administrátorský účet, jehož e-mailová adresa již nepatří správné osobě, je příznakem tohoto problému.
  • Změňte hesla na svých administrátorských účtech, a na jakýchkoli dalších účtech, na kterých záleží. Udělejte to i v případě, že všechny e-mailové adresy vypadají správně.
  • Regenerace tajných klíčů a solí WordPressu v souboru wp-config.php je rozumným doplňkovým krokem (nové hodnoty získáte jedním kliknutím na oficiálním generátoru tajných klíčů; jejich výměna jednorázově odhlásí všechny uživatele).

Uvědomte si prosím, že aktualizace uzavírá díru, ale nevrací zpět přístup, který již byl získán. Pokud někdo převzal účet předtím, než jste aktualizovali, i poté má stále tyto přihlašovací údaje, a přesně proto je výše uvedená změna hesla důležitá. Pokud najdete něco, co vás znepokojuje, naložte s tím jako s jakýmkoli jiným podezřelým neoprávněným přístupem.

Nemám žádný přehled o tom, zda se na vašem webu skutečně něco stalo, a ani jsem to nekontroloval. Toto je preventivní upozornění, nikoliv hlášení o incidentu.

Co jsem udělal a co ne

Pro úplnou transparentnost ohledně kontroly, která stála za mým e-mailem: četl jsem pouze dva veřejné soubory, které váš web již poskytuje každému návštěvníkovi, konkrétně veřejný soubor readme.txt pluginu a vaši domovskou stránku. Nepřistupoval jsem k oblasti administrace WordPressu, vaší databázi ani k žádné soukromé části webu.

Konkrétně jsem nikdy neodeslal váš registrační formulář ani mu nic neposlal. Nic nebylo odesláno, testováno ani zneužito. To má zde větší význam než na většině těchto stránek, protože registrační formulář je přesně to, čeho se tento problém týká, takže „nedotkl jsem se toho” je celý rozdíl mezi zveřejněním a průnikem.

Úmyslně také nezveřejňuji detaily, které by někomu pomohly tento problém zneužít. Popis výše končí na úrovni, kterou potřebuje vlastník webu, a neposkytuji žádné odkazy na kód pro demonstraci zranitelnosti.

Jedná se o pozorování založené na verzi: váš web hlásí verzi starší než 4.7.8. Web v tomto rozsahu může být již chráněn jinými prostředky, například webovou aplikační bránou nebo zpětně portovanou opravou. Toto upozornění není tvrzením, že váš web byl v době kontroly zranitelný.

Nemám webmastera / nevím, kudy dál

Pokud nejste osobou, která web udržuje, prosím, přesměrujte tuto stránku na toho, kdo to dělá (vašeho webového vývojáře, agenturu nebo poskytovatele hostingu). Rychle poznají výše uvedené kroky.

Pokud web udržujete sami a zaseknete se, rád vám zdarma pomůžu najít správný směr. Kontaktujte mě pomocí kontaktních údajů níže.

Kontakt

Evan Harris, bezpečnostní výzkumník

O takových problémech vás kontaktuji čistě proto, abych pomohl provozovatelům zabezpečit jejich weby. Pokud byste raději nechtěli, abych vás znovu kontaktoval, stačí mi dát vědět a budu to respektovat.

Odkazy

Oficiální hlášení a sledování

Dodavatel / plugin