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
ats-jsonrpc-unrestricted — Apache Traffic Server 10.2.0 – Hoch – Lokal – Verbleibende Berechtigungen – JSON-RPC-Unix-Socket im uneingeschränkten Modus 0777 | Kitploit
Tools/GitHubGitHub/abraxas/ats-jsonrpc-unrestricted
Privilege EscalationSchwachstellenanalyseInformationsbeschaffungFehlkonfigurationLabs & Praxis
GitHubabraxas/ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Apache Traffic Server 10.2.0 – Hoch – Lokal – Verbleibende Berechtigungen – JSON-RPC-Unix-Socket im uneingeschränkten Modus 0777

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 14 TagenNoch nicht geprüft

Abraxas Labs - ats-jsonrpc-unrestricted

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-jsonrpc-unrestricted

ats-jsonrpc-unrestricted

Klasse: Privilegien-Rest (Recon) Reichweite: Lokal

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Der JSON-RPC-Unix-Socket verwendet standardmäßig restricted_api false. Die mitgelieferte jsonrpc.yaml enthält nur Kommentare, sodass der C++-Initialisierer gewinnt. Der Linux-SO_PEERCRED-Bind-Modus ist 0777. Jede lokale UID, die das Rundir-Inode erreichen kann, verbindet sich ohne Token und gibt Live-Datensätze aus (einschließlich SSL-Schlüsselpfaden) sowie Connection-Tracker-5-Tupel. Schreibzugriffe bleiben hinter SO_PEERCRED geschützt (euid == 0 oder ATS-euid). Die Dokumentationstabelle gibt true / 0700 an; der Code und das kommentierte Beispiel sind false / 0777.

Dies ist nicht CVE-2026-58159 (HTTP-UDS-Listener-ACL). Es gibt kein TCP/HTTP-JSON-RPC. Plugin-Laden und Konfigurationsschreiben bleiben für eine fremde UID verweigert.

IDnoch keine CVE
KlassePrivilegien-Rest (Recon)
ReichweiteLokal (unprivilegierte UID auf dem ATS-Host)
CWECWE-276, CWE-284
CVSSHoch: 7.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProduktApache Traffic Server
Betroffen10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) Standard-JSON-RPC-Unix
Authkeine bei uneingeschränkten Methoden. Lokaler Dateisystemzugriff auf das Rundir.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18720. Image ats-10.2.0-lab:local.

Ich habe den Tag 10.2.0 gepinnt, Commit b1df7334b39a878971c376da849e8da4984918b6. Aus dem Quellcode gebautes Image.

Was ein Angreifer tun kann

Lokale UID auf dem ATS-Host (nicht root, nicht ATS-euid). RPC aktiviert. JSON-RPC-Unix aktiviert. Typisches Rundir 0755, im Besitz von ATS. Socket $RUNTIMEDIR/jsonrpc20.sock.

MethodeSinkPrivileg
admin_lookup_records als UID 10000 auf 0777 jsonrpc20.sockuneingeschränktes JSON-RPC (RpcAdminPubHandlers.cc)Recon (im Lab nachgewiesen): Live-proxy.config.proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS, SSL-Schlüsselpfade etc/trafficserver, proxy.config.admin.user_id=nobody. Schlüsselbytes sind nicht in den Datensätzen enthalten.
get_connection_tracker_infogleicher SocketRecon (im Lab nachgewiesen): eingehende/ausgehende Tracker-Tabellen (leer ohne Last).
get_server_status, admin_host_get_status, admin_storage_get_device_status, filemanager.get_files_registrygleiches uneingeschränktes BitRecon (abgeleitet): Drain-Status, Host-Markdown, Cache-Disk-Pfade, absolute Konfigurationspfade.
admin_config_set_records als UID 10000SO_PEERCRED eingeschränktIntegrität: geschlossen (im Lab nachgewiesen). JSON-RPC-Fehler 10 Unauthorized, Denied privileged API access for uid=10000. Witness-Datensatz unverändert.
Drain / Cache-Leeren / Storage-Offlineeingeschränkte MethodenVerfügbarkeit: geschlossen für eine fremde UID (Quellcode).

