← Notatki

WordPress łata lukę RCE przez upload plików z ukrytym PostScriptem

Wydanie bezpieczeństwa WordPress 7.0.4 (oraz backporty do wszystkich wspieranych gałęzi aż do 4.7) usuwa krytyczną lukę CVE-2026-65640 (CVSS 8.8). Podatność pozwalała uwierzytelnionemu użytkownikowi z uprawnieniem do wgrywania mediów – czyli m.in. domyślnej roli Autora – na zdalne wykonanie kodu (RCE) na podatnym serwerze.

Źródłem problemu był rozdźwięk między walidacją w WordPressie a biblioteką przetwarzania obrazów:

  • Niespójna walidacja: Core WordPressa weryfikował typ pliku głównie na podstawie rozszerzenia, podczas gdy rozszerzenie PHP Imagick analizowało faktyczną zawartość binarną.
  • Łańcuch ataku: Użytkownik z rolą Autora mógł wgrać plik z pozornie bezpiecznym rozszerzeniem .png, zawierający ukryty kod PostScript. Imagick wykrywał format PostScript i przekazywał plik do Ghostscripta, który wykonywał go bezpośrednio jako program w systemie operacyjnym.
  • Warunki podatności: Atak był możliwy wyłącznie na serwerach z aktywnym rozszerzeniem PHP Imagick oraz zainstalowanym pakietem Ghostscript, przy dostępie do konta z uprawnieniem upload_files.
  • Wdrożona łatka: W pliku wp-includes/class-wp-image-editor-imagick.php wprowadzono inspekcję pierwszych 1445 bajtów pod kątem sygnatur magic bytes, usuwanie mylących prefiksów formatu oraz blokowanie plików PostScript maskowanych jako inne formaty.

Perspektywa StackCompass: Ten incydent przypomina o dwóch fundamentalnych zasadach architektury. Po pierwsze, higiena ról użytkowników – zewnętrzni autorzy i freelancerzy powinni domyślnie otrzymywać rolę Współtwórcy (Contributor, bez prawa wgrywania plików), a nie Autora. Po drugie, każda zależność runtime w środowisku PHP (jak ImageMagick czy Ghostscript) poszerza powierzchnię ataku serwera. Na stronach statycznych i hostingach edge ten wektor ataku w ogóle nie istnieje.

Źródło: DEV Community

← Notatki