/ capabilities の組み合わせ。 いずれも「syscall を最終的に処理するのは host kernel」という前提は崩していない。 container 内の Agent process ↓ ただの普通の syscall host Linux kernel namespace fd / mount point が見える範囲か ✓ 通る cgroup リソース量 ✓ 通る seccomp syscall 番号の allowlist (splice / write は通常許可) ✓ 通る DAC / capabilities 自分の pipe への write ✓ 通る ★ ここまで通った後の処理 ★ copy_page_to_iter_pipe() ← bug があるのはここ pipe_write() ← CAN_MERGE 残留を踏む ↓ host 上の任意ファイルの page cache が書き換わる splice(file_fd, ..., pipe_fd, ...); ▸ write(pipe_fd, payload, ...); ▸ 51