Pokud jste ode mne dostali e-mail, který vás odkázal na tuto stránku, pak proto, že váš web zřejmě používá zranitelnou verzi pluginu Premium Packages (WordPressový plugin wpdm-premium-packages, doplněk pro WordPress Download Manager od Shahjady / wpdownloadmanager.com). Tato stránka vysvětluje, proč na tom záleží a jak to opravit.

Toto upozornění se týká CVE-2026-15348, neautentizovaného obejití autentizace v obslužné rutině stahování pluginu, které by mohlo neoprávněnému návštěvníkovi umožnit přihlásit se jako zákazník nebo jiný neadministrátorský účet ve vašem obchodě. Postihuje verze 4.7.0 až 7.0.4 a je opraveno ve verzi 7.0.5. Pokud používáte dotčenou verzi, aktualizujte Premium Packages na 7.0.5 nebo novější.

Poznámka k naléhavosti, protože toto upozornění se nachází mezi mými ostatními: tento problém nevyžaduje žádné přihlášení (je plně neautentizovaný), takže promptní aktualizace se vyplatí. Zároveň jde o chybu přístupu k účtu postihující neadministrátorské vlastníky objednávek, nikoli o převzetí serveru nebo plné administrátorské kontroly a nic nenasvědčuje tomu, že by byl zneužíván (není v katalogu Known Exploited Vulnerabilities agentury CISA a nejsem si vědom žádných hlášení o zneužití). Tato stránka je preventivní upozornění, nikoli zpráva o incidentu. Aktualizace problém uzavírá a žádná nouzová reakce z toho nevyplývá.

Jde o zranitelnost pluginu, nikoli jádra WordPressu. Plně aktuální WordPress vás neochrání, pokud je samotný plugin Premium Packages na dotčené verzi.

Je tato zpráva důvěryhodná?

Ano. Jde o upozornění v dobré víře podle zásad zodpovědného zveřejňování od nezávislého bezpečnostního výzkumníka. Nežádám vás o peníze, hesla ani přístup k vašemu webu a nepokoušel jsem se do něj proniknout, cokoli nahrát ani cokoli zneužít.

Pouze jsem se podíval na veřejně viditelné soubory, které váš web poskytuje každému návštěvníkovi (stejně jako je veřejná vaše úvodní stránka), a zaznamenal jsem informaci o verzi, kterou plugin Premium Packages zveřejňuje ve svém veřejném souboru readme.txt. Zranitelného endpointu jsem se výslovně nedotkl a nic na této kontrole se nedotýká vašich dat, vaší administrace ani žádné soukromé části vašeho webu (podrobněji v části Co jsem udělal a co ne níže).

Pokud si chcete ověřit, kdo jsem, podívejte se na kontaktní údaje v dolní části této stránky a na stránku O této stránce.

Proč na tom záleží

Premium Packages je doplněk pro WordPress Download Manager (kolem 2 000 aktivních instalací), který webu umožňuje prodávat digitální produkty a soubory ke stažení. V dotčených verzích běží obslužná rutina download() pluginu na neautentizovaném požadavku. Dekóduje útočníkem ovládaný parametr URL (wpdmppdl), který je pouze zakódovaný v base64, bez podpisu a bez nonce, jenž by prokázal pravost požadavku, a poté vydá přihlašovací cookies WordPressu po kontrole „domény“, jejíž obě strany dodává útočník (takže je kontrola triviálně splněna). Tento typ chyby je obejití autentizace: vedlejší cesta vydá přihlášenou relaci, aniž by kdy ověřila, kdo se ptá.

Praktickým důsledkem je, že by se neautentizovaný návštěvník mohl přihlásit jako kterýkoli neadministrátorský uživatel, který vlastní objednávku v obchodě: zákazník, odběratel, autor, editor nebo účet správce obchodu. Aby bylo jasné, kde je strop tohoto problému: neuděluje administrátorský přístup a sám o sobě útočníkovi nepředává váš server. Jde o převzetí neadministrátorských účtů vlastníků objednávek.

Přidělující autorita tomuto problému nepřidělila skóre CVSS, takže k němu nebudu připojovat číslo; kvalitativně je závažný, protože nevyžaduje žádné přihlášení, ale ohraničený, protože přístup, který poskytuje, je neadministrátorský. Pokud můj e-mail tento problém uváděl, znamená to, že verze, kterou váš web hlásí, spadá do dotčeného rozsahu. Netestoval jsem, zda je konkrétně váš web zneužitelný, pouze to, že hlásí dotčenou verzi.

Dobrá zpráva: aktualizace na opravenou verzi tento problém uzavře a aktualizace je jednoduchá.

Jsem dotčen? Jak zkontrolovat svou verzi

Toto je jediná část tohoto upozornění, která se liší od ostatních, jež rozesílám, protože veřejná pole s verzí tohoto pluginu jsou nespolehlivá, takže se vyplatí ji přečíst pozorně.

Autoritativní kontrolou je administrace WordPressu. Ta ukazuje skutečně nainstalovanou verzi:

  1. Přihlaste se do administrace WordPressu (obvykle na adrese yourdomain.com/wp-admin).
  2. Přejděte na Pluginy poté Instalované pluginy.
  3. Vyhledejte Premium Packages a poznamenejte si verzi uvedenou pod jeho názvem.

