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
qemu-colo-l4-oob — QEMU 11.1.2 – Hoch – Lokal/Remote – OOB – COLO filter-rewriter IPv4-L4-Heap-Overflow bei kurzen Paketen | Kitploit
Tools/GitHubGitHub/abraxas/qemu-colo-l4-oob
SpeicherforensikSchwachstellenanalyseExploitationFuzzingPapers & ForschungBinary-Exploitation
GitHubabraxas/qemu-colo-l4-oob

qemu-colo-l4-oob

QEMU 11.1.2 – Hoch – Lokal/Remote – OOB – COLO filter-rewriter IPv4-L4-Heap-Overflow bei kurzen Paketen

Repository anzeigen
2vor 2 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 - qemu-colo-l4-oob

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  qemu-colo-l4-oob

qemu-colo-l4-oob

QEMU v11.1.2 (4fc49f46dc95d4a27de2509e7fceb2931e91faeb) - COLO filter-rewriter

Klasse: OOB (Heap-Pufferüberlauf READ/WRITE). Reichweite: Lokal (Gast) / Remote (COLO-Peer).

parse_packet_early akzeptiert IPv4, sobald L2 plus ip_hl*4 hineinpasst. Ein Mindest-L4-Header wird nie verlangt. fill_connection_key liest dann vier Bytes bei transport_header ohne Prüfung der verbleibenden Länge. filter-rewriter kopiert den Frame mit g_malloc0(size), und nachdem SYN die Verbindung in TCPS_SYN_RECEIVED versetzt hat, schreibt ein ACK mit conn->offset != 0 th_ack / th_seq über diesen Chunk hinaus, wenn die erfasste Länge am Transport-Header endet.

COLO ist nicht Standard. Es ist aktiv, wenn -object filter-rewriter (und colo-compare) konfiguriert ist. Gast-TX/RX auf diesem Rewriter liegt im Virtualisierungssicherheitsmodell. Ein COLO-Peer auf primary_in / secondary_in ist ein Netzwerkprotokoll und ebenfalls nicht vertrauenswürdig.

Ein 34-Byte-IPv4/TCP-Frame genügt für einen ASan-Heap-Buffer-Overflow-READ im filter-rewriter.

IDnoch keine CVE
CWECWE-125 / CWE-787
CVSSHoch: 8.2 CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
ProduktQEMU
Betroffenv11.1.2 (4fc49f46), COLO-Rewriter/Compare aktiviert
AuthGast auf einem COLO-Rewriter-Netdev oder ein COLO-Compare-Peer
LizenzGNU Affero GPL v3.0
Labor127.0.0.1:18770 / 18771 Loopback-Sockets

Was ein Angreifer tun kann

Wer: nicht vertrauenswürdiger Gast auf einer COLO-fähigen NIC oder ein feindlicher COLO-Compare-Peer. Gast-zu-Host / Peer-zu-Host. QEMU-Userspace-Heap.

Integrität / Recon (im Labor nachgewiesen)

MethodeSenkePrivileg
Kurzes IPv4/TCP-ACK nach einem SYN mit vollem Header (34-Byte-Frame, Länge endet am Transport-Header)filter-rewriter handle_primary_tcp_pkt / fill_connection_keyASan-Heap-Buffer-Overflow-READ im filter-rewriter. Kontroll-TCP mit vollem Header lässt QEMU am Leben.
Derselbe fehlende L4-Mindestwertparse_packet_early net/colo.c:43-98Das Paket wird als TCP klassifiziert, ohne dass ein L4-Header im Puffer liegt.

Integrität (abgeleitet, dieselbe fehlende Grenze)

Nach SYN, conn->offset != 0, speichert der Rewriter th_ack / th_seq bei net/filter-rewriter.c:112-114 und :216-218. IP-Optionen (ip_hl > 5) verschieben diesen Schreibvorgang auf den nächsten Heap-Chunk. Vom Gast auslösbarer Host-Heap-WRITE.

colo-compare fill_pkt_tcp_info setzt header_size aus th_off<<2 ohne Prüfung gegen pkt->size. payload_size läuft unter. colo_compare_packet_payload führt memcmp über zig Kilobyte über beide Paketallokationen hinaus aus. Absturz plus Host-Heap-READ.

Verfügbarkeit (im Labor nachgewiesen)

QEMU bricht unter ASan beim Rewriter-READ ab. Ohne ASan ist dies ein aktiver Heap-OOB im Hypervisor-Prozess.

Angrenzende Angriffsfläche, die geschlossen bleibt

  • TAP-/Socket-/Bridge-/l2tpv3-/Stream-/Dgram-Längenpfade auf diesem Pin wirkten begrenzt (net_fill_rstate lehnt packet_len > NET_BUFSIZE ab).
  • Unbegrenztes COLO-Verbindungstabellen-Leck bei Hashtable-Reset ist Alloc-Hardening, nicht dieser Rest.
  • Kernel PwnEscape / Vghost: außerhalb von QEMU.
  • Standard-QEMU ohne COLO: Der Rewriter ist nicht aktiv. Dieser Rest erfordert konfiguriertes COLO.

Das Labor demonstriert keine RIP-Kontrolle und keine Gast-zu-Host-Shell. Die Klasse ist Heap-OOB des QEMU-Prozesses auf einem COLO-fähigen Netdev.

Wie ich es gefunden habe

Ich habe net/colo.c gelesen und nach einer Längenuntergrenze gesucht, die L4 einschließt. Die Untergrenze ist Ethernet plus VLAN plus vnet_hdr. ip_hl wird aus einem kurzen Tail entnommen. fill_connection_key vertraut dann auf transport_header. Der filter-rewriter lädt immer th_flags an Offset 13 von struct tcp_hdr.

Fehlversuche: die TAP-Länge als COLO-Grenze zu behandeln (anderer Pfad); den Überlauf als erstes Paket zu senden (der Rewriter benötigt zuerst ein SYN, damit conn->offset aktiv ist); den th_off-Unterlauf von colo-compare als primären Beleg zu nehmen (der Rewriter-READ wurde zuerst ausgelöst).

Lab

cd lab
./run.sh

Zielt ausschließlich auf Loopback-Sockets 127.0.0.1:18770 (filter-rewriter netdev) und 18771 (colo-compare) ab. Pin ist von github.com/qemu/QEMU Tag v11.1.2 / 4fc49f46 geklont. ASan. COLO-Proxy zur Konfigurationszeit aktiviert. Nur Witness.

SUCCESS qemu-colo-l4-oob asan=heap-buffer-overflow access=READ sink=filter-rewriter control=alive QEMU-COLO-L4-OOB-WITNESS

Replay: python3 qemu-colo-l4-oob-Abraxas-Labs.py.

Die Korrektur

parse_packet_early muss nach dem IP-Header einen vollständigen L4-Header (TCP 20, UDP 8, SCTP 12, AH 8) verlangen und ablehnen, wenn size bei oder vor transport_header endet. fill_connection_key und die th_*-Speicherzugriffe des Rewriters müssen die verbleibende Länge prüfen. colo-compare muss th_off<<2 ablehnen, wenn es nicht in pkt->size passt, bevor payload_size berechnet wird.

Referenzen

  • github.com/qemu/QEMU Tag v11.1.2 Commit 4fc49f46dc95d4a27de2509e7fceb2931e91faeb
  • parse_packet_early · filter-rewriter
  • Gleicher Pin: qemu-xhci-complete-uaf · qemu-nvme-sgl-bar
  • Serie: QEMU 11.1.2 leftovers
  • CWE-125 · CWE-787

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen