Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
opnsense-tunables-loader — OPNsense 26.7.6 – Hoch – Remote – Konfigurationszeilen-Injektion – Tunables-Loader | Kitploit
Tools/GitHubGitHub/abraxas/opnsense-tunables-loader
SchwachstellenanalyseExploitationWebanwendungs-ExploitationKonfigurationsprüfungSicherheitsvirtualisierungPenetrationstestsLabs & Praxis
GitHubabraxas/opnsense-tunables-loader

opnsense-tunables-loader

OPNsense 26.7.6 – Hoch – Remote – Konfigurationszeilen-Injektion – Tunables-Loader

Repository anzeigen
18vor 9 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Abraxas Labs - opnsense-tunables-loader

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

Write-up: https://abraxaslabs.tech/research/opnsense-tunables-loader

opnsense-tunables-loader

Klasse: Config-Zeileninjektion Reichweite: Remote

OPNsense-Kern 26.7.6 (a842fe48) - opnsense.org

System: Advanced: Tunables interpoliert weiterhin Name/Wert in /boot/loader.conf. Zurückgebliebener Verwandter von GHSA-fq94. Tunables.xml tunable / value sind reine TextField (Zeilenumbrüche aktiviert). system_login_configure() schreibt {$param}="{$value}". Die Tunables-Neukonfiguration startet außerdem login neu. Das Live-sysctl(8) läuft über shell_safe plus einen OID-Filter, dieser Schritt ist also keine Shell-Injektion. Der Überrest sind zusätzliche Loader-Direktiven beim nächsten Boot. Die Berechtigung ist page-system-advanced-sysctl, nicht page-all.

Dieses GitHub-Paket bleibt privat bis zur koordinierten Offenlegung.

IDnoch keine CVE
KlasseConfig-Zeileninjektion
ReichweiteRemote (authentifizierte WebGUI / API)
CWECWE-93
CVSSHoch: 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProduktOPNsense core
Betroffen26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) System: Advanced: Tunables
AuthWebGUI-Sitzung oder API-Schlüssel mit page-system-advanced-sysctl
LizenzGNU Affero GPL v3.0
Labcompose exec gadget (Hunt-Slot 18850)

Ich habe den Tag 26.7.6 Peel a842fe48 festgelegt. Das Lab ist ein PHP-Gadget der festgelegten system_login_configure()-Interpolation. Compose-Projekt opnsense-tunables-loader. Hunt-Slot 18850 in der Gadget-Familie 18800-18860; diese Compose-Datei verwendet docker compose exec php, keine veröffentlichte HTTP-Bindung.

Was ein Angreifer tun kann

MethodeSinkBerechtigung
Tunables-Wert CR/LF (hw.usb.no_boot_wait plus "\n# witness)Zusätzliche Zeile in system_login_configure() in /boot/loader.conf festnagelnIntegrität (im Lab nachgewiesen): zusätzliches # OPNSENSE-TUNABLES-LOADER-WITNESS in eigener Zeile nach einer geschlossenen Zuweisung. Lab: newline-extra-line=yes.
Sauberer Wert 1derselbe WriterNegativ (im Lab nachgewiesen): einzelne Zuweisungszeile, kein Witness. Lab: clean-value-single-line=yes.
Dieselben zusätzlichen Loader-Zeilen beim nächsten BootLoader init_path / module_path / *_load / vfs.root.mountfrom / KonsoleIntegrität (abgeleitet): Der Loader beim nächsten Boot berücksichtigt Angreifer-Schlüssel. In diesem Gadget nicht neu gestartet.
Müll-Loader-Zeilen / falsches vfs.root.mountfrom/boot/loader.confVerfügbarkeit (abgeleitet): Boot-Fehler oder falsches Root.
POST /api/core/tunables/searchItemTunables-APIRecon (abgeleitet): Tunables auflisten, einschließlich aktuell/Standard/Typ. Für diese ACL vorgesehen.
Live-sysctl -w einer gültigen OIDset_sysctl + OID-FilterVorgesehene Aufgabe der Seite. Zusätzliche Loader-Zeilen sind der Überrest.

Im Lab nachgewiesen vs. abgeleitet: Zeilenumbruch mit zusätzlicher Loader-Zeile und sauberer Wert in einer Zeile sind im Lab ERFOLGREICH. Die Anwendung durch den Loader beim nächsten Boot ist abgeleitet. Gadget, keine vollständige OPNsense-FreeBSD-VM.

Erfordert: angemeldeter Benutzer oder dessen lokaler API-Schlüssel mit page-system-advanced-sysctl und ohne page-all. POST /api/core/tunables/*. CSRF bei Sitzungs-POST. Die Neukonfiguration startet login neu; rc.reload_all und der Boot rufen ebenfalls system_login_configure auf.

Angrenzende Angriffsfläche, die geschlossen bleibt

OberflächeLab
Live-sysctl-Shell-Injectionshell_safe plus OID-Filter
Sauberer Werteinzelne Zuweisungszeile
Unauth401
Benutzer ohne page-system-advanced-sysctl403
user-config-readonlysave() wirft Exception
page-all-Tunables-Admin, der eine echte OID setztbeabsichtigt
GHSA-fq94 gepatchte GUI-Textfelderandere Sinks; dieses Feld wurde nicht genannt

Kein Unauth. Keine Live-sysctl-Shell. Kein Diagnostics: Command.

Lab

cd lab
./run.sh

Compose-Projekt opnsense-tunables-loader. Witness OPNSENSE-TUNABLES-LOADER-WITNESS. Letzte Zeile:

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

Root-Launcher: python3 opnsense-tunables-loader-Abraxas-Labs.py.

Die Behebung

CR/LF und " aus dem Namen und dem Wert der Tunables entfernen, gleiche Klasse wie GHSA-fq94. Den Namen als OID-Maske typisieren, nicht als bloßes TextField. Mit einem Helper quoten, der die Zuweisung nicht schließen kann. Ein Tunable nicht in /boot/loader.conf schreiben, es sei denn, es ist ein bekannter Loader-Schlüssel.

Referenzen

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • system.inc system_login_configure loader.conf-Interpolation
  • Tunables.xml bloßes TextField für Name/Wert
  • Verwandt (andere GUI-Textfelder, nicht dieser Sink): GHSA-fq94
  • CWE-93
Tool herunterladen