Publication de recherche académique (CISPA Helmholtz Center for Information Security). Les auteurs présentent « StackWarp », une attaque logicielle qui exploite un contrôle inter‑hyperthread de la « stack engine » sur AMD Zen pour modifier de manière déterministe le pointeur de pile (RSP) d’un invité SEV‑SNP, et ainsi casser ses garanties d’intégrité.
Le cœur de la vulnérabilité réside dans un bit non documenté d’un MSR par‑cœur (0xC0011029, bit 19) qui active/désactive la stack engine. Son état n’est pas correctement synchronisé entre les deux threads SMT du même cœur. En basculant ce bit au moment où l’autre thread exécute des instructions de pile (push/pop/call/ret), la mise à jour architecturale de RSP est retardée (« freeze‑release »), ce qui permet d’injecter un décalage ±∆ choisi par l’attaquant, jusqu’à 640 octets en un coup, avec une précision au niveau instruction. L’effet est bidirectionnel, déterministe, et observé sur Zen 1 à Zen 5, y compris sur des Zen 4/Zen 5 « entièrement patchés » avec SMT activé.
Modèle d’attaque et impact: l’attaquant contrôle l’hyperviseur (mais n’a pas accès au clair ni aux registres protégés), peut pinner les vCPU, écrire des MSR, envoyer des IPI et orchestrer l’ordonnancement. Les auteurs démontrent 4 exploits de bout en bout sans gadgets ni accès en clair: (1) récupération de clé RSA‑CRT via une seule signature fautive (attaque de Bellcore) ; (2) contournement de l’authentification par mot de passe d’OpenSSH en « rembobinant » la pile pour convertir un retour non‑zéro en succès ; (3) élévation de privilèges via sudo en forçant le retour de getuid() à 0 ; (4) exécution ring0 par pivot de pile sur des données contrôlées (tampon sur la pile noyau via select) et ROP noyau. ✅
Mitigations et recommandations: les auteurs préconisent de désactiver SMT comme mesure immédiate et appellent à un correctif microcode/matériel empêchant tout contrôle inter‑hyperthread de la stack engine (verrouillage/scoping du bit, purge du delta sur changement de contexte, ou verrouillage en contexte CVM). Côté logiciel, des mécanismes comme CET/Shadow Stack et des heuristiques de vérification pointeur de pile/cadre peuvent convertir l’attaque en crash non exploitable (selon les cas).
Divulgation: vulnérabilité signalée à AMD le 24/03/2025 (accusé le 25/03/2025). AMD a planifié un CVE et un embargo jusqu’au 15/01/2026 ; avant la divulgation publique, AMD a confirmé la disponibilité de microcodes « hot‑loadables » livrés à ses clients. L’article fournit du code PoC et scripts de mesure à la publication.
• TTP(s) principaux (techniques observées) :
- Exploitation d’un MSR non documenté (0xC0011029, bit 19) pour (dés)activer la stack engine 🧵
- Contrôle croisé inter‑hyperthread (SMT) d’un état frontend non synchronisé ⚙️
- Primitive « freeze‑release » pour décaler RSP de ±∆ de façon déterministe
- Synchronisation par IPI, single‑stepping/VM-exits, canaux contrôlés et PMCs
- Primitives d’attaque: « frame rewind » (contrôle du flux), pivot de pile/ROP noyau, manipulations de données sur la pile (drop‑write/lecture d’état rassis)
Type d’article: publication de recherche visant à dévoiler une vulnérabilité matérielle/µcode et à démontrer son exploitabilité pratique sur des CVM SEV‑SNP.
🔗 Source originale : https://cispa.de/en/stackwarp