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
opnsense-tunables-loader — OPNsense 26.7.6 - Élevée - À distance - Injection de ligne de configuration - chargeur de tunables | Kitploit
Outils/GitHubGitHub/abraxas/opnsense-tunables-loader
Analyse des VulnérabilitésExploitationExploitation d'Applications WebAudit de ConfigurationVirtualisation de SécuritéTests d'IntrusionLabs et Pratique
GitHubabraxas/opnsense-tunables-loader

opnsense-tunables-loader

OPNsense 26.7.6 - Élevée - À distance - Injection de ligne de configuration - chargeur de tunables

Voir le dépôt
1il 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 - opnsense-tunables-loader

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-tunables-loader

opnsense-tunables-loader

Classe : Injection de ligne de configuration Portée : Distante

OPNsense core 26.7.6 (a842fe48) - opnsense.org

System: Advanced: Tunables interpole encore le nom/valeur dans /boot/loader.conf. Vestige frère de GHSA-fq94. Les champs tunable / value de Tunables.xml sont de simples TextField (retours à la ligne activés). system_login_configure() écrit {$param}="{$value}". La reconfiguration des Tunables redémarre aussi login. Le sysctl(8) en direct passe par shell_safe plus un filtre OID, donc ce saut n'est pas une injection shell. Le vestige, ce sont des directives loader supplémentaires au prochain démarrage. Le privilège est page-system-advanced-sysctl, pas page-all.

Ce pack GitHub reste privé jusqu'à la divulgation coordonnée.

IDpas encore de CVE
ClasseInjection de ligne de configuration
PortéeDistante (WebGUI / API authentifié)
CWECWE-93
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProduitOPNsense core
Affecté26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) System: Advanced: Tunables
AuthSession WebGUI ou clé API avec page-system-advanced-sysctl
LicenceGNU Affero GPL v3.0
Labcompose exec gadget (hunt slot 18850)

J'ai épinglé le tag 26.7.6 peel a842fe48. Le lab est un gadget PHP de l'interpolation épinglée system_login_configure(). Projet Compose opnsense-tunables-loader. Hunt slot 18850 dans la famille de gadgets 18800-18860 ; ce fichier compose utilise docker compose exec php, pas de bind HTTP publié.

Ce qu'un attaquant peut faire

MéthodeSinkPrivilège
Valeur de Tunable CR/LF (hw.usb.no_boot_wait plus "\n# witness)épingler une ligne supplémentaire de system_login_configure() dans /boot/loader.confIntégrité (prouvé en lab) : # OPNSENSE-TUNABLES-LOADER-WITNESS supplémentaire sur sa propre ligne après une affectation fermée. Lab : newline-extra-line=yes.
Valeur propre 1même writerNégatif (prouvé en lab) : ligne d'affectation unique, pas de witness. Lab : clean-value-single-line=yes.
Mêmes lignes loader supplémentaires au prochain démarrageloader init_path / module_path / *_load / vfs.root.mountfrom / consoleIntégrité (inféré) : le loader au prochain démarrage honore les clés de l'attaquant. Pas de redémarrage dans ce gadget.
Lignes loader erronées / mauvais vfs.root.mountfrom/boot/loader.confDisponibilité (inféré) : échec de démarrage ou mauvais root.
POST /api/core/tunables/searchItemAPI tunablesRecon (inféré) : lister les tunables, y compris current/default/type. Prévu pour cet ACL.
sysctl -w en direct d'un OID valideset_sysctl + filtre OIDTâche de page prévue. Les lignes loader supplémentaires sont le vestige.

Prouvé en lab vs inféré : la ligne loader supplémentaire par retour à la ligne et la valeur propre sur une seule ligne sont des SUCCÈS en lab. L'application par le loader au prochain démarrage est inférée. Gadget, pas une VM OPNsense FreeBSD complète.

Nécessite : un utilisateur connecté ou la clé API locale de cet utilisateur avec page-system-advanced-sysctl et sans page-all. POST /api/core/tunables/*. CSRF sur le POST de session. La reconfiguration redémarre login ; rc.reload_all et le boot appellent aussi system_login_configure.

Surface adjacente qui reste fermée

SurfaceLab
Injection shell sysctl en directshell_safe plus filtre OID
Valeur propreligne d'affectation unique
Non authentifié401
Utilisateur sans page-system-advanced-sysctl403
user-config-readonlysave() lève une exception
Admin tunables page-all définissant un vrai OIDprévu
Champs texte GUI patchés GHSA-fq94sinks différents ; ce champ n'était pas nommé

Pas de non authentifié. Pas de shell sysctl en direct. Pas de Diagnostics: Command.

Lab

cd lab
./run.sh

Projet Compose opnsense-tunables-loader. Witness OPNSENSE-TUNABLES-LOADER-WITNESS. Dernière ligne :

SUCCESS opnsense-tunables-loader newline-extra-line=yes clean-value-single-line=yes OPNSENSE-TUNABLES-LOADER-WITNESS

Lanceur root : python3 opnsense-tunables-loader-Abraxas-Labs.py.

Le correctif

Supprimer les CR/LF et " du nom et de la valeur des tunables, même classe que GHSA-fq94. Typer le nom comme un masque OID, pas un TextField nu. Mettre entre guillemets avec un helper qui ne peut pas fermer l'affectation. Ne pas écrire un tunable dans /boot/loader.conf à moins qu'il ne s'agisse d'une clé loader connue.

Références

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • system.inc interpolation loader.conf de system_login_configure
  • Tunables.xml nom/valeur TextField nus
  • Frère (autres champs texte GUI, pas ce sink) : GHSA-fq94
  • CWE-93
Télécharger l’outil