Katalog CVE

CVE-2026-18438

WysokieCVSS 8.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Podwyższone ryzyko
0.98%

Percentyl 60 - wyżej niż 60% wszystkich znanych CVE

Streszczenie

Wtyczka Templately dla WordPressa (do wersji 3.7.1 włącznie) zawiera podatność na zdalne wykonanie kodu (RCE) w funkcji fetch_remote_file. Problem wynika z niezgodności walidacji nazwy pliku — typ pliku jest sprawdzany na podstawie nagłówka Content-Disposition, a rzeczywista ścieżka zapisu pochodzi z adresu URL, co pozwala na zapis pliku z rozszerzeniem .php. Atakujący z dostępem na poziomie contributora może ominąć bramkę unfiltered_upload i wykonać kod na serwerze.

Ocena ryzyka

Ryzyko dla organizacji jest krytyczne — osoba z kontem o niskich uprawnieniach (contributor) może przejąć kontrolę nad serwerem, wykonać dowolny kod, a także nadpisać globalne połączenie z chmurą Templately. Może to prowadzić do pełnej kompromitacji witryny, kradzieży danych lub wykorzystania serwera do dalszych ataków.

Rekomendacja

Należy natychmiast zaktualizować wtyczkę Templately do najnowszej wersji, która zawiera poprawkę. Dodatkowo, do czasu aktualizacji, ogranicz dostęp do kont o niskich uprawnieniach (contributor) i zablokuj dostęp do endpointów REST /templately/v1/clouds/upload, /templately/v1/insert oraz /templately/v1/login dla nieuprawnionych użytkowników.

Oryginalny opis (angielski, źródło NVD)

The Templately – Elementor & Gutenberg Template Library: 6500+ Free & Pro Ready Templates And Cloud! plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 3.7.1 via the fetch_remote_file function. This is due to a filename validation/destination mismatch in fetch_remote_file, where file type validation is performed against the attacker-controlled Content-Disposition filename rather than the URL-path-derived destination filename. This makes it possible for authenticated attackers, with contributor-level access and above, to execute code on the server. A GIF+PHP polyglot file passes wp_check_filetype_and_ext validation as image/gif via the Content-Disposition filename, while the actual destination path is written with a .php extension derived from the URL path, bypassing the unfiltered_upload capability gate entirely. The affected endpoints are reachable at this privilege level because Templately's entire REST API — including the cloud import endpoints used in this attack (/templately/v1/clouds/upload and /templately/v1/insert) — is authorized only by a current_user_can('delete_posts') check, with no administrator or manage_options capability requirement. The same permission gate also allows a contributor to overwrite the site's global Templately cloud connection via the /templately/v1/login endpoint with global_signin set to true. A complete remediation should both correct fetch_remote_file to validate the file type against the actual destination filename rather than the Content-Disposition header (and avoid deriving the write path from the request URL), and restrict state-changing Templately REST routes to an appropriate administrator-level capability.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS