Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-8069 — Écrit technique et preuve de concept pour CVE-2026-8069, une élévation de privilèges locale dans les services Acer NitroSense et PredatorSense, exploitant un tube nommé pour exécuter du code arbitraire en tant que SYSTEM. | Kitploit
Outils/GitHubGitHub/s1eezer/cve-2026-8069
Escalade de PrivilègesFrameworks d'ExploitationAnalyse des VulnérabilitésExploitationRétro-ingénierieAnalyse de Binaires
GitHubs1eezer/cve-2026-8069

CVE-2026-8069

Écrit technique et preuve de concept pour CVE-2026-8069, une élévation de privilèges locale dans les services Acer NitroSense et PredatorSense, exploitant un tube nommé pour exécuter du code arbitraire en tant que SYSTEM.

Voir le dépôt
19il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

D'un named pipe Acer à NT AUTHORITY\SYSTEM : CVE-2026-8069

Acer NitroSense et PredatorSense 3.x installaient un service Windows nommé PSSvc qui exposait un protocole de named pipe personnalisé aux utilisateurs locaux. Une commande du protocole acceptait un chemin d'exécutable contrôlé par l'appelant, dupliquait le jeton de winlogon.exe et lançait cet exécutable en tant que NT AUTHORITY\SYSTEM.

La restriction de chemin dans le service vulnérable était un test de sous-chaîne. Un chemin commençant dans le répertoire du service puis utilisant des composants ..\ passait le test mais se résolvait ailleurs. Combiné au contrôle d'accès permissif du pipe et à l'absence d'autorisation de l'appelant, cela permettait à un utilisateur local standard d'obtenir un processus SYSTEM.

Acer a attribué CVE-2026-8069, a publié des correctifs et a crédité Artem Domarev de l'Université de Hradec Králové dans son avis de sécurité.

Cet article se concentre sur le chemin de création de processus/élévation de privilèges. L'avis d'Acer décrit également une suppression arbitraire de fichiers, qui sortait du cadre de cette validation.

Pourquoi j'ai choisi cette direction de recherche

Le choix de la direction de recherche a également été influencé par une analyse publique des logiciels OEM publiée par Leon Jacobs de SensePost. Ce travail documentait des vulnérabilités dans ASUS DriverHub, MSI Center, Acer Control Centre et Razer Synapse 4 (Jacobs, 2025). Cela a renforcé l'idée que les utilitaires matériels fournis par les fournisseurs peuvent exposer une surface d'attaque significative et sous-explorée. Plutôt que de revisiter Acer Control Centre, j'ai étendu l'investigation à une autre famille de produits Acer : NitroSense et PredatorSense.

Résumé exécutif

ÉlémentRésultat
CVECVE-2026-8069
Composant vulnérable testéPSSvc.exe 3.1.3052.0, signé par Acer Incorporated
Identité du serviceLocalSystem
Point de terminaison IPC\\.\pipe\predatorsense_service_namedpipe
Commande vulnérable0x0007
Accès attaquant requisUtilisateur local authentifié capable d'exécuter un programme
Interaction utilisateurAucune
RésultatExécutable arbitraire lancé en tant que NT AUTHORITY\SYSTEM
CVSS v3.1 NVD7.8 Élevé — AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Versions corrigéesPredatorSense 3.00.3198 ; NitroSense 3.01.3056

La chaîne d'exploitation est courte :

utilisateur local authentifié
        │
        ▼
named pipe PSSvc permissif
        │  commande personnalisée 0x0007
        ▼
vérification de chemin par sous-chaîne uniquement
        │  service-dir\..\..\..\Windows\System32\cmd.exe
        ▼
duplication du jeton winlogon.exe de la session active
        │
        ▼
CreateProcessAsUserW → NT AUTHORITY\SYSTEM

Un avertissement sur les numéros de version

Il existe une incohérence dans la formulation publique. La page d'Acer indique que les versions de NitroSense « antérieures à 3.01.3052 » sont concernées, alors que la version 3.1.3052.0 de PSSvc.exe signée par le fournisseur et testée pour cet article est manifestement vulnérable. La même page identifie NitroSense 3.01.3056 comme version corrigée. La plage d'applicabilité NVD s'étend également jusqu'à, mais sans inclure, 3.01.3056.

Pour PredatorSense, la phrase d'Acer sur les versions concernées s'arrête avant 3.00.3196, tandis que la version corrigée listée est 3.00.3198 et que NVD utilise cette dernière comme limite supérieure.

