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-uidfield-system-uid0 — OPNsense 26.7.6 – Hoch – Remote – Privilegien-Rest – UidField uid 0 | Kitploit
Tools/GitHubGitHub/abraxas/opnsense-uidfield-system-uid0
Authentifizierung & AutorisierungPrivilege EscalationSchwachstellenanalyseExploitationSicherheitsvirtualisierungWebsicherheitPenetrationstestsLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubabraxas/opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

OPNsense 26.7.6 – Hoch – Remote – Privilegien-Rest – UidField uid 0

Repository anzeigen
vor 2 TagenNoch nicht geprüft

Abraxas Labs - opnsense-uidfield-system-uid0

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-uidfield-system-uid0

opnsense-uidfield-system-uid0

Klasse: Privilegien-Überrest Reichweite: Remote

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Delegiertes page-system-usermanager in zwei Schritten scope=system, dann uid=0. UidField::setValue weist automatisch 2000+ zu, nur solange der Scope nicht system ist. setNodes wendet uid vor scope an, sodass ein einzelnes Hinzufügen keine 0 setzen kann. Der zweite POST kann es. auth sync user führt dann pw useradd -o -u 0 mit Home /root und Gruppe wheel aus. Authorized Keys landen in /root/.ssh/authorized_keys. Das Privileg ist System: Access: Management, nicht page-all.

IDnoch keine CVE
KlassePrivilegien-Überrest
ReichweiteRemote (authentifizierte WebGUI / lokaler API-Schlüssel)
CWECWE-269 / CWE-284
CVSSHoch: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProduktOPNsense core (Deciso B.V.)
BetroffenOPNsense core 26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) UidField / user-manager
AuthWebGUI-Sitzung oder lokaler API-Schlüssel mit page-system-usermanager
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Ich habe den Tag 26.7.6 "Xenial Xenops" gepinnt. Das Lab ist ein PHP-Gadget des gepinnten UidField::setValue plus local_user_set, Loopback-Identität 127.0.0.1:18810. stable/26.7 hat den UID-0-Schreibvorgang als ea4f01fe am 2026-10-09 zurückgenommen. Dieser Revert ist nicht dieser Pin. Keine GHSA.

Was ein Angreifer tun kann

MethodeSinkPrivileg
zweistufiges Hinzufügen scope=system, dann uid=0 setzen, dann auth sync userPin UidField::setValue, dann Stub pw useradd -o -u 0 (auth.inc:345-397)Integrität (im Lab bewiesen): zweite Unix-UID 0, Home /root, Gruppe wheel. Lab: after-add=2000 after-set=0 pw-o-u0=yes.
gleiches Set + authorizedkeysfile_put_contents /root/.ssh/authorized_keys (auth.inc:407-416)Integrität (im Lab bewiesen): Zeuge in /root/.ssh/authorized_keys.
SSH als dieser Name, falls sshd läuft (AllowGroups wheel; PermitRootLogin gilt nicht für einen Nicht-root-Benutzernamen)sshdRecon + Integrität (abgeleitet): Login als der neue wheel-Name, /root lesen. Gadget hat sshd nicht gestartet.
gleiche POSTs mit scope=user uid=0UidField automatische Zuweisung 2000+Negativ (im Lab bewiesen): uid bleibt 2000. scope-user-uid0-ignored=yes.
set der Stock-root-UUID uid=80pw usermod -u 80Integrität + Verfügbarkeit (abgeleitet): Stock-root von UID 0 wegbewegen. Gadget hat root nicht per usermod geändert.
set der root-UUID name=hax + scope=userUmbenennungsprüfung übersprungen; auth sync user auf den neuen NamenIntegrität (abgeleitet): Systembenutzer-Umbenennung, die die 26.7.6-Prüfung verhindern sollte.

Im Lab bewiesen vs. abgeleitet: zweistufige UID 0, pw useradd -o -u 0, Keys-Pfad und scope=user-Ignorieren sind im Lab SUCCESS. Live-sshd-Akzeptanz und Stock-root-usermod/Umbenennung sind abgeleitet. Gadget, keine vollständige OPNsense-VM.

Erfordert: WebGUI-Sitzung oder lokalen API-Schlüssel mit page-system-usermanager. CSRF auf dem Sitzungspfad. Nicht page-all. Standard-config.xml.sample gewährt page-all nur der Gruppe admins.

Angrenzende Oberfläche, die geschlossen bleibt

OberflächeLab
POST /api/auth/user/* ohne page-system-usermanagerACL geschlossen
user-config-readonlysave() weiterhin throwReadOnly()
CSV-Uploadentfernt uid/scope
CVE-2026-44194 email-as-shellmwexecf %s + E-Mail-Regex
Passwortseitesitzungsgebunden
page-all mit demselben POSTChangelog-Feature auf diesem Pin
Unauthgeschlossen
Unix su mit * in master.passwdGUI-Hash bleibt in config.xml, außer der Installer erzwingt es

Kein Unauth. Kein page-all erforderlich. 26.7.6 präsentierte gewählte UID für System-Scope-Benutzer als Admin-Feature. Der unerreichte Walk ist ein delegierter user-manager ohne page-all.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18810. Compose-Projekt opnsense-uidfield-system-uid0. Image vom Pin 26.7.6. Zeuge OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS. Letzte Zeile:

SUCCESS opnsense-uidfield-system-uid0 two-step-uid=0 scope-user-uid0-ignored=yes pw-o-u0=yes keys=/root/.ssh/authorized_keys OPNSENSE-UIDFIELD-SYSTEM-UID0-WITNESS

Der Fix

UID 0 (und kollidierende Service-UIDs) ablehnen, es sei denn, der Aufrufer ist ein vollständiger Admin. scope vor uid in setNodes anwenden oder einen POST ablehnen, der beides umschaltet. Die 26.7.6-Umbenennungsprüfung auf dem Pre-setNodes-Scope belassen, nicht auf dem geposteten. ea4f01fe hat später den UID-0-Schreibvorgang auf stable/26.7 zurückgenommen; dieser Commit ist nicht dieser Pin.

Referenzen

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • UidField.php
  • auth.inc local_user_set
  • Benannte Seite (nicht dieser Überrest): CVE-2026-44194 / GHSA-f59w email-as-shell
  • Späterer Revert (nicht dieser Pin): ea4f01fe auf stable/26.7
  • CWE-269 / CWE-284
Tool herunterladen