🔍 Contexte

Publié le 5 août 2026 sur le blog Calif.io, cet article présente wp2root, une chaîne post-exploitation développée par l’équipe Calif pour faire suite à wp2shell (RCE pré-authentifiée WordPress Core d’AssetNote). L’article est accompagné d’un dépôt PoC public.

🎯 Objectif de la chaîne

La chaîne wp2root part d’une exécution PHP contrainte (obtenue via wp2shell) et aboutit à un accès root sur le système Linux hôte, en contournant les restrictions PHP (disable_functions, filesystem read-only) et les protections noyau.

🔗 Étapes de la chaîne d’exploitation

  1. Exécution PHP contrainte via wp2shell (REST desync → SQL injection pré-auth → upload plugin → RCE PHP)
  2. UAF Serializable PHP : bug dans le chemin Serializable::unserialize() — appel récursif sans verrou de sérialisation → resize de table de propriétés → buckets libérés → zvals contrôlés par l’attaquant
  3. Lecture arbitraire via réinterprétation des zvals corrompus
  4. ROP auto-résolvant : fuite d’un pointeur de code live → localisation de l’image PHP en mémoire → résolution dynamique des gadgets → pivot de pile via destruction de tableau PHP corrompu
  5. Exécution de code natif : buffer marqué exécutable, saut vers le launcher PIC
  6. Copy Fail (LPE 2026) : écrasement du cache de pages noyau de /usr/bin/su (setuid-root) sans modifier le fichier disque → exécution du stub en tant que root
  7. Shell root fileless : helper ELF chargé via memfd_create + execveat(AT_EMPTY_PATH), aucun fichier écrit sur disque

⚙️ Techniques notables

  • Fileless execution : utilisation de memfd_create et execveat pour exécuter le helper en mémoire
  • Contournement FIM : le fichier /usr/bin/su sur disque n’est jamais modifié
  • ROP sans profil fixe : résolution dynamique des adresses à l’exécution
  • Accélération par IA : chaîne développée en moins d’une heure avec OpenAI Codex

📦 Artefacts publiés

  • Dépôt wp2root avec PoC complet, lab local, et write-ups détaillés
  • Composants : root_payload_launcher.asm, root_payload_helper.c

📰 Nature de l’article

Article de recherche offensive / publication technique avec PoC, visant à démontrer l’état de l’art de l’exploitation WordPress post-2026 et l’impact de l’IA sur la vitesse de développement d’exploits.

🧠 TTPs et IOCs détectés

TTP

  • T1190 — Exploit Public-Facing Application (Initial Access)
  • T1059.004 — Command and Scripting Interpreter: Unix Shell (Execution)
  • T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
  • T1055 — Process Injection (Defense Evasion)
  • T1620 — Reflective Code Loading (Defense Evasion)
  • T1027 — Obfuscated Files or Information (Defense Evasion)
  • T1548.001 — Abuse Elevation Control Mechanism: Setuid and Setgid (Privilege Escalation)
  • T1505.003 — Server Software Component: Web Shell (Persistence)
  • T1601 — Modify System Image (Defense Evasion)
  • T1610 — Deploy Container (Defense Evasion)

IOC

  • CVEs : CVE-2009-2854NVD · CIRCL
  • Fichiers : root_payload_launcher.asm
  • Fichiers : root_payload_helper.c
  • Chemins : /usr/bin/su
  • Chemins : wp-login.php

Malware / Outils

  • wp2shell (tool)
  • wp2root (framework)

🟢 Indice de vérification factuelle : 70/100 (haute)

  • ✅ blog.calif.io — source reconnue (Rösti community) (20pts)
  • ✅ 11701 chars — texte complet (fulltext extrait) (15pts)
  • ✅ 5 IOCs (IPs/domaines/CVEs) (10pts)
  • ⬜ pas d’IOC vérifié (0pts)
  • ✅ 10 TTPs MITRE identifiées (15pts)
  • ✅ date extraite du HTML source (10pts)
  • ⬜ aucun acteur de menace nommé (0pts)
  • ⬜ 0/1 CVE(s) confirmée(s) (0pts)

🔗 Source originale : https://blog.calif.io/p/the-wordpress-chain-massacre