Tous les serveurs ScopServ exécutant PHP 7.4 sur Rocky Linux 8 doivent être mis à jour vers php 7.4.33-8.module+el8.10.0+40393+c071e357 (publié le 21 octobre 2026), qui corrige les vulnérabilités CVE-2026-109618 et CVE-2026-109619. Le script php74-security-update.sh applique la mise à jour et vérifie que la version corrigée est installée.
Les deux vulnérabilités (« PHP2Shell », divulguées le 21 octobre 2026) se trouvent directement dans le moteur PHP. Un site Web peut donc être exposé même si son propre code ne présente aucune faille. Les deux vulnérabilités ont un score CVSS v4.0 de 9,2 et peuvent permettre l'exécution de code à distance sans authentification avec PHP-FPM, mod_php, php-cgi et d'autres interfaces SAPI Web.
| CVE | Vulnérabilité | CVSS v4.0 | Version corrigée (Rocky Linux 8) |
|---|---|---|---|
| CVE-2026-109618 | Corruption de mémoire lorsque PHP manque de mémoire pendant le traitement d'une requête; le processus de nettoyage utilise des données partiellement initialisées. Peut être déclenchée par des requêtes multipart spécialement conçues, même en respectant les limites de taille configurées. | 9,2 | php 7.4.33-8 (RLSA-2026:87080) |
| CVE-2026-109619 | Utilisation de mémoire après libération (use-after-free) entre plusieurs requêtes : un état laissé par une requête pointe vers une zone mémoire libérée, puis réutilisée par une requête ultérieure traitée par le même processus. | 9,2 | php 7.4.33-8 (RLSA-2026:87080) |
Vecteur CVSS pour les deux vulnérabilités : CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Aucune nouvelle version officielle de PHP 7.4 n'a été publiée; seuls des correctifs rétroportés dans le code source sont disponibles. Le paquet Rocky Linux 7.4.33-8 intègre ces correctifs. Des preuves de concept (PoC) publiques existent, mais leur fiabilité demeure limitée. Des tentatives d'exploitation ont été signalées depuis la divulgation (Rapid7, Tenable).
Si un serveur ne peut pas être mis à jour immédiatement, il est possible de réduire temporairement son exposition (sans corriger complètement les vulnérabilités) : définissez memory_limit=-1 et session.upload_progress.enabled=0 dans le fichier php.ini du système, de manière à empêcher les applications de remplacer ces valeurs, puis exécutez systemctl restart scopserv.
Tout serveur Rocky Linux 8 utilisant le module php:7.4 avec une version antérieure à 7.4.33-8 est concerné. Pour vérifier un serveur :
rpm -q php-common
7.4.33-7 ou antérieure : **vulnérable**, appliquez la mise à jour.7.4.33-8.module+el8.10.0+40393+c071e357 : **corrigée**.Tous les paquets php-* du module (cli, fpm, mysqlnd, gd, ldap, mbstring, opcache, pdo, snmp, xml, etc.) doivent être mis à jour vers la même version. Le paquet php-pecl-zip n'est pas concerné et demeure à la version 1.18.2-1.
Le script met à jour PHP à partir des dépôts Rocky Linux, puis retourne une erreur (code de sortie 1) si la version installée ne correspond pas exactement à la version corrigée.
/etc/rocky-release).php:7.4 (dnf -y module enable php:7.4).dnf clean all) afin de forcer la récupération des métadonnées les plus récentes des dépôts.dnf update php). Cette étape demande une confirmation : répondez y.php-common correspond à 7.4.33-8.module+el8.10.0+40393+c071e357 et que php -v affiche built: Oct 21 2026.Si toutes les vérifications réussissent, le script affiche SUCCESS: PHP security update verified!. Le script ne redémarre aucun service.
Exécutez les commandes suivantes en tant que root sur chaque serveur concerné, pendant une fenêtre de maintenance (les pages PHP peuvent présenter des erreurs pendant quelques secondes lors du remplacement des paquets).
Téléchargez le script :
wget --no-check-certificate -O /var/www/scopserv/scripts/php74-security-update.sh https://scm.scopserv.com/files/1/4/f/14f9fbf5f11fe3d82bd5f53e3ae1ca05.phps
Exécutez le script et répondez y lorsque DNF demande de confirmer la mise à jour :
sh /var/www/scopserv/scripts/php74-security-update.sh
Redémarrez le service Web ScopServ avec systemctl restart scopserv.
Le certificat de scm.scopserv.com est normalement valide. L'option --no-check-certificate n'est donc pas nécessaire; la retirer protège contre l'exécution, en tant que root, d'un script téléchargé qui aurait été altéré.
Le serveur est corrigé lorsque le script se termine avec le message SUCCESS: PHP security update verified!. Pour effectuer une vérification manuelle :
rpm -q php-common
php -v | head -1
rpm -q --changelog php-common | head -3
Résultat attendu :
php-common-7.4.33-8.module+el8.10.0+40393+c071e357.x86_64
PHP 7.4.33 (cli) (built: Oct 21 2026 17:33:12) ( NTS )
* Wed Oct 21 2026 Jitka Plesnikova <jplesnik@redhat.com> - 7.4.33-8
- Avoid state corruption via bailout
CVE-2026-109618, CVE-2026-109619
Vérifiez également que tous les paquets PHP utilisent la même version : rpm -qa 'php*' | sort ne devrait afficher que des paquets de la version 7.4.33-8 (à l'exception de php-pecl-zip-1.18.2-1).
| Message du script | Cause | Solution |
|---|---|---|
This script must be run as root. | Le script n'a pas été exécuté en tant que root. | Exécutez de nouveau le script en tant que root. |
This script requires Rocky Linux 8. | Le serveur n'utilise pas Rocky Linux 8. | N'utilisez pas ce script; appliquez le correctif à partir des dépôts propres au système d'exploitation. |
Operation aborted. (de DNF), puis arrêt du script | La confirmation a été refusée (N) ou le script a été exécuté sans terminal interactif (cron, pipe). | Relancez le script de manière interactive et répondez y. |
Expected PHP RPM release not installed. | Le miroir ne contient pas encore la version 7.4.33-8 ou un autre module php est activé. | Exécutez dnf clean all, vérifiez que dnf module list php affiche 7.4 [e], puis réessayez plus tard si le miroir n'est pas encore à jour. |
Expected PHP RPM release not installed. (la version installée se termine par .remi ou un identifiant d'un autre fournisseur) | PHP provient d'un autre dépôt (par exemple Remi), qui distribue son propre correctif sous un numéro de version différent. | Le script ne s'applique pas : ne changez pas de dépôt. Vérifiez l'origine des paquets avec dnf list installed 'php*', effectuez la mise à jour à partir de ce dépôt (dnf update 'php*'), puis confirmez que rpm -q --changelog php-common mentionne CVE-2026-109618 et CVE-2026-109619. Si ces CVE sont absentes, le fournisseur n'a pas encore publié le correctif. |
PHP build date does not match Oct 21 2026. | L'exécutable php trouvé dans le PATH ne correspond pas à celui du paquet RPM. | Vérifiez que which php retourne /usr/bin/php. |
Retour à une version antérieure (uniquement si la nouvelle version cause des problèmes) : dnf downgrade 'php*' permet de revenir à la version précédente disponible dans le dépôt, qui est **vulnérable**. Prévoyez de réappliquer le correctif dès que possible.
php-common-7.4.33-8.module+el8.10.0+40393+c071e357 (rpm -q --changelog php-common) — source de la description du correctif et des identifiants CVE mentionnés ci-dessus.scripts/php74-security-update.sh du dépôt ScopServ Core, commit 852b950).