# UpdraftPlus hack: jak mi UpdraftCentral nainstaloval do WordPressu backdoor

- Odkaz: https://tomas-shejbal.cz/wordpressito/updraftplus-hack-jak-mi-updraftcentral-nainstaloval-do-wordpressu-backdoor/
- Zveřejněno: 2026-10-19T14:04:11+02:00
- Autor: tom

# 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](https://tomas-shejbal.cz/wp-content/uploads/2026/10/wordpressito_updraftcentral.
webp)

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í](https://nethemba.com/updraftcentral-backdoor-analysis/).
 * 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:

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

Na dalším webu:

    ```wp-block-code
    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:

    ```wp-block-code
    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](https://teamupdraft.com/blog/security-incident-october-2026/).
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.

[**Chci pomoct**](https://tomas-shejbal.cz/optimalizace-wordpress-webu#section-279-139241)

![Tvůrce webů ukazující na notebook na bílém pozadí se žlutými grafickými prvky](
https://tomas-shejbal.cz/wp-content/uploads/2026/01/optimalizace_bottom.webp)
