Kurs "WordPress: Pierwsze kroki" (na dobry początek)

Wczoraj, z powodu błędu (podatności XSS)  w flashowym module do wgrywania mediów aktualizowaliśmy WordPressa do wersji 4.9.2, dziś z kolei aktualizujemy motywy (Divi, Extra) i wtyczki (Page Builder) od Elegant Themes, zwłaszcza, jeśli korzystacie ze stron zabezpieczonych hasłem (jedna z natywnych funkcji WordPressa).

Elegant Themes Security Update

Chwile przed 2 w nocy na moją skrzynkę trafił e-mail, którego konsekwencją mogłoby być zerwanie się z wyrka i pospieszne udanie się do komputera, celem wymuszonej aktualizacji motywów od Elegant Themes (jeden z nich – Extra – używany jest zresztą obecnie na Webinsider.pl). Bo tytuł wiadomości mógł zapowiadać problemy:

Elegant Themes Security Update

Na szczęście treść, była już uspakajająca, choć w niektórych przypadkach mogła spowodować szybsze bicie serca… u innych. Bo owszem, mamy (mieliśmy, bo już jest po aktualizacjach) do czynienia z problemem dotyczącym bezpieczeństwa, ale takim, który zapewne nie dotyczy(ł) większości użytkowników, a nawet jeśli, to nie oznacza od razu wielkich problemów. Choć nie ma co go bagatelizować, zwłaszcza że w niektórych sytuacjach może/mogło to doprowadzić to wycieku prywatnych informacji do osób postronnych:

Today our core product framework was updated to fix an unintended information exposure within password protected post excerpts. This includes all of our WordPress themes and the Divi Builder plugin. Updating these themes and plugins to their latest versions will patch the flaw, keeping your website content secure.

The Problem

WordPress allows posts (and Pages) to be password protected. When password protected posts are viewed or displayed within a post feed, post content is hidden pending password authentication. Our products did not treat these posts correctly when displaying excerpts. Post excerpts for password protected posts (and Pages) were mistakenly displayed on theme index pages and within post-based Divi Builder modules. Excerpts typically include the first ~40 words of a post unless otherwise defined. Full post content and individual post URLs were correctly protected.

Are You Affected?

This problem only affects customers who have published password protected posts and pages. Only the brief excerpts of these posts were potentially exposed within front-end website content. This does not affect WordPress admin authentication or any other password authentication on your website.

Jak możecie przeczytać w zacytowanym powyżej fragmencie, problem dotyczy postów, dla których aktywna jest dostępna w WordPressie funkcja ochrony hasłem. W takim przypadku początkowe fragmenty wpisu (excerpts) da(ło) się odczytać zaglądając do kodu źródłowego strony. Długość dostępnego tekstu zależy od ustawień, ale domyślnie jest to ok 40 pierwszych wyrazów.

Problem rozwiązuje oczywiście aktualizacja, która zalecam zrobić, nawet jeśli nie korzystacie z postów zabezpieczonych hasłem:

version 2.0.95 ( updated 1-17-2018 )

– Fixed an unintended information exposure within password protected post exceprts that mistakenly displayed some small amount of content from password protected posts inside of post feeds as part of the automatically generated post excerpt. If you are using password protected posts, it’s important that you update your theme to prevent parts of your password protected content from being seen by your visitors. As part of this disclosure, we have emailed all Elegant Themes customers with detailed information about the problem and how to fix it.

Tak się „szczęśliwie” złożyło, że sam akurat kilka dni temu przygotowałem wpis, który w oczekiwaniu na ewentualną akceptację czeka zabezpieczony hasłem… ;-)

Elegant Themes Security Tools

Z racji tego, że motywy i wtyczki od Elegant Themes dostepne są również w modelu subskrypcyjnym, to nie można wykluczyć sytuacji, gdy ktoś cały czas korzysta z np. z motywu Divi, ale nie ma już dostępu do aktualizacji.

W takim przypadku można skorzystać z wtyczki „Elegant Themes Security Tools”, a konkretnie jej najnowszej wersji (styczeń 2018), która pozwoli wyeliminować opisywaną podatność. By pobrać wtyczkę należy zalogować się na swoje konto (więc jakby co, to… ja mam konto ;-)):

What If You Can’t Update Right Now?

If you are unable to update your themes/plugins right away, you can use our security patcher plugin to patch the vulnerability without updating your products. This is a free download for all customers. Installing this plugin will fix the problem, and you can continue to use the security patcher plugin until you are able to update your products to their latest versions.

A gdy Twoje konto wygasło

Ale ekipa z Elegant Themes postanowił (i słusznie!) udostępnić aktualizację wtyczek i motywów dotkniętych problemem również dla osób, których subskrypcja już wygasła:

Has Your Account Expired?

We are making these updates available for free to all expired accounts. Even if your account has expired, you can still update your themes or plugins to their latest versions via your WordPress dashboard. Expired accounts will not be restricted from updating.

Nie wiem jak to wygląda w praktyce, ale jest to działanie na pewno godne pochwalenia.

Problem w praktyce

Nie byłbym sobą, gdybym przed aktualizacją (w moim przypadku nie był to istotny problem, więc mogłem sobie na to pozwolić) nie dokonał testów. Na stronie zabezpieczonej hasłem wszystko było OK, brak treści chronionej. Poza tagami dla mediów społecznościowych (Twitter, Facebook), ale mam tego świadomość, i ta gdzie jest to istotne mogę wyłączyć poprzez dodanie odpowiedniego wyjątku.

Za to treść „zastrzeżoną” znalazłem na stronie głównej, gdzie znajduje się moduł „blog feed standard module”, odpowiedzialny za wyświetlanie najnowszych postów (artykułów):

Przy tym module w kodzie źródłowym strony faktycznie można trafić na coś takiego:

<div class="excerpt entry-summary">
<p>To jest treść, której tu nie powinno być widać...</p>
</div>

Nauczka na przyszłość? Nawet jak zabezpieczacie stronę hasłem, to w pierwszych akapitach najlepiej wstawić jakieś „zapychacze”. Bo tym razem mamy informacje o wymaganej z tego powodu aktualizacji produktów od Elegant Themes, ale na rynku jest pełno choćby przeróżnych wtyczek, które korzystają z „zajawki”, i nie można wykluczyć, że w ich przypadku również takie dane „wyciekają”.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Tworzysz stronę internetową i potrzebujesz pomocy?
Patryk
Kurs "WordPress: Pierwsze kroki" (bezpłatna lekcja)