UpdraftPlus hack: jak mi UpdraftCentral nainstaloval do WordPressu backdoor

Tři weby se mi dneska (dopoledne 19. října) sesypaly. Dva hostované u mně na VPS, jeden na komerčním hostingu úplně jinde. Jakto?

Úvodní stránka webu UpdraftCentral se snímkem ruky držící papírovou postavičku červa s brýlemi

Publikováno: 28. 8. 2026

Myslel jsem, že jde o rozbitý plugin. Byl to pokud o hack. Dovnitř ho pustil UpdraftCentral + Updraft Prémium ve verzi 2.26.11, který měl web pomáhat držet aktuální.

Celou cestu popisuju krok po kroku. Na konci najdeš checklist, jak zjistit, jestli tvůj WordPress není napadený přes UpdraftCentral, a co hned udělat.

Stručně: co se stalo

  • Útočník poslal přes UpdraftCentral (vzdálenou správu v UpdraftPlus) příkaz plugin.upload_plugin.
  • WordPress nainstaloval a aktivoval neznámý plugin. Byl to backdoor.
  • V pluginu backdooru byla chyba - shodilo to WordPress.
  • Pomohla aktualizace UpdraftPlus? Ne. Napadené weby měly aktuální verzi a útočník podle všeho držel platné klíče UpdraftCentral. Že by mi někdo hacknul Updraft účet to nevypadá - viz další případy, které se objevují.
  • Týká se to webů, které mají klíč UpdraftCentral. Web bez klíče útok odrazil.

Krok 1: PHP log prozradil cizí plugin

V logu PHP se dokola opakovalo:

PHP Fatal error: Uncaught Error: Undefined constant CardPress::FIELD
in /wp-content/plugins/card-press/card-press.php:44

Na dalším webu:

PHP Fatal error: Uncaught Error: Undefined constant SpeedCore50d::FIELD
in /wp-content/plugins/speed-core-50d/speed-core-50d.php:44

Na třetím šlo o plugin load-engine (log z něj nemám).

Stačí zavolat web s tajným parametrem v URL a plugin:

  • vytvoří skrytého uživatele „Site Tools" s e-mailem @example.org,
  • dá mu roli editora a k tomu práva manage_options a install_plugins,
  • přihlásí ho cookie na 14 dní, takže obejde login formulář i dvoufázové ověření.

A teď ta legrační část. Útočník v kódu udělal chybu: konstanty definoval globálně (CARDPRESS_FIELD), ale četl je jako konstanty třídy (self::FIELD). PHP na tom spadlo při každém načtení stránky.

Backdoor tedy nikdy nefungoval. Jen shodil web. Kdyby ho útočník napsal správně, kdoví, co by v budoucnu udělal. 🚨

Krok 2: nginx log ukázal, kudy přišel

V přístupovém logu nebyla žádná instalace z administrace, žádné plugin-install.php ani nahrávání ZIPu. Jen jeden požadavek:

POST / HTTP/1.1  200  "WordPress/6.4; class-udrpc.php"

class-udrpc.php je knihovna, přes kterou UpdraftPlus komunikuje s UpdraftCentral. To je dashboard pro správu více webů najednou: zálohy, aktualizace… a instalace pluginů.

Krok 3: Updraft log

UpdraftPlus ukládá logy příchozích příkazů do databáze, do updraftcentral_client_log. Díky tomu víme:

  • 18. 10. večer: Message was received, but not understood by local site (for: probe.central.updraftplus.com). Útočník zkoušel, jestli ho web poslechne.
  • 19. 10. ráno: Command received: plugin.upload_plugin.

Simple History přidal poslední dílek: plugin byl nainstalován a aktivován jménem mého admin účtu (hesla mám jiné pro každý web, takže nejde o hacknutí jednoho webu a použití všude).

Nebyla to známá updraft chyba v CVE-2026-10795?

V červnu 2026 se řešila zranitelnost CVE-2026-10795: šlo o podvržení příkazů UpdraftCentral i bez klíče. Opravila ji verze 1.26.5 (Premium 2.26.5).

Moje weby ale měly UpdraftPlus Premium 2.26.9 a 2.26.10. Premium má v čísle verze o jedničku vyšší první číslici, změny ale odpovídají free verzi 1.26.x. Byly tedy dávno opravené.

Závěr Nethemby (z odkazu výše): útočník má platné klíče z UpdraftCentral Cloud. Jeho příkazy jsou správně podepsané, takže je provede i nejnovější UpdraftPlus 1.26.11 / 2.26.11. Aktualizace nepomůže. V době psaní neexistuje oprava ani vyjádření TeamUpdraft.

Jak zjistit, jestli je tvůj WordPress napadený přes UpdraftCentral

Používáš UpdraftPlus? Projdi tenhle checklist:

  1. Máš klíč UpdraftCentral? UpdraftPlus → Nastavení → Pokročilé nástroje → UpdraftCentral. Pozor, při propojení s účtem TeamUpdraft bývá UpdraftCentral zaškrtnutý automaticky. Klíč můžeš mít, i když o tom nevíš.
  2. Neznámý plugin s popisem „Small maintenance toolkit: keeps option storage tidy." Názvy se liší (card-press, speed-core-50d, load-engine, load-stack-35c…), popis bývá stejný.
  3. Uživatelé: účet „Site Tools".
  4. Log UpdraftCentral (option updraftcentral_client_log): probe.central.updraftplus.com nebo Command received: plugin.upload_plugin.
  5. Přístupový log: POST / s user-agentem WordPress/6.4; class-udrpc.php.

Najdeš cokoli z toho? Ber web jako napadnutý.

Co jsem udělal (a co doporučuju)

  • ✅ Backdoor pluginy jsem smazal. Můžeš si je přes smazáním projet, co dělají.
  • ✅ Smazal jsem všechny klíče UpdraftCentral na všech webech. Odebrat web jen z dashboardu nestačí, klíč zůstává na webu. Smažeš v: Pokročilé nastavení - Updraft Central - Spravovat klíče - Smazat.
  • ✅ Přes phpMyAdmin jsem smazal jsem klíč *_sync_token. (v SELECT option_name, option_value FROM wp_options WHERE option_name LIKE '%_sync_token';)
  • ✅ Zkontroloval jsem uživatele a oprávnění v databázi: nic nového. Díky chybě v kódu se backdoor nikdy nespustil.
  • ✅ V přístupových lozích jsem ověřil, že tajný parametr backdooru nikdo nezavolal.
  • ✅ Změnil jsem heslo k účtu TeamUpdraft a zapnul 2FA.
  • 🔄 Znovu nepřipojuju, dokud výrobce nevysvětlí, jak klíče unikly.

Zjištění příčiny a úklid na třech webech mi zabraly zhruba hodinu a půl.

Ponaučení

  • Neaktualizovaný web je otevřená brána, to víme. Tady ale nepomohla ani aktualizace. Pomohlo jen to, když klíč na webu vůbec nebyl. Centrální úložiště třetí strany je vždycky riziko.
  • Logy. Bez PHP logu, nginx logu, updraftcentral_client_log a Simple History bych se rychle nedostal do obrazu, kudy napadení přišlo.
Pomůže aktualizace UpdraftPlus na nejnovější verzi?

Podle dostupných informací ne. Útok proběhl i na verzích 2.26.9–2.26.11, protože útočník posílá platně podepsané příkazy. Chrání jen smazání klíčů UpdraftCentral.

Aktualizace: během dne vyšlo vyjádření od Updraft. Blog TeamUpdraft potvrzuje to, co jsme vyčetli z logů: unikla jejich databáze zákazníků a v ní klíče UpdraftCentral.

Co přiznávají:

  • O víkendu 17.–18. 10. někdo získal neoprávněný přístup na teamupdraft.com: „We believe our customer database was accessed.“
  • V databázi byly jména, e-maily, fakturační adresy, historie objednávek, zahashovaná hesla, nastavení 2FA a klíče pro UpdraftCentral, UpdraftVault a UpdraftClone. Platební údaje ne (řeší je Stripe a PayPal).
  • Plugin samotný, jeho stahování, zálohy na vlastním úložišti a self-hosted UpdraftCentral podle nich zasažené nejsou.
  • Kudy se útočník dostal dovnitř, nepíšou. Uvádějí jen, že cestu uzavřeli.
Týká se to i free verze UpdraftPlus?

Ano. UpdraftCentral je ve free i Premium verzi. Rozhoduje, jestli má web klíč UpdraftCentral.

Nikdy jsem UpdraftCentral nepoužíval. Jsem v bezpečí?

Ne nutně. Při propojení s účtem TeamUpdraft se klíč mohl vytvořit automaticky. Zkontroluj Pokročilé nástroje → UpdraftCentral.

Je to totéž co CVE-2026-10795?

Není. CVE-2026-10795 je červnová chyba opravená ve verzi 1.26.5 (Premium 2.26.5). Tenhle útok funguje i na opravených verzích.

Mám UpdraftPlus odinstalovat?

Na zálohování ho používat můžeš. Jen smaž klíče UpdraftCentral a do vyjádření výrobce weby znovu nepřipojuj.

Máš podezření, že ti někdo napadl web?

Rád ti pomůžu web odčervit.

Tvůrce webů ukazující na notebook na bílém pozadí se žlutými grafickými prvky

WordPressito

Měsíční newsletter pro majitele webů, kteří chtějí, aby jejich WordPress spolehlivě fungoval.

Dozvíš se:

🔌 Tipy na užitečné pluginy a nástroje.
🆕 Novinky z WordPress světa.
💡 Praktické návody a rady.

linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram