Přeskočit na obsah
Kritická chyba ve WPvivid Backup: neautentizovaný upload souborů může vést k převzetí webu (CVE-2026-1357)
Jakub Dvořák
Jakub Dvořák 11. February 2026 · 1 min čtení

Kritická chyba ve WPvivid Backup: neautentizovaný upload souborů může vést k převzetí webu (CVE-2026-1357)

Wordfence zveřejnil detaily kritické zranitelnosti v pluginu WPvivid Backup (na WordPress.org vedený jako „Migration, Backup, Staging – WPvivid Backup & Migration“). Jde o Unauthenticated Arbitrary File Upload – tedy možnost nahrát soubor na server bez přihlášení – s potenciálem Remote Code Execution (RCE), což je typicky cesta k úplnému převzetí webu.

Důležitý kontext: podle zveřejněných informací je zranitelnost kriticky relevantní hlavně pro weby, které mají v nastavení pluginu vygenerovaný klíč pro příjem zálohy z jiného webu. Tato funkce je ve výchozím stavu vypnutá a expiraci klíče lze nastavit maximálně na 24 hodin. To sice omezuje okno útoku, ale pokud je klíč aktivní, problém je vážný.

Ilustrační obrázek k advisory Wordfence o zranitelnosti ve WPvivid Backup
/ Wordfence advisory: 800,000 WordPress Sites Affected by Arbitrary File Upload Vulnerability in WPvivid Backup WordPress Plugin — Forrás: Wordfence.com

Shrnutí zranitelnosti (Wordfence Intelligence)

Wordfence ji eviduje jako: Migration, Backup, Staging <= 0.9.123 -- Unauthenticated Arbitrary File Upload.

Podle Wordfence umožňuje kombinace několika chyb útočníkovi bez přihlášení nahrát na server libovolný soubor (včetně PHP) a následně spustit kód. V advisory je jako parametr zmiňováno spuštění přes požadavek s wpvivid_action=send_to_site.

Koho se to týká v praxi (a proč „jen někdy“)

WPvivid umí nejen zálohovat a obnovovat, ale také přijmout zálohu z jiného webu. Tohle „receive backup“ chování je navázané na krátkodobý vygenerovaný klíč v nastavení pluginu.

Z pohledu rizika je zásadní, že Wordfence explicitně uvádí: kritický dopad má primárně konfigurace, kdy máš vygenerovaný klíč povolený pro příjem záloh. Funkce je standardně vypnutá a klíč může mít expiraci maximálně 24 hodin – takže nejde o trvalé otevření endpointu, ale i tak je to dost dlouhé okno na automatizované skeny a cílené útoky.

Technické pozadí: co se pokazilo v kryptografii a zápisu souboru

Wordfence popisuje zranitelnost jako kombinaci dvou problémů:

  • Nesprávné ošetření chyby při RSA dešifrování (včetně chování při selhání openssl_private_decrypt() / RSA decrypt kroku)
  • Chybějící sanitizace cesty/názvu souboru při zápisu nahraných dat (umožňující directory traversal a únik z „chráněného“ backup adresáře)

Tok zpracování je podle analýzy navázaný na metodu send_to_site() ve třídě WPvivid_Send_to_site, která obsluhuje příjem souboru zálohy včetně práce s obsahem z $_POST['wpvivid_content'] a tokenem uloženým v nastavení (wpvivid_api_token). Pokud token chybí nebo je expirovaný, plugin ukončí vykonávání (die()), ale v případě aktivního tokenu pokračuje přes dešifrování zprávy.

Klíčový detail: při dešifrování zprávy se má nejdřív RSA částí získat session key a tím pak symetricky dešifrovat payload (v advisory je zmiňovaný Rijndael/AES přes phpseclib). Pokud ale RSA decrypt selže a vrátí false, plugin podle Wordfence neukončí provádění a předá false do inicializace symetrické šifry. Knihovna pak tuto hodnotu interpretuje jako řetězec nulových bytů, čímž vznikne predikovatelný „null-byte key“. Útočník si následně může payload zašifrovat přesně tímto předvídatelným klíčem.

Druhý problém: plugin z dešifrovaného payloadu přijme název souboru bez dostatečné sanitizace, takže lze zneužít directory traversal a zapsat soubor mimo vyhrazený adresář záloh. V kombinaci s absencí kontroly typu/rozšíření souboru (v původním stavu) to otevírá možnost nahrát třeba PHP webshell do veřejně dostupného umístění a následně ho přímo zavolat – to je přesně ten scénář, který končí Remote Code Execution a často i kompletní kompromitací webu.

Proč je „arbitrary file upload“ prakticky vždy průšvih

Jakmile útočník dokáže bez přihlášení nahrát soubor do webrootu (nebo jiného veřejně dostupného adresáře) a neexistuje kontrola typu souboru, je běžným dalším krokem upload PHP webshellu a spuštění kódu. To obvykle znamená plný přístup k WordPressu i serveru v rámci práv webového procesu.

Jak vypadá oprava ve verzi 0.9.124

Podle Wordfence vývojáři opravili problém dvěma konkrétními zásahy:

  1. Do decrypt_message() přidali kontrolu, že dešifrovaný $key nesmí být false ani prázdný. Pokud je, funkce vrátí false a dál se nepokračuje – tím se zamezí použití „nulového“ klíče pro symetrickou šifru.
  2. V send_to_site() přidali kontrolu přípony souboru a povolili jen typické backup formáty. V patchi je uveden allowlist: zip, gz, tar, sql. Současně se název bezpečněji zpracuje přes basename() a preg_replace('/[^a-zA-Z0-9._-]/', '', $safe_name); pokud přípona neprojde, vrátí se chyba „Invalid file type – only backup files allowed.“ a skript se ukončí (die()).

Doporučený postup pro správce a vývojáře (co udělat hned teď)

  1. Zjisti, jestli na webu běží WPvivid Backup / Migration, Backup, Staging (slug wpvivid-backuprestore).
  2. Ověř verzi pluginu. Pokud je 0.9.123 nebo starší, je potřeba aktualizace.
  3. Aktualizuj na WPvivid Backup 0.9.124 (Wordfence ji uvádí jako opravenou verzi) co nejdřív.
  4. Pokud používáš funkci pro příjem záloh „z jiného webu“ (generated key / API token), zvaž, jestli ji opravdu potřebuješ. Když je klíč vygenerovaný, je to přesně konfigurace, kterou Wordfence označuje jako kriticky dotčenou.
  5. Pokud máš Wordfence, zkontroluj úroveň ochrany: firewall rule byla podle oznámení nasazena dříve pro Premium/Care/Response a později pro Free (viz časová osa níže).

Časová osa zveřejnění a mitigace (Disclosure Timeline)

  • January 12, 2026 – Wordfence obdržel hlášení zranitelnosti přes Bug Bounty Program.
  • January 22, 2026 – Wordfence report ověřil, potvrdil proof-of-concept exploit a kontaktoval vendor (pozvánka do Wordfence Vulnerability Management Portal).
  • January 22, 2026 – Uživatelé Wordfence Premium, Wordfence Care a Wordfence Response dostali firewall rule proti exploitům této chyby.
  • January 23, 2026 – Vendor odpověděl, zvolil komunikaci e-mailem.
  • January 23, 2026 – Wordfence poslal vendorovi plné detaily, vendor potvrdil a začal připravovat fix.
  • January 28, 2026 – Vyšla opravená verze pluginu 0.9.124.
  • February 21, 2026 – Uživatelé Wordfence Free mají podle oznámení obdržet stejnou firewall ochranu.

Poznámka k nálezu a Bug Bounty

Zranitelnost objevil a zodpovědně nahlásil Lucas Montes (NiRoX) přes Wordfence Bug Bounty Program. Wordfence uvádí, že report přišel pět dní po zavedení chyby a odměna byla $2,145.00. V rámci programu Wordfence zmiňuje, že výzkumníci mohou získat až $31,200 per vulnerability (pro zranitelnosti v rozsahu programu).

Závěr

CVE-2026-1357 je ukázkový případ toho, jak nešťastná kombinace kryptografického edge-case (pokračování po selhání RSA decrypt) a slabé práce s cestou/názvem souboru může skončit nejhorším možným scénářem: neautentizovaným nahráním PHP souboru a RCE. Oprava je k dispozici ve verzi 0.9.124 a pokud WPvivid používáš – obzvlášť pokud máš aktivní klíč pro příjem záloh – je aktualizace naprostá priorita.

Připojte se ke komunitě HelloWP!

Povídejte si s námi o WordPressu, webovém vývoji a sdílejte zkušenosti s ostatními vývojáři.

- členové
- online
Připojit se

Používáme cookies ke zlepšení vašeho zážitku. Pokračováním souhlasíte s našimi Zásadami používání cookies.