Bạn đang tìm kiếm sự trợ giúp? Gõ thông tin cần tìm. Tối thiểu 4 ký tự.

Dirty Frag khai thác page cache như thế nào

Dirty Frag khai thác page cache bằng cách lợi dụng logic bug trong hai subsystem kernel để ghi trực tiếp vào page fragments đang được cache, bypass quyền file. Kỹ thuật này tương tự Dirty Pipe nhưng dùng packet processing thay vì pipe buffer.

Cơ Chế Khai Thác xfrm-ESP (CVE-2026-43284)

  1. Trigger ESP packet: Userland gửi ESP packet (IPsec) qua sendmsg() tới socket AF_INET6 với IPV6_ADDRFORM.
  2. Page cache mapping: Kernel map ESP packet data vào page cache qua xfrm4_rcv_esp() → esp_input().
  3. Frag overwrite: Logic sai trong skb_to_sgvec() cho phép attacker kiểm soát skb_frag_page(), ghi đè arbitrary page trong cache của file hệ thống như /etc/passwd.
  4. File read trigger: Đọc file target → page cache hit → data đã bị corrupt.

skb_frag_page(&skb_shinfo(skb)->frags[0]) ← Attacker control

^ Được map trực tiếp vào page cache của /etc/passwd

Cơ Chế RxRPC (CVE-2026-43500)

  1. AF_RXRPC socket: Tạo socket AF_RXRPC với rxrpc.sock.
  2. Data injection: Gửi RxRPC data packet chứa payload độc hại.
  3. Page cache pollution: rxrpc_recvmsg() map packet trực tiếp vào page cache fragments không kiểm tra quyền.
  4. Universal write: Ghi đè bất kỳ file nào trong page cache bất kể owner permissions.

Điểm Khác Biệt Kỹ Thuật

Bước Dirty Pipe Dirty Frag (xfrm-ESP)
Vector splice() pipe sendmsg() ESP socket
Mapping pipe->buf → page skb->frags → page cache
Control pipe_buffer.flags skb_frag_page() index
Trigger pipe read File read (cache hit)

 

Root cause chung: Page cache không validate nguồn gốc dữ liệu khi được populate từ network stack thay vì regular file I/O.

Related Knowledge Base Posts