في 13 مارس 2025 أصدر مشروع PHP الإصدارات 8.4.5 و8.3.19 و8.2.28 و8.1.32، وأُعلن عن كل منها بوصفه إصدارًا أمنيًا. وتعالج هذه الإصدارات معًا خمس ثغرات في غلاف تدفقات HTTP وفي التعامل مع libxml، وثغرة استخدام ذاكرة بعد تحريرها عند إنهاء الطلب تخص الفرعين 8.3 و8.4 فقط، إضافةً إلى قراءة خارج الحدود في محلل XML منخفضة الخطورة لها إشعار على GitHub دون رقم CVE.
نظرة سريعة
| البند | التفاصيل |
|---|---|
| المنتج | PHP (php-src)، الفروع من 8.1 إلى 8.4 |
| الإصدارات المصححة | 8.4.5، 8.3.19، 8.2.28، 8.1.32 (13 مارس 2025) |
| الثغرات | CVE-2024-11235، CVE-2025-1217، CVE-2025-1219، CVE-2025-1734، CVE-2025-1736، CVE-2025-1861 إضافةً إلى GHSA-wg4p-4hqh-c3g9 (بلا رقم CVE) |
| الخطورة | متوسطة وفق إشعارات PHP على GitHub، بينما يحمل سجل CVE-2024-11235 درجة 9.2 وفق CVSS 4.0 |
| Debian 12 | الإشعار DSA-5878-1، الحزمة php8.2 بالإصدار 8.2.28-1~deb12u1 |
ما هي الثغرات
غلاف تدفقات HTTP وlibxml (الفروع الأربعة)
تتعلق خمسة من الإصلاحات بما يحدث عندما يجلب كود PHP عنوانًا عبر غلاف http:// المدمج، مثل استخدام file_get_contents() أو fopen()، أو عندما يحمّل ملف XML بعيدًا عبر DOM أو SimpleXML:
- CVE-2025-1217: كانت ترويسات الاستجابة المطوية (الممتدة على أكثر من سطر) تُحلَّل بشكل خاطئ، ما قد يؤدي إلى اعتماد ترويسات أو نوع MIME غير صحيح.
- CVE-2025-1734: كانت أسطر الترويسات الخالية من النقطتين تُقبل على أنها صحيحة، ما قد يربك الكود الذي يقرأ
$http_response_header. - CVE-2025-1736: ضعف التحقق من محارف نهاية السطر في ترويسات الطلب التي يمررها المستخدم قد يمنع إرسال بعض الترويسات، كترويسة التفويض، أو يؤدي إلى تفسيرها على نحو خاطئ.
- CVE-2025-1861: كانت قيمة
Locationفي إعادة التوجيه تُقتطع عند 1024 بايت، ما قد يُسقط جزءًا من العنوان أو يوجّه الطلب إلى مورد آخر. - CVE-2025-1219: عندما يتبع DOM أو SimpleXML إعادة توجيه، كانت مجموعة المحارف تُؤخذ من ترويسة
Content-Typeغير الصحيحة.
يصنّف مشروع PHP كل واحدة من هذه الثغرات بخطورة متوسطة، ويحمل سجل كل منها درجة 6.3 وفق CVSS 4.0.
استخدام ذاكرة بعد تحريرها عند إنهاء الطلب (8.3 و8.4 فقط)
الثغرة CVE-2024-11235 (الإشعار GHSA-rwp7-7vc6-8477) هي استخدام لذاكرة بعد تحريرها، يُبلغ عبر كود يجمع بين معالج __set أو العامل ??= وبين الاستثناءات. ويذكر وصف الثغرة أنه إذا تمكّن طرف خارجي من التحكم في ترتيب الذاكرة، كأن يرسل مدخلات مصممة إلى السكربت، فقد يؤدي ذلك إلى تنفيذ كود عن بُعد. يصنّفها إشعار PHP على GitHub بخطورة متوسطة، لكن سجل CVE الذي نشره المشروع يمنحها 9.2 (حرجة) وفق CVSS 4.0، لذا عاملها على أنها البند الأهم في الفرعين 8.3 و8.4.
قراءة خارج الحدود في محلل XML (كل الفروع)
الإشعار GHSA-wg4p-4hqh-c3g9، بخطورة منخفضة، هو عودة لخلل قديم: ضبط الخيار XML_OPTION_SKIP_TAGSTART بقيمة أكبر من طول اسم الوسم قد يؤدي إلى قراءة خارج الحدود وتسريب محتوى من الذاكرة.
لا تظهر أي من هذه الثغرات في كتالوج CISA للثغرات المستغلة فعليًا (وفق نسخة 30 أكتوبر 2026).
هل أنت متأثر؟
تحقق من إصدار PHP الذي يخدم مواقعك فعليًا، وليس إصدار سطر الأوامر فقط:
php -v
php -r 'echo PHP_VERSION, PHP_EOL;'
php-fpm8.2 -v # Debian/Ubuntu naming; change 8.2 to your branchأي بناء رسمي أقدم من 8.4.5 أو 8.3.19 أو 8.2.28 أو 8.1.32 متأثر. أما حزم التوزيعات فتختلف: إذ تنقل Debian وUbuntu الإصلاحات إلى أرقام إصدارات خاصة بها، فقارن رقم حزمتك بإشعار التوزيعة. في Debian 12 (bookworm) عالج الإشعار DSA-5878-1 ثغرات الغلاف وlibxml الخمس في الحزمة php8.2 بالإصدار 8.2.28-1~deb12u1:
dpkg -l 'php8.2*'
apt policy php8.2-fpm php8.2-cliإن كنت تستخدم Ubuntu فراجع إشعارات Ubuntu الأمنية الخاصة بإصدارك.
طريقة التحديث
- حزم Debian أو Ubuntu: نفّذ
sudo apt updateثمsudo apt upgrade. التحديث اليوم يثبّت أحدث بناء أمني لإصدارك، وهو يتضمن هذه الإصلاحات وما تلاها. - المستودعات الخارجية ولوحات التحكم: حدّث PHP عبر القناة نفسها التي ثبّته منها، ثم تأكد من الإصدار.
- البناء من المصدر وWindows: نزّل أحدث إصدار من فرعك من صفحة التنزيلات في php.net وتحقق من قيمة SHA-256 المنشورة.
- الحاويات: أعد بناء الصور على صورة أساس تتضمن PHP مصححًا ثم أعد النشر، فالحاوية العاملة تبقى على إصدارها القديم.
تجاوزت إصدارات مارس 2025 هذه إصدارات أحدث منذ زمن. فحتى 31 أكتوبر 2026 الإصدارات الحالية هي 8.5.12 و8.4.27 و8.3.36 و8.2.35، فانتقل إليها مباشرة. وقد انتهى دعم PHP 8.1 في 31 ديسمبر 2025، وكان آخر إصداراته 8.1.34.
هل تحتاج إلى إعادة تشغيل؟
لا حاجة لإعادة تشغيل الخادم. أعد تشغيل كل عملية طويلة الأمد حمّلت PHP:
sudo systemctl restart php8.2-fpm
sudo systemctl restart apache2 # only if you use mod_php (libapache2-mod-php8.2)وأعد كذلك تشغيل عمّال الطوابير والمجدولات وأي خدمات PHP أخرى تديرها Supervisor أو systemd. أما سكربتات سطر الأوامر فتستخدم الملف الجديد في تشغيلها التالي.
المصادر
- php.net/releases/8_4_5.php
- php.net/releases/8_1_32.php
- php.net/archive/2025.php
- php.net/ChangeLog-8.php#8.4.5
- github.com/php/php-src/security/advisories/GHSA-rwp7-7vc6-8477
- github.com/php/php-src/security/advisories/GHSA-wg4p-4hqh-c3g9
- github.com/php/php-src/security/advisories/GHSA-p3x9-6h7p-cgfc
- github.com/php/php-src/security/advisories/GHSA-hgf5-96fm-v528
- github.com/php/php-src/security/advisories/GHSA-52jp-hrpf-2jff
- github.com/php/php-src/security/advisories/GHSA-pcmh-g36c-qc44
- github.com/php/php-src/security/advisories/GHSA-v8xr-gpvj-cx9g
- cve.org/CVERecord?id=CVE-2024-11235
- nvd.nist.gov/vuln/detail/CVE-2024-11235
- cve.org/CVERecord?id=CVE-2025-1861
- security-tracker.debian.org/tracker/DSA-5878-1
- lists.debian.org/debian-security-announce/2025/msg00040.html
- packages.debian.org/source/bookworm/php8.2
- php.net/supported-versions.php
- php.net/eol.php
- cisa.gov/known-exploited-vulnerabilities-catalog
Comments
0 total · 0 threads