NHÀ ĐĂNG KÝ DUY TRÌ TÊN MIỀN XUẤT SẮC NĂM 2025

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

Ngày đăng: 2 tháng trước

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ướcDirty PipeDirty Frag (xfrm-ESP)
Vectorsplice() pipesendmsg() ESP socket
Mappingpipe->buf → pageskb->frags → page cache
Controlpipe_buffer.flagsskb_frag_page() index
Triggerpipe readFile 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.

Chia sẻ

Bài viết tương tự