Im Lab nachgewiesen vs. abgeleitet: 0777-Socket, UID-10000-Lookup von proxy_name / SSL-Schlüsselpfaden, Tracker-Tabellen, Schreiben verweigert, kein TCP-JSON-RPC: Lab. Andere uneingeschränkte Lesemethoden: abgeleitet aus demselben Gate.

Voraussetzungen: lokale UID auf dem ATS-Host. JSON-RPC-Unix aktiviert (Standard). Linux SO_PEERCRED, sodass der uneingeschränkte Bind 0777 ist. Rundir erreichbar (typisch 0755).

Angrenzende Angriffsfläche, die geschlossen bleibt

OberflächeLabor
admin_config_set_records als uid 10000Unauthorized; Witness-Datensatz unverändert
TCP / HTTP JSON-RPCnicht vorhanden; nur HTTP 8080 / 18080
Plugin-.so-Laden via RPCSO_PEERCRED
traffic_ctl mit gleicher uidvorgesehener Admin
Atomares umask+bind, wenn restricted_api true ist0700, CHANGELOG-Fix zurückgehalten
CVE-2026-58159 HTTP-UDS-Listener-ACLnicht dieser Socket

Wie ich es gefunden habe

RPC ist aktiv, sofern nicht rpc.enabled: false. Es existiert nur CommType::UNIX. Das mitgelieferte jsonrpc.yaml.default enthält nur Kommentare. Die YAML-Dekodierung schreibt restrictedAccessApi nur, wenn der Schlüssel vorhanden ist. Andernfalls:

bool restrictedAccessApi{
  NON_RESTRICTED_API}; // ... 0700(default) or 0777

NON_RESTRICTED_API ist false (IPCSocketServer.h:128-129). Der Kommentar besagt, dass 0700 der Standard ist. Der Initialisierer ist die uneingeschränkte Konstante.

Bind (IPCSocketServer.cc:310-342): restricted_api false plus SO_PEERCRED -> Modus 0777. Der letzte Satz der Dokumentationstabelle besagt true als Standard. Der Code und das auskommentierte Beispiel folgen false.

Fehlannahmen: die Dokumentation true als Standard zu behandeln; dies als RCE zu bezeichnen (Schreibvorgänge werden verweigert); anzunehmen, dass CVE-2026-58159 das mgmt JSON-RPC abdeckt; nach einem TCP-Überbleibsel des alten traffic_manager XMLRPC zu suchen.

Theater: ein Schreibvorgang als uid 10000. Das Orakel ist ein eingeschleuster proxy_name plus SSL-Key-Pfad-Strings, dann eine verweigerte Menge.

Lab

python3 ats-jsonrpc-unrestricted-Abraxas-Labs.py

oder

cd lab
./run.sh

Loopback 127.0.0.1:18720. Compose-Projekt ats-jsonrpc-unrestricted. Image ats-10.2.0-lab:local. Lab-uid 10000. Socket-Modus 0777. Witness ATS-JSONRPC-UNRESTRICTED-WITNESS. Letzte Zeile:

SUCCESS ats-jsonrpc-unrestricted how=uds-0777-unrestricted-jsonrpc uid=10000 sock-mode=0777 lookup-proxy_name=ATS-JSONRPC-UNRESTRICTED-WITNESS ssl-key-path=etc/trafficserver tracker=ok write=unauthorized tcp-jsonrpc=absent ATS-JSONRPC-UNRESTRICTED-WITNESS

Die Behebung

restricted_api standardmäßig auf true setzen und an 0700 binden, entsprechend der Dokumentationstabelle. Das auskommentierte jsonrpc.yaml-Beispiel angleichen. Uneingeschränkte Lesezugriffe hinter ein ausdrückliches Opt-in stellen. Schreibzugriffe erfordern bereits SO_PEERCRED; diese nicht öffnen.

Referenzen

Tool herunterladen