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 Profile Builder (plugin pro WordPress uvedený na WordPress.org jako „Profile Builder” / „User Profile Builder”, od Cozmoslabs, který se nachází ve vašich souborech na cestě /wp-content/plugins/profile-builder/), 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, zda se vůbec týká vašeho webu, jak správně zjistit vaši verzi bez zmatení a jak provést aktualizaci.

Upozornění: toto není ProfilePress. Existuje jiný plugin pro WordPress s podobným názvem (ProfilePress, složka wp-user-avatar), o kterém píšu samostatně. Pokud je složka vašeho pluginu wp-user-avatar, a ne profile-builder, není tato stránka ta, kterou hledáte; místo ní se podívejte na upozornění k ProfilePress. Vše níže se týká pouze pluginu Profile Builder od Cozmoslabs.

Než cokoli dalšího, nejvýznamnější skutečností tohoto upozornění je: verze v ovlivněném rozsahu sama o sobě neznamená, že je váš web vystaven riziku. Níže popsaný problém nastává pouze na webech, které mají zapnuté jedno konkrétní nastavení, a já zvenčí nevidím vaše nastavení:

  • Volba pluginu Profile Builder „Automatically Log In” (Automaticky přihlásit), která nového uživatele ihned po dokončení registrace přihlásí, musí být zapnutá.
  • Tato volba je ve výchozím nastavení vypnutá. Web, který ji nikdy nezapnul, není tímto problémem ohrožen, i když používá ovlivněnou verzi.

Z veřejného souboru mohu zjistit verzi vašeho pluginu, ale nemohu vidět vaše nastavení, takže toto upozornění je preventivním varováním, nikoliv potvrzeným zjištěním o stavu vašeho webu.

Jedná se o chybu CVE-2026-15368, což je neautentizované převzetí účtu v kroku automatického přihlášení pluginu. Postižené jsou verze 2.1.4 až 3.16.3 a oprava je k dispozici ve verzi 3.16.4. Pokud používáte ovlivněnou verzi, aktualizujte Profile Builder na verzi 3.16.4 nebo novější. Chyba má CVSS skóre 8.1. Nejsem si vědom žádného veřejně dostupného kódu pro její zneužití.

Slovo k naléhavosti, protože se jedná o podmíněné upozornění. Pokud po registraci nepoužíváte automatické přihlášení, je aktualizace běžnou údržbou pluginu. Pokud ho používáte, považujte aktualizaci za prioritu: v takovém nastavení by mohla chyba umožnit návštěvníkovi bez jakéhokoli účtu získat přihlášenou relaci patřící existujícímu uživateli, jehož e-mailovou adresu zná, včetně administrátora, což by znamenalo předání kontroly nad webem.

Jedná se o chybu v pluginu, nikoliv v jádru WordPressu. Plně aktualizovaný WordPress vás nechrání, pokud je samotný plugin Profile Builder 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, zaregistrovat se na něm 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ář, nevytvořil jsem účet a nešel jsem ani blízko ke kroku automatického přihlášení. Žá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ží

Profile Builder přidává na web WordPress veřejně přístupné formuláře pro registraci, přihlášení a úpravu profilu, díky nimž se návštěvníci mohou zaregistrovat a spravovat vlastní účty, aniž by kdy viděli administrátorskou oblast. Jednou z jeho výhod je možnost nového uživatele automaticky přihlásit ve chvíli, kdy dokončí registraci, čímž mu ušetří opětovné zadávání hesla do samostatného přihlašovacího formuláře.

V ovlivněných verzích tato výhoda rozhodovala o tom, který účet přihlásit, špatným způsobem. Místo použití účtu, který byl právě vytvořen, plugin vyhledal účet podle e-mailové adresy zadané do registračního formuláře a přihlásil ten. Pokud odeslaná adresa patřila někomu, kdo už na webu měl účet, osoba vyplňující formulář dostala přihlášenou relaci pro tento existující účet.

Z toho vyplývají dvě věci, které směřují opačnými směry. První je, že se to děje pouze tam, kde je automatické přihlášení zapnuté. Když je nastavení vypnuté, plugin krok automatického přihlášení vůbec nezahájí, takže web v tomto stavu není touto chybou dosažitelný. Druhá je, že tam, kde nastavení zapnuté je, nic neomezuje důsledek na běžné členy: předaný účet je ten, který odpovídá odeslané adrese, a administrátorova adresa obvykle není tajná. Není potřeba žádný účet, žádné heslo ani spolupráce oběti.

