Профиль: Аноним (вход | регистрация) неRU opennet.me  
OpenNET

[ новости /+++ | форум | теги |    ]

Раскрыты детали критических уязвимостей в PHP и опубликованы корректирующие обновления

21.10.2026 17:45 (MSK)

Опубликованы корректирующие выпуски PHP 8.5.12, 8.4.27, 8.3.36 и 8.2.35, а также патчи для уже не поддерживаемых веток PHP 7.4, PHP 8.0 и PHP 8.1, в которых исправлены две критические уязвимости:

  • CVE-2026-109618 - удалённое выполнение кода, вызванное тем, что при исчерпании доступной процессу свободной памяти обработчик нехватки памяти через выполнение функции longjmp() может прервать PHP-интерпретатор в состоянии, когда инициализирована лишь часть внутренних структур, связанных с обработкой запроса. В последующем функция завершения обработки запроса обращается к этим структурам как к уже инициализированным, хотя память для них не выделена.

    Основным вектором атаки является манипуляция с multipart-запросами для создание условий для исчерпания доступной процессу памяти. Для обхода лимита post_max_size может не указываться заголовок Content-Length и передаваться огромное число HTTP-заголовков. Возможно проведение и точечных атак на конкретные операции в php-приложениях, чрезмерно расходующих память. Наличие эксплоита подтверждено для mod_php, так как он вызывает функцию shutdown() даже при сбое. PHP-FPM при сбое завершат дочерний процесс, что затрудняет проведение атаки, но теоретически её не исключает.

  • CVE-2026-109619 - удалённое выполнение кода, вызванное обращением к памяти после её освобождения из-за некорректной очистки глобального состояния, привязанного к конкретному запросу. В случае прерывания запроса из-за фатальной ошибки, таймаута или нехватки памяти глобальное состояние может оказаться не сброшено и указатели останутся активны, несмотря на освобождение памяти, на которую они ссылаются. При обработке следующего запроса в том же процессе может произойти обращение по оставшемуся указателю к старому глобальному состоянию.

    Для эксплуатации может использоваться создание условий исчерпания доступной памяти при обработке multipart-запроса в коде для индикации прогресса загрузки (session.upload_progress). При этом в качестве основного и подтверждённого вектора атаки упоминается обработчик fatal_error_backtraces в PHP 8.5, который не сбрасывает состояние трассировки при завершении. В первом случае атака возможна на mod_php и PHP-FPM, а во втором только на mod_php. Также упоминается неподтверждённая возможность проведения атаки в конфигурациях, в настройках которых имеются директивы, приводящие к выводу предупреждений на ранней стадии обработки запроса (например, предупреждения об использовании устаревших параметров).