Poté použijte toto pravidlo a mějte na paměti, že verze se porovnávají číselně, nikoli abecedně:

  • Jakákoli verze nižší než 7.0.5: dotčená, aktualizujte ihned.
  • 7.0.5 nebo novější: již opravená.

Proč nestačí přečíst veřejné soubory? Protože u tohoto pluginu vás mohou uvést v omyl:

  • Řádek „Stable tag:“ ve veřejném souboru readme.txt pluginu zaostává za jeho vlastním kódem. Web používající poslední zranitelné vydání (7.0.4) zveřejňuje například Stable tag: 7.0.3. Veřejný readme je tedy spolehlivým signálem stavu „opraveno“ pouze tehdy, když uvádí 7.0.5 nebo vyšší. Nižší číslo vám nespolehlivě sdělí vaše přesné vydání; cokoli nižšího než 7.0.5 berte jako „zkontrolovat wp-admin a aktualizovat“.
  • Neposuzujte svou verzi podle čísla ?ver= v URL skriptu nebo stylu pluginu. Plugin zmrazil svou interní konstantu verze na 7.0.4 v bezpečnostním vydání 7.0.5, takže opravený web s 7.0.5 stále poskytuje soubory označené ?ver=7.0.4; a ?ver= u souboru CSS je ve skutečnosti verze jádra WordPressu, nikoli pluginu. Ani jedno neodráží skutečnou verzi pluginu. Použijte wp-admin.

Jak aktualizovat

Nejbezpečnější cestou je aktualizace přímo přes WordPress, a to po předchozí záloze:

  1. Zazálohujte svůj web (soubory a databázi) před provedením změn. Většina poskytovatelů hostingu nabízí zálohy na jedno kliknutí, případně použijte zálohovací plugin pro WordPress.
  2. V administraci WordPressu přejděte na Nástěnka poté Aktualizace, nebo Pluginy poté Instalované pluginy. Pokud je aktualizace Premium Packages uvedena, nainstalujte ji odsud.
  3. Pokud dáváte přednost příkazové řádce, WP-CLI udělá totéž: wp plugin update wpdm-premium-packages.
  4. Pokud se žádná aktualizace neobjeví, můžete si nejnovější vydání stáhnout přímo ze stránky pluginu v adresáři WordPress.org, Premium Packages, a aktualizovat přes Pluginy poté Přidat nový plugin poté Nahrát plugin.
  5. Po aktualizaci potvrďte nové číslo verze (7.0.5 nebo novější) v části Pluginy poté Instalované pluginy podle výše uvedených kroků a zkontrolujte, že vaše soubory ke stažení a funkce obchodu běžně fungují.

Když už jste u toho, vyplatí se ověřit, že jsou aktuální i jádro WordPressu, WordPress Download Manager a vaše ostatní pluginy, protože stejná zásada platí pro všechny.

Po aktualizaci

Aktualizace na 7.0.5 nebo novější problém uzavírá a pro většinu webů je to celý úkol. Nic nenasvědčuje tomu, že by tato chyba byla zneužita, takže žádná nouzová reakce z toho nevyplývá: nemusíte svůj web považovat za napadený, odpojovat ho ani vynucovat resety hesel.

Protože by chyba mohla neoprávněnému návštěvníkovi umožnit jednat se zákaznickým nebo jiným neadministrátorským účtem, je rozumný jeden běžný následný krok: projděte si nedávnou aktivitu zákaznických účtů a objednávek, zda v ní není něco neznámého, například objednávky nebo změny účtu, které zákazník neprovedl, nebo přihlášení, jež neodpovídají běžné aktivitě. Berte to jako běžnou údržbu, jakou obchod dělá pravidelně, nikoli jako reakci na incident. Pokud přece jen něco vypadá špatně, platí obvyklé kroky (resetujte heslo daného účtu a projděte aktivitu se zákazníkem) a s dotazy se na mne můžete klidně obrátit.

Co jsem udělal a co ne

Abych byl ohledně kontroly, která předcházela mému e-mailu, zcela transparentní: četl jsem pouze veřejné soubory, které váš web už teď poskytuje každému návštěvníkovi, konkrétně veřejný soubor pluginu readme.txt a vaši úvodní stránku. Nepřistupoval jsem k vaší administraci WordPressu, k vaší databázi ani k žádné soukromé části webu. Zejména jsem se nedotkl zranitelného endpointu a nic jsem netestoval ani nezneužil.

Jde o pozorování založené na verzi: váš web hlásí verzi v dotčeném rozsahu. Web v tomto rozsahu už může být chráněn jinými prostředky (například webovým aplikačním firewallem nebo zpětně nasazenou opravou), takže toto upozornění není tvrzením, že váš web byl v době mé kontroly zneužitelný.

Nemám webmastera / nevím si rady

Pokud nejste tou osobou, která web spravuje, přepošlete prosím tuto stránku tomu, kdo to dělá (vašemu vývojáři webu, agentuře nebo poskytovateli hostingu). Výše uvedené kroky rychle rozpozná.

Pokud web spravujete sami a zaseknete se, rád vám zdarma pomohu nasměrovat se správným směrem. Ozvěte se pomocí kontaktních údajů níže.

Kontakt

Evan Harris, bezpečnostní výzkumník

Na provozovatele se s problémy, jako je tento, obracím výhradně proto, abych jim pomohl zabezpečit jejich weby. Pokud si nepřejete být znovu kontaktováni, stačí mi to sdělit a budu to respektovat.

Zdroje

Oficiální upozornění a evidence

Dodavatel / plugin