La règle opérationnelle prudente est donc simple : ne pas utiliser la phrase ambiguë « concerné » comme vérification de correctif. Mettez à niveau au moins vers les versions corrigées nommées par Acer — PredatorSense 3.00.3198 ou NitroSense 3.01.3056 — ou un package plus récent compatible avec le modèle.

Artefacts testés

Le problème a été reproduit avec le package NitroSense d'origine.

ArtefactSHA-256
NitroSense_V3.01.3052_MSFT_SIGNED_20230420.zip947FB7C62665875450AFA9C9E7919D2B061ED8197C11B28D64781F121B30C157
NitroSense.msi6F9D405B6D2ADF2992C4E071453AD2C919A6DD38A89A31EF96EAFE81C50A745C
PSSvc.exe 3.1.3052.0 installé3BA836B6A5D95B55708E771B74F49098F58B096EF1F63C5CCAE355811E193A40
PoC utilisé pour la validation31BC81140BAB64A8B0CB70ACC1C2CF3CA84A7B00015E5610AC075DC50DCB0163

La signature Authenticode de PSSvc.exe a été validée avec succès et remontait jusqu'à Acer Incorporated. Le MSI installait PSSvc comme service à processus propre à démarrage manuel fonctionnant en tant que LocalSystem.

Comment j'ai trouvé le chemin vulnérable

1. Commencer par le service privilégié

Le package NitroSense installe :

SERVICE_NAME: PSSvc
DISPLAY_NAME: Predator Service
TYPE:         WIN32_OWN_PROCESS
START_TYPE:   DEMAND_START
ACCOUNT:      LocalSystem

Un service SYSTEM n'est pas automatiquement vulnérable. La question importante est de savoir si un processus de moindre privilège peut atteindre des fonctionnalités conçues en supposant que son appelant est de confiance.

L'analyse des chaînes a immédiatement révélé le point de terminaison IPC :

\\.\pipe\predatorsense_service_namedpipe

2. Inspecter le descripteur de sécurité du named pipe

À 0x140014AD0, le service crée le pipe et transmet un descripteur de sécurité explicite à CreateNamedPipeW :

D:(A;OICI;GA;;;BG)(D;OICI;GA;;;AN)(A;OICI;GRGWGX;;;AU)(A;OICI;GA;;;BA)

Il convient de corriger explicitement ce point : la version vulnérable ne transmet pas un descripteur NULL. Elle crée une DACL permissive.

Abréviation SIDPrincipalAutorisation effective dans le SDDL
BGInvités intégrésContrôle total générique
ANAnonymeContrôle total générique refusé
AUUtilisateurs authentifiésLecture, écriture et exécution génériques
BAAdministrateurs intégrésContrôle total générique

L'ACE AU suffit à un utilisateur authentifié normal pour ouvrir le pipe en lecture et en écriture. Le serveur n'effectue ensuite pas d'emprunt d'identité du client ni de décision d'autorisation avant de distribuer les commandes privilégiées.

3. Récupérer le format de la trame

Le thread client à 0x14000ABB0 lit les messages dans un tampon de 512 octets. Il analyse les trois premiers octets comme un numéro de commande sur 16 bits et un nombre d'arguments sur 8 bits. Chaque argument est préfixé par sa longueur :

Décalage  Taille  Signification
0x00      2       identifiant de commande, petit-boutiste
0x02      1       nombre d'arguments
0x03      4       longueur de l'argument 0
0x07      n       octets de l'argument 0
...               longueur DWORD répétée + valeur

Les arguments chaîne sont en UTF-16LE. Les arguments entiers sont des DWORD petit-boutistes. Le répartiteur accepte les identifiants de commande inférieurs à 0x23 et les utilise comme index dans une table de fonctions de 35 entrées à 0x140052C90.

L'entrée pour la commande 0x0007 pointe vers 0x14000BFD0.

4. Suivre la commande 0x0007

Réduit à son comportement pertinent pour la sécurité, le gestionnaire ressemble à ceci :

int command_07(parsed_arguments *args)
{
    wchar_t service_directory[MAX_PATH];
    wchar_t *requested_path = args->wide_string[0];
    uint32_t mode = args->dword[1];

    GetModuleFileNameW(NULL, service_directory, MAX_PATH);
    PathRemoveFileSpecW(service_directory);

    if (wcsstr(requested_path, service_directory) != NULL)
        return launch_with_selected_token(requested_path, mode);

    return 0;
}
Télécharger l’outil