<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>php &#8211; PT ESC</title>
	<atom:link href="https://ptesc.tech/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>https://ptesc.tech</link>
	<description></description>
	<lastBuildDate>Fri, 23 Oct 2026 15:56:09 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>

<image>
	<url>https://ptesc.tech/wp-content/uploads/2026/09/cropped-cropped-large_icon-32x32.png</url>
	<title>php &#8211; PT ESC</title>
	<link>https://ptesc.tech</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Очередная супер-пупер уязвимость угрожает всему миру</title>
		<link>https://ptesc.tech/another-super-duper-vulnerability-threatens-the-whole-world/</link>
		
		<dc:creator><![CDATA[global_author]]></dc:creator>
		<pubDate>Fri, 23 Oct 2026 15:41:00 +0000</pubDate>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[cve]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://ptesc.tech/?p=1902</guid>

					<description><![CDATA[21 октября были раскрыты две критические уязвимости PHP — CVE-2026-109618 и CVE-2026-109619, обе с CVSS 9.2. Их эксплуатация позволяет выполнять код без аутентификации с правами веб-сервера. Уязвимым можно считать PHP с версии…]]></description>
										<content:encoded><![CDATA[<p>21 октября были раскрыты две критические уязвимости PHP — <a href="https://nvd.nist.gov/vuln/detail/cve-2026-109618" rel="noopener" target="_blank">CVE-2026-109618</a> и <a href="https://nvd.nist.gov/vuln/detail/cve-2026-109619" rel="noopener" target="_blank">CVE-2026-109619</a>, обе с CVSS 9.2. Их эксплуатация позволяет выполнять код без аутентификации с правами веб-сервера.</p>
<p>Уязвимым можно считать PHP с версии 5.4. Что интересно, уязвимости были найдены с помощью ИИшек (Gemini 4 Argon + GPT-5.6 Sol), а размер патча составляет больше 10 тысяч строк кода.</p>
<figure class="wp-block-image"><img width="1024" height="746" src="https://ptesc.tech/wp-content/uploads/2026/10/photo_640@23-10-2026_18-41-42-1024x746.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/10/photo_640@23-10-2026_18-41-42-1024x746.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/10/photo_640@23-10-2026_18-41-42-300x218.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/10/photo_640@23-10-2026_18-41-42-768x559.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/10/photo_640@23-10-2026_18-41-42.jpg 1280w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
<h3>В чем уязвимость</h3>
<p>Основная цель атакующего — вызвать фатальную ошибку, например Out-of-memory (OOM), в нужный момент при обработке PHP-интерпретатором входящего веб-запроса.</p>
<p>CVE связаны с тем, что PHP может ошибочно считать новый массив данных, который еще не успел проинициализироваться из-за ошибки OOM, проинициализированным. Это означает, что атакующий, заспамив память PHP специально подготовленными запросами, может добиться освобождения и выделения одного и того же участка памяти для разных массивов.</p>
<p>Как итог — у массива данных из-за ошибки OOM не успели проинициализироваться поля и указатели, в которых оказались данные из предыдущих запросов, управляемые злоумышленником. А при очистке памяти после ошибки PHP вызовет функции очистки массивов по адресам, управляемым злоумышленником. Именно поэтому эксплуатация этих двух уязвимостей требует серьёзной подготовки и объёмных HTTP-запросов.</p>
<blockquote>
<p><strong>Важно:</strong> из-за механизма рандомизации адресов ASLR атакующему необходимо добиться утечки памяти, чтобы узнать адрес функции, например, <code>system()</code>.</p>
</blockquote>
<h3>Как именно происходит эксплуатация</h3>
<p>Поскольку источник уязвимости находится глубоко и связан с механизмами освобождения и выделения памяти в PHP, способов ее эксплуатации несколько.</p>
<h5>1. Формы x-www-form-urlencoded</h5>
<p>Объем выделяемой памяти в процессе PHP здесь достигается за счет большой глубины вложенности параметров формы <code>(...[x])</code>. PHP учитывает новый элемент массива еще до его заполнения, а копирование длинного имени при обработке HTTP-запроса может превысить <code>memory_limit</code>, вызывая out-of-memory.</p>
<p>При очистке массива PHP принимает подложенные байты за готовый элемент. Разместив поддельный массив в нужной области памяти и подставив в него адрес функции, атакующий может заставить PHP вызвать ее при очистке.</p>
<h5>2. Отслеживание загрузки файлов</h5>
<p>При multipart-загрузке с включенным при помощи параметра PHP_SESSION_UPLOAD_PROGRESS отслеживанием прогресса загрузки PHP записывает статус загрузки в сессию — хранилище данных посетителя между запросами. Множество пустых файловых полей с вложенными именами также вызывают выделение огромного объёма памяти и ошибку OOM.</p>
<p>После OOM память может освободиться, а указатель на неё — сохраниться. Следующий запрос через upload progress может обратиться к ней повторно — это use-after-free (UAF). Если запрос попал в тот же процесс, переживший сбой, память уже может содержать данные атакующего.</p>
<blockquote>
<p><strong>Важно:</strong> поскольку злоумышленник может влиять непосредственно на структуру данных PHP-сессии, в одном из запросов ему удается вызвать утечку памяти PHP через заголовок <code>Set-Cookie: PHPSESSID=</code>, что позволяет довести эксплуатацию до выполнения команд.</p>
</blockquote>
<h4>3. Отчет о сбое в PHP 8.5.</h4>
<p>При включенном флаге <code>fatal_error_backtraces</code> (включен по умолчанию) PHP сохраняет список функций, выполнявшихся в момент фатальной ошибки. После завершения запроса память списка освобождается, но указатель остается. Сообщение об ошибке в начале следующего запроса заставляет PHP обратиться к нему снова, вызывая еще один <code>use-after-free</code>.</p>
<p>Новые репорты и PoC для этих уязвимостей появляются каждый день, из-за чего создавать детекты их эксплуатации становится еще сложнее. Однако для успешной эксплуатации и выполнения вредоносного кода злоумышленнику необходимо узнать точные адреса функций (например, <code>system</code>).</p>
<p>Полный эксплойт, выполняющий вредоносный код, пока известен только для способа с параметром <code>PHP_SESSION_UPLOAD_PROGRESS</code>.</p>
<figure class="wp-block-image"><img width="1024" height="362" src="https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-1024x362.jpg" class="attachment-large size-large" alt="" decoding="async" loading="lazy" srcset="https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-1024x362.jpg 1024w, https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-300x106.jpg 300w, https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-768x271.jpg 768w, https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-1536x543.jpg 1536w, https://ptesc.tech/wp-content/uploads/2026/10/photo_641@23-10-2026_18-41-42-2048x724.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
<h3>Сетевые артефакты</h3>
<p>У пока еще единственной известной полноценной цепочки атаки присутствует очевидный артефакт — параметр <code>PHP_SESSION_UPLOAD_PROGRESS</code> в теле запроса. Об успешной эксплуатации может свидетельствовать необычно длинное значение <code>PHPSESSID</code> в ответе с URL-кодированными байтами памяти.</p>
<p>Несмотря на то что сам параметр <code>PHP_SESSION_UPLOAD_PROGRESS</code> может использоваться и при обычных запросах, на практике этот параметр в сетевых запросах мы не встречали.</p>
<blockquote>
<p><strong>Важно:</strong> единого обязательного сетевого маркера для всех вариантов эксплуатации нет.</p>
</blockquote>
<h3>Что известно об атаках</h3>
<p>Специалисты Amazon <a href="https://aws.amazon.com/blogs/security/amazon-threat-intelligence-identifies-php2shell-exploitation-prior-to-public-disclosure-in-madpot/" rel="noopener" target="_blank">зафиксировали</a> попытки атак еще 17 октября. После раскрытия уязвимостей число попыток атак в сети Cloudflare выросло до миллионов, по словам главы компании.</p>
<h3>Как исправить</h3>
<p>Обновить PHP до 8.2.35, 8.3.36, 8.4.27, 8.5.12 или более новой исправленной версии своей ветки.</p>
<p>До обновления снизить риск помогут следующие настройки PHP:</p>
<ul>
<li><code>session.upload_progress.enabled=0</code> — перекрывает известные цепочки через upload progress;</li>
<li><code>fatal_error_backtraces=0</code> — перекрывает соответствующий путь на PHP 8.5;</li>
<li>ограничения размера и сложности запросов на веб-сервере или reverse proxy.</li>
</ul>
<p>Настройки должны действовать до разбора запроса: задайте их в <code>php.ini</code> или конфигурации сервера.</p>
<p>Для <a href="https://nvd.nist.gov/vuln/detail/cve-2026-109618" rel="noopener" target="_blank">CVE-2026-109618</a> разработчики PHP также предлагают установить <code>memory_limit=-1</code> с внешними ограничениями памяти на уровне контейнера/cgroup. Это частичная мера: системный отказ выделения памяти все еще может привести к уязвимому пути.</p>
<p><strong>Полностью исправляет обе уязвимости только обновление PHP.</strong></p>
<h3>Suricata-сигнатуры</h3>
<pre><code>alert http any any -&gt; any any (msg: &quot;ATTACK [PTsecurity] Possible PHP RCE Exploitation attempt. PHP upload progress in multipart request (PHP2Shell, CVE-2026-109618, CVE-2026-109619)&quot;; flow: established, to_server; http.content_type; content: &quot;multipart/form-data&quot;; startswith; nocase; http.request_body; content: &quot;PHP_SESSION_UPLOAD_PROGRESS&quot;; threshold: type limit, track by_src, count 1, seconds 300; reference: cve, 2026-109618; reference: cve, 2026-109619; reference: url, wiz.io/blog/php2shell-php-rce; classtype: attempted-admin; sid: 10018633; rev: 1;)

alert http any any -&gt; any any (msg: &quot;ATTACK [PTsecurity] Successful PHP RCE Exploitation. PHPSESSID memory leak (PHP2Shell, CVE-2026-109619)&quot;; flow: established, to_client; http.header.raw; content: &quot;Set-Cookie|3a|&quot;; nocase; content: &quot;PHPSESSID=&quot;; nocase; distance: 0; content: &quot;%&quot;; distance: 0; pcre: &quot;/Set-Cookie\x3a[\x20\x09]*PHPSESSID\x3d(?:[^\x3b\x25\r\n\x20\x09]{0,64}\x25(?:[0189a-f][0-9a-f]|7f)){12}/im&quot;; threshold: type limit, track by_dst, count 1, seconds 300; reference: cve, 2026-109619; reference: url, wiz.io/blog/php2shell-php-rce; classtype: successful-admin; sid: 10018632; rev: 3;)</code></pre>
<p><span class="hashtag">#cve</span> <span class="hashtag">#php</span></p>
<p><a href="https://t.me/ptescalator" rel="noopener" target="_blank">@ptescalator</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
