Środki tymczasowe są niepełne

Tylko pełna poprawka obejmuje warianty. Ustawienia mogą pogorszyć wysyłanie, wydajność i dostępność. Stosuj administracyjnie przed parsowaniem i restartuj wszystkie procesy. Czytaj oba komunikaty. CDN i WAF nie dowodzą naprawy PHP.

Ostrożnie z pamięcią

memory_limit=-1 usuwa część kontrolowanych OOM PHP, nie błędy alokacji systemu. Potrzebne niezależne limity kontenera lub cgroup. Nie stosuj RLIMIT_AS ani RLIMIT_DATA. Ogranicz rozmiar po dekodowaniu, nagłówki multipart, części i zagnieżdżenie; post_max_size nie wystarczy.

Postęp wysyłania i backtrace

Ustaw session.upload_progress.enabled=0 przed parsowaniem i zrestartuj. PHP 8.5 fatal_error_backtraces=0 blokuje tylko potwierdzoną ścieżkę. Usuń błędne wczesne ustawienia INI. display_errors, error_reporting i @ nie eliminują błędu. Żadne ustawienie nie obejmuje wszystkich wariantów.

Środki tymczasowe według ścieżek

Najpierw poprawka. Tymczasowo wymuś administracyjnie session.upload_progress.enabled=0 przed parsowaniem żądania i zrestartuj procesy. W PHP 8.5 fatal_error_backtraces=0 ogranicza inną ścieżkę. Ogranicz wcześnie rozkodowany rozmiar, części/nagłówki multipart i głębokość. Testuj upload. Wyłączenie wyświetlania błędów lub logów nie blokuje diagnostyki.

Narzędzia PHP2Shell →

Granice pamięci i recyklingu

Administracyjne memory_limit=-1 usuwa tylko część ścieżek OOM i wymaga niezależnych ograniczeń cgroup/kontenera. Zablokuj przywrócenie skończonego limitu przez aplikację i zrestartuj. Nigdy RLIMIT_AS ani RLIMIT_DATA: błędy alokatora mogą uruchomić lukę. pm.max_requests=1 ogranicza część stanu między żądaniami dużym kosztem. To nie zastępuje obu poprawek.

Narzędzia PHP2Shell →

Przykładowe polecenie / PHP INI

php.ini
; Temporary measures only. Follow both PHP advisories.
; Apply administratively BEFORE request parsing, then restart workers.
session.upload_progress.enabled = 0
; PHP 8.5 only:
fatal_error_backtraces = 0

; memory_limit = -1 is NOT a complete fix.
; It needs independent OS/container resource containment.
; Never substitute RLIMIT_AS or RLIMIT_DATA.

Źródła pierwotne i dalsze materiały

PHP security teamSecurity advisory · 21 Oct 2026
CVE-2026-109618GHSA-w8hw-w9fx-j79w · OOM corruption
CVE-2026-109619GHSA-6wmf-4rv5-p3rp · Stale global state
Następny krok3. Zrestartuj i zweryfikuj wszystko ↗