Popisuji to na úrovni, kterou potřebuje majitel webu k rozhodnutí, a ne dále. Nezveřejňuji detaily, které by někdo mohl použít k reprodukci chyby, a žádám vás, abyste se ji nepokoušeli reprodukovat na svém webu ani na webu kohokoli jiného. Zjištění vašeho nastavení a čísla 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í, spadá do ovlivněného rozsahu. Neověřoval jsem, zda je váš konkrétní web zranitelný, a nemohu vidět, jak máte nakonfigurováno vaše nastavení. Vše, co jsem pozoroval, je verze.

Týká se to mě?

Rozhodují dvě otázky, a to v tomto pořadí.

Za prvé: je zapnuté „Automatically Log In”?

Toto je rozhodující otázka a můžete na ni odpovědět pouze vy. Kontrola vlastních nastavení je zcela bezpečná a je celým smyslem této stránky.

  1. Přihlaste se do nástěnky WordPressu (obvykle na adrese yourdomain.com/wp-admin).
  2. V postranním panelu otevřete nabídku Profile Builder a poté přejděte na Settings.
  3. Vyhledejte přepínač s názvem Automatically Log In, popsaný jako „Enable to automatically log in new users after successful registration” (Povolit automatické přihlášení nových uživatelů po úspěšné registraci).
  • Pokud je tento přepínač vypnutý, tento problém se vašeho webu netýká, i když používáte ovlivněnou verzi. Aktualizace je nicméně stále vhodná jako běžná údržba.
  • Pokud je zapnutý, problém se vás týká a měli byste provést aktualizaci co nejdříve.

Jedno další místo, kam se podívat, pokud máte více než jednu registrační stránku: jednotlivá stránka obsahující registrační formulář Profile Builderu může mít vlastní kopii tohoto nastavení, která přepíše globální hodnotu. Pokud spravujete více registračních stránek, vyplatí se zkontrolovat každou z nich, místo spoléhání se pouze na globální přepínač.

Nepokoušejte se reprodukovat problém na svém webu ani na webu kohokoli jiného; k zodpovězení výše uvedené otázky to nepotřebujete.

Za druhé: jakou verzi používáte?

Nemusíte mi věřit na slovo. Pro tento plugin existuje jeden konkrétní způsob kontroly, který vás může zmást, takže je dobré tuto část přečíst pozorně.

Z administrace WordPressu (autoritativní):

  1. V administraci WordPressu přejděte na Pluginy a poté Nainstalované pluginy.
  2. Najděte Profile Builder, položku, jejíž složka je profile-builder, a poznamenejte si verzi uvedenou pod jejím názvem.

Z veřejného manifestu (bez nutnosti přihlášení): otevřete v prohlížeči adresu yourdomain.com/wp-content/plugins/profile-builder/readme.txt. Řádek Stable tag: blízko horní části je verze, kterou váš web hlásí, a jedná se o jeden ze dvou veřejných zdrojů, které jsem četl.

Ze zdrojového kódu vaší stránky (nepotřebujete se přihlásit): zobrazte zdrojový kód stránky na vašem webu, která zobrazuje formulář Profile Builderu, a hledejte styl pluginu pro přední stranu webu (front-end) přesně na této cestě:

/wp-content/plugins/profile-builder/assets/css/style-front-end.css?ver=...

Číslo ?ver= připojené k tomuto jedinému souboru je vlastní verze pluginu. U tohoto pluginu přesně odpovídá vydání, proto ji považuji za spolehlivý druhý zdroj čtení.

Past, které je třeba se zde vyhnout, a je snadné do ní spadnout. Profile Builder dodává další komponenty uvnitř vlastní složky pluginu, které mají své vlastní, nesouvisející čísla verzí. Přibalený doplněk user-profile-picture ve složce add-ons-free/user-profile-picture/ zůstává na verzi 2.6.0 napříč několika vydáními Profile Builderu, aniž by se pohnul, a existuje také přibalená integrace s Divi ve složce assets/misc/divi/ s číslem 1.0.0. Obě tato čísla vypadají vedle 3.16.4 znepokojivě stará, ale ani jedno z nich neříká vůbec nic o tomto problému. Pokud čtete verzi ze zdrojového kódu své stránky, ujistěte se, že cesta k souboru, ze kterého ji čtete, je assets/css/style-front-end.css a nic jiného.

Poté použijte toto pravidlo, a mějte na paměti, že verze se porovnávají číselně, nikoliv abecedně, takže 3.10.0 je novější než 3.9.9, i když jako text vypadá menší. Tento plugin skutečně prochází každou řadu vydání od .0 až po .9, než se posune dál, takže na tomto rozdílu zde záleží:

  • 2.1.4 až 3.16.3: potenciálně zasaženo, s podmínkou výše uvedené otázky o nastavení. Aktualizujte nyní.
  • 3.16.4 nebo novější: co se tohoto problému týká, již opraveno. Aktuální vydání v době psaní tohoto textu je 3.16.6, a nejlepším krokem je nainstalovat nejnovější dostupnou verzi.
  • Starší než 2.1.4: touto chybou není zasaženo. Konkrétní chyba popsaná výše byla zavedena ve verzi 2.1.4, takže skutečně starší instalace jsou mimo tento rozsah. Nicméně tak staré vydání je v mnoha ohledech o roky pozadu za vším ostatním a aktualizace je z obecných důvodů doporučována.

Pokud se vám nepodaří získat čitelnou verzi z žádné ze tří výše uvedených kontrol, je to u tohoto pluginu běžné a neznamená to nic zvláštního: stylesheet se načítá pouze na stránkách, které skutečně vykreslují některý z jeho formulářů, a pluginy pro cachování nebo optimalizaci běžně odstraňují hodnotu ?ver=. Obrazovka v administraci z prvního kroku má odpověď vždy.

Jak aktualizovat

Nejbezpečnější cestou je aktualizace přímo prostřednictvím WordPressu, přičemž nejprve proveďte zálohu:

  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 Profile Builderu, nainstalujte ji odtud.
  3. Pokud preferujete příkazovou řádku, WP-CLI provede totéž: wp plugin update profile-builder (příkaz používá název složky).
  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, Profile Builder, a aktualizovat přes Pluginy, poté Instalace pluginů a Nahrát plugin.
  5. Po aktualizaci potvrďte nové číslo verze (3.16.4 nebo novější) pomocí výše uvedených kroků a zkontrolujte, že vaše registrační, přihlašovací a formuláře pro úpravu profilu stále fungují normálně.

Pokud používáte některý z placených doplňků Profile Builder od Cozmoslabs, aktualizujte je společně s hlavním pluginem, protože jejich vydání jsou obvykle spárována.

Je dobré při této příležitosti 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

Aktualizací na verzi 3.16.4 nebo novější je problém vyřešen a pro většinu webů je tím úkol hotov. Tato stránka je preventivním upozorněním, nikoliv hlášením o incidentu: nemám žádný přehled o tom, zda se na vašem webu něco stalo, a ani jsem to nekontroloval.

Stojí za zvážení jeden následný krok, který je podmíněn stejnou otázkou ohledně nastavení. Pokud měl váš web zapnuté Automatically Log In během běhu na ovlivněné verzi, bylo alespoň teoreticky možné, že někomu byla předána relace na existujícím účtu. Aktualizace uzavírá díru, ale nezruší přístup, který již byl získán, takže v takovém případě se vyplatí několik běžných preventivních kroků:

  • Zkontrolujte své administrátorské účty a jakékoli další důležité účty, zda neobsahují záznamy, které nepoznáváte, e-mailové adresy, které už nepatří správné osobě, nebo změny rolí, které jste neprovedli vy.
  • Projděte si nedávná přihlášení a všechny aktuálně aktivní relace kvůli čemukoli, co nedokážete vysvětlit.
  • Změňte hesla na svých administrátorských účtech. 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íčů, a jejich výměna jednorázově odhlásí všechny uživatele).

Pokud najdete něco, co vás znepokojuje, správnou reakcí je naložit s tím jako s jakýmkoli jiným podezřelým neoprávněným přístupem. Pokud jste na svém webu nikdy neměli zapnuté automatické přihlášení, stačí samotná aktualizace.

Co jsem udělal a co ne

Pro úplnou transparentnost ohledně kontroly, která stála za mým e-mailem: četl jsem pouze soubory, které váš web již poskytuje každému návštěvníkovi, konkrétně veřejný soubor readme.txt pluginu, vaši domovskou stránku a adresy prostředků zapsané na této stránce. 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ář, nikdy jsem nevytvořil účet a nikdy jsem se nedotkl kroku automatického přihlášení. 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 registrace je přesně ta akce, které 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 v ovlivněném rozsahu. Není to tvrzení, že váš web byl v době kontroly zranitelný. Protože problém závisí na nastavení, které nevidím, web v tomto rozsahu nemusí být vůbec ohrožen, a web v tomto rozsahu může být navíc chráněn jinými prostředky, jako je webová aplikační brána nebo zpětně portovaná oprava.

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