Dream a rapporté qu’une campagne combinant PHP2Shell et Fragnesia avait permis d’obtenir les droits root sur 24 pare-feu Palo Alto Networks sous PAN-OS et sur un serveur interne de gestion de pare-feu, soit 25 systèmes. Les interfaces de gestion visées se trouvaient aux États-Unis, au Japon, à Taïwan et en Corée du Sud. L’attaque du serveur interne a eu lieu le 24 octobre 2026, selon Dream, qui dit avoir découvert des artefacts de la campagne le 25 octobre.
Une campagne ciblée sur des pare-feu PAN-OS
Dream décrit une attaque contre des interfaces de gestion exposées. L’opération a commencé par le repérage d’environ 19 000 pare-feu. Environ 5 000 ont renvoyé des informations de version, puis 240 appareils ont été retenus comme cibles. Vingt-quatre pare-feu ont finalement été compromis. Trois systèmes, dont deux pare-feu et le serveur interne, étaient associés à un environnement affilié au gouvernement américain.
Sur 22 des 24 pare-feu compromis, Dream a trouvé des webshells, sans activité ultérieure enregistrée au-delà de cet accès initial. Les deux autres pare-feu, associés au même environnement gouvernemental, ont servi à atteindre des systèmes internes. Dream indique que l’équipe Unit 42 de Palo Alto Networks a vérifié de manière indépendante les outils et les résultats de l’attaque.
NeoTeo avait déjà relaté les tentatives de PHP2Shell repérées par AWS autour de SuperTuxKart. Ce précédent article sur l’incident portait sur une autre situation ; l’enquête de Dream concerne des pare-feu PAN-OS.
PHP2Shell et Fragnesia, deux étapes vers les droits root
PHP2Shell regroupe deux vulnérabilités de PHP, CVE-2026-109618 et CVE-2026-109619. Dream décrit une implémentation personnalisée et non publique, conçue pour cibler le serveur web de gestion de PAN-OS, qui dessert aussi le portail GlobalProtect. L’attaque exploitait le mécanisme PHP session.upload_progress pour exécuter du code avec les droits limités de l’utilisateur système nobody.
La seconde étape reposait sur Fragnesia, une faille d’élévation de privilèges du noyau Linux, identifiée comme CVE-2026-46300. Selon Dream, elle a permis de passer de l’exécution sous nobody aux droits root en modifiant des données d’authentification locales.
Dream signale PHP 8.0.30 dans les profils PAN-OS 12.1 et 12.2. Sur un profil PAN-OS 11.1 utilisant PHP 7.4.33, l’exécution de code PHP à distance a été vérifiée en laboratoire, mais le profil n’avait pas été calibré pour la chaîne complète. La campagne décrite porte donc sur une implémentation visant PAN-OS et sur les profils mentionnés, et non sur une attaque démontrée contre n’importe quel pare-feu ou site PHP.
Un tunnel SSH a conduit au réseau interne
Le 24 octobre à 10 h 09 UTC, l’attaquant a compromis un second pare-feu lié à l’environnement affilié au gouvernement américain, selon Dream. À 11 h 35 UTC, il a utilisé un tunnel SSH inversé pour atteindre le serveur interne de gestion, compté comme le 25e système compromis. Le tunnel transférait huit ports vers des services internes et était configuré pour survivre aux redémarrages.
Dream rapporte aussi le déchiffrement du mot de passe d’un compte de service LDAP et l’énumération des utilisateurs et des groupes Active Directory. Les artefacts retrouvés comprenaient également des clés privées extraites des systèmes de fichiers PAN-OS, la topologie du réseau et une quarantaine de scripts personnalisés. Dream n’a pas pu déterminer si les tentatives ultérieures de password spraying, de création de comptes dérobés ou d’extraction de clés SAML avaient abouti.