WP2Shell: Pre-autentizační RCE ve WordPress Core

Pre-autentizační RCE přímo ve WordPress Core patří k tomu nejhoršímu

Čas od času se objeví zranitelnost, u které platí jediné pravidlo: nechte všeho a řešte to. WP2Shell je přesně tento případ. Jde o pre-autentizační vzdálené spuštění kódu (RCE), a to přímo ve WordPress Core, ne v nějakém pluginu, který jde odinstalovat. Anonymní útočník bez účtu a bez jakéhokoli přístupu dokáže spustit vlastní kód na běžné instalaci WordPressu.

Jediná dobrá zpráva je, že oprava už existuje. Takže tenhle příběh vlastně není o chybě samotné. Je o tom, jestli zareagujete, a jak rychle.

Softwarová inženýrka kontroluje serverové logy na monitoru v přirozeně osvětlené kanceláři

Co je WP2Shell doopravdy

Proč je to tak vážné, vystihnou tři pojmy: jádro, bez přihlášení, bez podmínek.

“Jádro” znamená, že zranitelný kód je součástí samotného WordPressu. Nepotřebujete rizikovou šablonu ani problematický plugin, abyste byli ohroženi. Stačí čistá, výchozí instalace. Chyba míří na REST batch API, což je standardní součást platformy.

“Bez přihlášení” znamená, že útočník se nemusí nikam přihlašovat. Není co uhodnout, není žádná session, kterou by musel ukrást. Stačí mu, když se na váš web dostane.

“Bez podmínek” znamená, že ke zranitelnosti není potřeba žádné zvláštní nastavení. Pokud provozujete zasaženou verzi, týká se to i vás.

WordPress pohání velkou část webu, a právě to dělá tuhle třídu chyb tak nebezpečnou. Stejný kód běží na obrovském množství webů, takže jediná chyba v jádře funguje jako univerzální klíč.

Výzkumníci, kteří chybu našli (SL Cyber), záměrně nezveřejnili technické detaily exploitu, aby dali obráncům čas nasadit opravu dřív, než se rozšíří funkční útoky. Žádný proof of concept nemáme a ani ho nešíříme. Co ale sdílíme, je návod, co s tím.

Jste ohroženi?

Zkontrolujte si verzi. Zasažené rozsahy jsou konkrétní:

  • WordPress 6.9.0 až 6.9.4 jsou zasažené.
  • WordPress 7.0.0 až 7.0.1 jsou zasažené.
  • WordPress 6.8.5 a starší zasažené nejsou.

Pokud běžíte na 6.9.x nebo 7.0.0/7.0.1, berte se za ohrožené, dokud nenasadíte opravu.

Co dělat hned teď

Inženýr nasazuje aktualizaci u pracovní stanice, nasvícený teplou stolní lampou

Aktualizujte. To je celá odpověď a je správná.

  • Přejděte na WordPress 7.0.2, nebo na 6.9.5, pokud zůstáváte na větvi 6.9. Obě verze opravu obsahují.
  • Udělejte to teď, ne v příštím servisním okně.

Pokud opravdu nemůžete aktualizovat okamžitě, postavte před web dočasné opatření, než aktualizaci zařídíte. Zablokujte batch endpointy na svém WAF, nebo omezte anonymní přístup k REST API. Konkrétně zablokujte obě podoby, ve kterých se endpoint vyskytuje:

  • /wp-json/batch/v1
  • ?rest_route=/batch/v1

Je to nouzová záplata, ne řešení. Aktualizujte, jakmile to půjde.

To, co se skutečně vyplatí

Detail rackového síťového switche a úhledně svázané kabeláže

Opravit jednu známou chybu je ta snadná část. Aktualizovat jeden web zvládne každý, komu se to řekne.

Těžší je vědět, že celá vaše infrastruktura je aktuální, ne jen web, na který jste si zrovna vzpomněli. Je to jistota, že pravidlo na WAF, které jste psali před rokem, pořád reaguje tak, jak si myslíte. A je to schopnost dozvědět se o příštím WP2Shellu včas, ne až se o něm dočtete zpětně. To je ta skutečná práce a přesně ta v tichosti chrání firmu mezi jednotlivými titulky.

Pokud si nejste jistí, jaké verze WordPressu vlastně provozujete, nebo jestli by vaše obrana obstála, můžeme provést bezpečnostní audit a dát vám jasný a upřímný obrázek o tom, jak na tom jste. Bez zbytečné dramatizace, jen fakta.

Zdroj