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
pfsense-limiter-number — pfSense CE 2.9.0-DEVELOPMENT - Élevé - À distance - RCE - limiteur numéro dnctl | Kitploit
Outils/GitHubGitHub/abraxas/pfsense-limiter-number
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et ContrôleRed TeamingLabs et Pratique
GitHubabraxas/pfsense-limiter-number

pfsense-limiter-number

pfSense CE 2.9.0-DEVELOPMENT - Élevé - À distance - RCE - limiteur numéro dnctl

Voir le dépôt
11il y a 2 joursPas 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

Abraxas Labs - pfsense-limiter-number

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-limiter-number

pfsense-limiter-number

Classe : RCE Portée : Distante

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

Les Traffic Shaper Limiters émettent un champ number caché lors de l'édition. La création écrase ce numéro avec dnpipe_find_nextnumber(). L'édition ne le fait pas. validate_input ne vérifie jamais number. GetNumber() est concaténé sans guillemets dans dnctl pipe|sched|queue delete. Le mwexec de PHP est /bin/sh -c. Le privilège est page-firewall-trafficshaper-limiter, et non Diagnostics: Command.

IDpas encore de CVE
ClasseRCE
PortéeDistante (WebGUI authentifié)
CWECWE-78
CVSSÉlevé : 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProduitpfSense CE
Affecté2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) limiter number
AuthSession WebGUI avec page-firewall-trafficshaper-limiter
LicenceGNU Affero GPL v3.0
Lab127.0.0.1 uniquement

J'ai épinglé le master public 9363ac5. Le lab est un gadget PHP composé des ReadConfig / SetNumber / delete_queue épinglés. Loopback 127.0.0.1:18840.

Ce qu'un attaquant peut faire

MéthodeSinkPrivilège
Créer un limiter, POST save avec un number contrôlé par l'attaquant, puis supprimer ce limitermwexec("/sbin/dnctl pipe delete " . $this->GetNumber()) (shaper.inc:3820)Intégrité (prouvé en lab) : shell root. Lab : edit-delete a écrit le témoin (edit-delete-exec=yes). L'écrasement à la création et le chemin apply-file n'ont rien écrit.
Même shell rootsystème de fichiers de l'hôteRecon (inféré) : config.xml, clés.
Shell root ou dnctl de numéros contrôlés par l'attaquantdummynetDisponibilité (inféré) : perturbation du limiter / dummynet.

Prouvé en lab vs inféré : l'écrasement à la création (pas de témoin), le chemin apply-file (dnctl d'un fichier, pas de témoin) et l'exécution edit-delete (témoin) sont prouvés en lab. La reconnaissance du système de fichiers est inférée à partir du PHP-FPM root.

Nécessite : une session WebGUI avec page-firewall-trafficshaper-limiter. CSRF sur le POST save. La suppression est un GET action=delete.

Surface adjacente qui reste fermée

SurfaceLab
Chemin de créationdnpipe_find_nextnumber() écrase, create-overwrites=yes
Chemin d'applicationdnctl de /tmp/rules.limiter, nom de fichier non contrôlé par l'utilisateur, apply-file=yes
Jeu de caractères du nom de limiter^[a-zA-Z0-9_-]+$
Non authentifiéfermé
Diagnostics: Commandreste fermé sauf si également accordé

Les paramètres AQM injectés dans /tmp/rules.limiter relèvent du langage dummynet supplémentaire, et non de ce reliquat.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18840. Projet Compose pfsense-limiter-number. Tag d'image pfsense-limiter-number:2.9.0-dev. Témoin PFSENSE-LIMITER-NUMBER-WITNESS. Dernière ligne :

SUCCESS PFSENSE-LIMITER-NUMBER create-overwrites=yes apply-file=yes edit-delete-exec=yes PFSENSE-LIMITER-NUMBER-WITNESS

Le correctif

Caster en int GetNumber() avant chaque dnctl. Ignorer le number du POST lors de l'édition, ou le valider par plage contre l'id dummynet actif. La création écrase déjà ; faire de même pour l'édition.

Références

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • shaper.inc delete_queue / GetNumber
  • firewall_shaper_vinterface.php
  • CWE-78
Télécharger l’outil