
حزم تصحيحات غير رسمية لثغرات PHP CVE-2026-109618 / CVE-2026-109619 (تنفيذ تعليمات عن بُعد RCE، بدرجة CVSS 9.2) على المنصات التي انتهى دعمها: PHP 7.3 على CentOS/RHEL 7 (Remi)، وPHP 5.4 على Amazon Linux 2، وPHP 5.3 على Amazon Linux 1
نسخ خلفية غير رسمية من التخفيف الأدنى الذي أصدره فريق أمان PHP للثغرتين الحرجتين اللتين لا تتطلبان مصادقة وتتيحان تنفيذ تعليمات برمجية عن بُعد، والمُعلن عنهما في 2026-10-21:
| CVE | الإشعار | الملخص |
|---|---|---|
| CVE-2026-109618 | GHSA-w8hw-w9fx-j79w | تنفيذ تعليمات برمجية عن بُعد عبر تلف ناتج عن نفاد الذاكرة (CVSS 4.0: 9.2) |
| CVE-2026-109619 | GHSA-6wmf-4rv5-p3rp | تنفيذ تعليمات برمجية عن بُعد عبر حالة عامة قديمة (CVSS 4.0: 9.2) |
أصلح المشروع الأصلي PHP 8.2.35 و8.3.36 و8.4.27 و8.5.12، ونشر تخفيفات دنيا على مستوى المصدر فقط لإصدارات 7.4 و8.0 و8.1. لا أحد ينشر إصلاحًا للمنصات أدناه، لذلك يوفّر هذا المستودع تصحيحات ونصوص بناء قابلة لإعادة الإنتاج لها.
غير مرتبط بمجموعة PHP، ولا بـ Remi Collet، ولا بـ Amazon. لا ضمان. اقرأ القيود قبل النشر.
php7.3 7.3.33-35 على نقل منفصل للإصدار 7.3
لنفس الالتزام الأصلي. تصحيح EL7 هنا يغيّر نفس الملفات السبعة عشر، والتغييرات الجوهرية
متطابقة سطرًا بسطر (التفاصيل في docs/TESTING.md).tests/verify.sh عن PATCHED لكل منها.| نظامك | مصدر حزمة PHP | ما يجب استخدامه |
|---|---|---|
| CentOS 7 / RHEL 7 | Remi php73 (مثل php-7.3.33-14.el7.remi) | patches/php-7.3.33-remi22-el7-… + build/el7-php73/build.sh |
| Amazon Linux 2 | Amazon php-5.4.16-46.amzn2.* | patches/php-5.4.16-amzn2-… + build/amazon-linux/build.sh amzn2 |
| Amazon Linux 1 (AMI 2017.03 / 2018.03) | Amazon php-5.3.29-1.8.amzn1 | patches/php-5.3.29-amzn1-… + build/amazon-linux/build.sh amzn1 |
| Ubuntu / Debian مع PPA الخاص بـ Sury، PHP 7.3 / 7.4 / 8.0 / 8.1 | deb.sury.org | لا شيء من هنا. قم بالترقية إلى Sury 7.3.33-35 أو 7.4.33-31 أو 8.0.30-25 أو 8.1.34-9 (أو أحدث). فهي تحتوي بالفعل على الإصلاح (debian/patches/*-Avoid-state-corruption-via-bailout.patch)، رغم أن سجلات تغييراتها لا تذكر ثغرتي CVE. |
Ubuntu 24.04 توزيعة php8.3 | أرشيف Ubuntu | قم بالترقية إلى 8.3.6-0ubuntu0.24.04.13 أو أحدث. |
| PHP 8.2 أو أحدث من أي مصدر | — | قم بالترقية إلى 8.2.35 / 8.3.36 / 8.4.27 / 8.5.12 أو أحدث. |
يتطلب Docker على جهاز البناء (أي نظام تشغيل). تُنفَّذ عمليات البناء بالكامل داخل حاويات
توزيعة الهدف، لذا تُثبَّت حزم RPM الناتجة باستخدام yum localinstall مباشرة.
git clone https://github.com/leonlai-tw/php-eol-cve-2026-109618-109619.git
cd php-eol-cve-2026-109618-109619
# CentOS 7 / RHEL 7 + Remi PHP 7.3 -> ./work-el7/out/
build/el7-php73/build.sh
# Amazon Linux 2 + PHP 5.4 -> ./work-amzn2/out/
build/amazon-linux/build.sh amzn2
# Amazon Linux 1 + PHP 5.3 -> ./work-amzn1/out/
build/amazon-linux/build.sh amzn1
تُصدَر الحزم الناتجة بإصدار <vendor version>.cvefix1 (على سبيل المثال
php-7.3.33-22.cvefix1.el7، php-5.4.16-46.amzn2.0.7.cvefix1)، لذا تُرتَّب دائمًا كأحدث من
حزمة المورّد التي تحلّ محلها.
ثبّت فقط الحزم الموجودة لديك بالفعل، ثم أعد تشغيل PHP:
# on the target host, inside the directory holding the built RPMs
yum localinstall $(for p in $(rpm -qa 'php*' --qf '%{NAME}\n'); do ls ${p}-[0-9]*.cvefix1*.rpm 2>/dev/null; done)
systemctl restart php-fpm # or: apachectl graceful (mod_php)
يجب أيضًا إعادة تشغيل عمليات PHP طويلة الأمد (Swoole/Octane، وعمال قوائم الانتظار، وشياطين cron)؛ وإلا فإنها تستمر في تشغيل الملف التنفيذي القديم.
rpm -q php-cli # must end in .cvefix1
tests/verify.sh # prints PATCHED / NOT PATCHED
tests/verify.sh يشغّل عملية CLI واحدة بحد ذاكرة 16 ميغابايت ويتحقق من السلوك القابل للملاحظة للتخفيف الأدنى: عند نفاد الذاكرة تخرج العملية بالرمز 1 دون تشغيل دوال الإغلاق (PHP غير المُرقّع يخرج بالرمز 255 ويشغّلها).
لتأكيد أن PHP-FPM قيد التشغيل يستخدم الملف التنفيذي الجديد:
p=$(pgrep -o -f 'php-fpm: master'); sha256sum /proc/$p/exe /usr/sbin/php-fpm # hashes must match
نفس التصميم الموجود في الالتزام الأصلي 712e60f9ed
("Avoid state corruption via bailout"، الفرع PHP-7.4-CVE-2026-109618-109619):
_exit(1)؛ ويبدأ PHP-FPM / Apache
عاملًا جديدًا. وينطبق الأمر نفسه على أخطاء "Possible integer overflow in memory
allocation".Content-Disposition وContent-Type فقط
ويتجاهل التكرارات، لذا لم يعد بإمكان طلب صغير أن يجعل PHP يخصص كميات هائلة من الذاكرة.session.upload_progress (المصدر المؤكد لـ CVE-2026-109619).modules_activated، وحالة معالجة الاستثناءات/الأخطاء
في المنفذ، ورؤوس القوائم المترابطة)، بحيث لا يمكن لطلب لاحق أن يرى حالة محرَّرة.التفاصيل لكل ملف وكيفية إجراء كل نقل: docs/PROVENANCE.md. نتائج الاختبار: docs/TESTING.md.
memory_limit ينهي عملية العامل الخاصة به؛ ومع mod_php يرى
العميل اتصالًا منقطعًا بدلًا من صفحة HTTP 500؛register_shutdown_function() بعد خطأ نفاد الذاكرة؛session.upload_progress يبلّغ عن التقدم.7.3.33-22. إذا كنت تشغّل حاليًا آخر حزمة ثنائية من Remi
لـ EL7 (7.3.33-14)، فستحصل أيضًا على ترقيعات Remi الأمنية من -15 إلى -22
(CVE-2024-4577، CVE-2024-8925/8926/8927، CVE-2024-8929، CVE-2024-11233/11234/11236،
CVE-2025-14178، CVE-2026-6735، CVE-2026-14355، CVE-2026-7260، CVE-2026-17543 وغيرها).amazonlinux:2018.03 وتتطلب
openssl ≥ 1.0.2k (libcrypto.so.10(OPENSSL_1.0.2)). يجب على المضيفين الذين ما زالوا
على openssl 1.0.1k ترقية openssl من amzn-updates أولًا.تم بناؤه ونشره في الإنتاج بواسطة المؤلف في 2026-10-22 (خوادم ويب CentOS 7 / PHP-FPM، وAmazon Linux 2 و1 / mod_php). المشكلات وطلبات السحب مرحّب بها؛ ولا يوجد أي التزام بالدعم.