Заявлено, что полное блокирование уязвимостей возможно только через установку обновления. Следующие меры позволяют снизить вероятность успешного проведения атак, но не делают систему полностью безопасной:

  • Выставление в php.ini параметра "memory_limit=-1", что затрудняет возможность атакующего контролировать исчерпание лимитов на память.
  • Выставление параметра "post_max_size = 8M", если нет необходимости в загрузке больших файлов. Значение параметра "upload_max_filesize" должно быть меньше параметра "post_max_size".
  • Задание лимита на допустимое потребление памяти на системном уровне, через cgroup memory.max или параметры потребления памяти контейнером, но не через системные лимиты RLIMIT_AS и RLIMIT_DATA, которые лишь провоцируют проблемный вызов longjmp().
  • Если производительность не важна можно ограничить число запросов, обрабатываемых одним рабочим процессом через pm.max_requests=1 в PHP-FPM и MaxRequestsPerChild в Apache httpd.
  • Выставление на уровне php.ini или конфигурации сервера (не через ini_set() или FPM .user.ini, так как параметр должен действовать до начала обработки запроса) параметра "session.upload_progress.enabled=0".
  • При использовании выпуска PHP 8.5 следует установить параметр "fatal_error_backtraces=0".
  • Удаление привязанных к отдельным запросам устаревших или ошибочных настроек (типа assert.* и неверных путей в open_basedir), приводящих к выводу диагностических сообщений до инициализации.
  • Устранение в PHP-коде ситуаций, приводящих к достижению таймаутов и фатальных ошибок, например, связанных со сбоями в callback-обработчиках и обработкой загрузок.
  • Для блокирования первой уязвимости в коде старых версий PHP можно заменить вызов longjmp() в обработчике исчерпания свободной памяти на _exit().
  • Дополнительно можно уменьшить значение параметра max_input_nesting_level в php.ini и блокировать multipart-запросы, как было показано в предварительном анонсе.

Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах: Debian, Ubuntu, SUSE, RHEL, Gentoo, Arch, Fedora, FreeBSD.

  1. Главная ссылка к новости (https://www.php.net/...)
  2. OpenNews: Уязвимость в PHP, потенциально позволяющая скомпрометировать любой PHP-сайт
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/66520-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (33) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 18:16, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/–
    Да, это грустно. особенно грустно тем у кого nextcloud в докерах которые тоже теперь надо обновлять.
     
     
  • 2.7, Ivan_83 (ok), 18:35, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    И как это касается некстклаудщиков? У вас регистрация и загрузка файлов открыта?
     
     
  • 3.17, МИСАКА (?), 18:46, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/–
    уязвимость в ядре php, т.е. ей подвержен даже "echo 'helloworld'"
     
     
  • 4.20, Ivan_83 (ok), 18:53, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Значит надо заставить процесс пхп работать в окружении где он ничего кроме вывода этой строчки сделать не сможет :)

    Обычно так и делают, в местах где не хотят чтобы всё поропало после первой же обнаруженной уязвимости или кривого конфига.

     
     
  • 5.38, Аноним (38), 19:40, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > в местах где не хотят чтобы всё поропало

    В таких местах и на php не пишут ¯\(ツ)/¯

     
  • 5.40, Аноним (40), 19:41, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > Значит надо заставить процесс пхп работать в окружении где он ничего кроме вывода этой строчки сделать не сможет :)

    Отрезать н̶о̶ж̶к̶ провод интернета?

    Новости про очередную дырень с выходом из контейнера или получением рута публикуются регулярно.

     
  • 3.19, пох.. (?), 18:51, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    а зачем? оно ж сначала разбирает параметры запроса а только потом начинает его обрабатывать.
    так что есть рот - значит берет.

    В смысле никакая регистрация и не нужна.

     
     
  • 4.21, Ivan_83 (ok), 18:55, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Просто тут многие бегают с upload_progress а я не особо вчитывался - у меня пхп зажат в тиски средствами ОС и мне мало интересны интимные подробности где у него технологические отверстия и какой размер резьбы потребудется от болта :)
     
  • 2.8, Аноним (38), 18:35, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    > в докерах

    В невзламываемых чрутах на неуязвимой FrreBSD.

     
  • 2.16, Аноним (16), 18:46, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Ну все, пора и его на раст переллмить
     
  • 2.28, Аноним (28), 19:02, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/–
    > Да, это грустно

    ...когда приходится переходить с php на Perl.

     

  • 1.2, Аноним (2), 18:22, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    А фикс через nginx указанный тут https://www.opennet.ru/opennews/art.shtml?num=66516 таки актуален?
     
     
  • 2.5, Аноним (5), 18:30, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Только для 1 из 3 векторов атаки с использованием второй уязвимости. От первой уязвимости он не защищает.
     

  • 1.3, Аноним (3), 18:23, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    >полное блокирование уязвимостей возможно только через установку обновления

    https://github.com/php/php-src/releases

     
     
  • 2.46, Аноним (3), 20:13, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    Через гитхаб т.к. и php.net и packagist.org у нас заблочены кое-кем.
     

  • 1.4, Аноним (4), 18:24, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/–
    Хехехе))
    Шышные дыpeни отстрелили ногу ПЫХе аж по версию 5.4.
    А исправили только до PHP 7.4.
     
     
  • 2.6, Аноним (6), 18:32, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/–
    Это были неправильные сишники, бойцы с растом не дадут соврать.
     

  • 1.9, Аноним (2), 18:37, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    им с версии 7.0 нужно уже вводить режим strict типа как у nodejs и ВЫБРАСЫВАТЬ всякие фичи из языка, а они наоборот продолжают тянуть туда всякую не нужную хрень
     
  • 1.10, Аноним (10), 18:39, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Эх, то ли ещё будет. Дешёвые и очень производительные "нейронки" открывают ТАКОЙ ящик Пандоры... Охренеем все.
     
     
  • 2.18, Ivan_83 (ok), 18:51, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Уже открыли, ещё пол года-год и ручеёк иссякнет до следующего технологического прорыва.

    Чтобы вы понимали это уже не первый раз в истории индустрии.

    Как минимум нечто похожее было с приходом статических анализаторов кода и с появлением фазинга.
    Просто во времена анализаторов тема бизапасносте была не так раскручена это всё считалось банальными багами не стоящими особого внимания.

     

  • 1.14, Аноним (14), 18:44, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/–
    Совершенно случайно автор коммита неизвестен.
     
  • 1.23, онанист (?), 18:56, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/–
    Опубликованы корректирующие выпуски - и когда их ещё завезут в дистрибутивы
     

  • 1.30, Аноним (30), 19:06, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Судя по описанию в CVE, авторы писали для курсовой работы, а не для публичного сервиса. Ни контрактных параметров, ни атомарности (всё или ничего). Доверие как в общаге. Всё как то пропустили этап, когда php перешел из общажной стенгазеты в широкий круг сайтов.
     
     
  • 2.35, Ivan_83 (ok), 19:14, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Кажется это только для вас является открытием.
    Даже я бегло читал историю Personal Home Page языка, и начиналось это ещё во времена cgi, тогда никаких таких параметров не было, а атомарность была только у военных, учёных и энергетиков, притом первые контролировали остальных :)
    Те у вас странные хотелки, уровня: а чего вы там в 90х ЫЫ не попросили код без ошибок переписать?
     
     
  • 3.42, Аноним (40), 19:42, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +/–
    А точно, закрывать тех долг это же не барское дело.
    Один раз наложили кучу кода - значит она может работать вечно.
    Логично, да)
     
  • 2.36, Аноним (36), 19:15, 21/10/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/–
    Никто этот момент не пропустил - PHP очень много раньше критиковали именно из-за любительского подхода к дизайну языка. И реализация у него такая же. Критиковали не зря.

    В современном PHP дизайн чуть улучшили, но груз времени и обратная совместимость - это вещь очень большая, вон до сих пор баги вылазят.

     

  • 1.37, Аноним (37), 19:22, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/–
    Хм, https://fedi.katze.sh/@elise/117479383739450605 что-то не сходится.

    Пишут что "still works on 8.5.12!"

     

  • 1.41, Аноним (41), 19:42, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    под угрозой более 40 % сайтов в интернете.
     

  • 1.47, vibecoder (-), 20:14, 21/10/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/–
    Очередная "уязвимость", которая работает только в тепличных (специально созданных) условиях. На практике нигде не сработает, иначе бы кулхацкеры давно пол интернета взломали.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    XSQUARE
    Inferno Solutions
    Hosting by Hoster.ru
    Хоcтинг: