

XFS_IOC_SWAPEXT。这个接口原本用于交换两个文件的数据 extent 映射,Agent 想借此让受保护文件的内容通过另一个可访问的文件描述符暴露出来,从而绕过已有的权限控制。












SCHED_IDLE 下,在前者需要 CPU 时主动让路;但调低优先级仍然挡不住 SMT sibling 之间的竞争,所以 latency-sensitive workload 又配上 Linux core scheduling,避免无关的 best-effort 任务同时跑在同一个物理核的兄弟线程上。SCHED_IDLE 和 core scheduling 后,增幅被压到 17.3%。剩下的干扰来自频率、内存带宽和共享 LLC 等因素,DSec 没有继续堆更复杂的隔离机制,因为这个结果已经能够满足需求。
docker pause 冻结进程树,然后打开 swap,通过 memory.reclaim 主动回收匿名页和 file-backed page;恢复时先用 MADV_WILLNEED 异步预取,再 unpause。microVM 更直接:保存内存和执行状态快照,随后杀掉 Firecracker 进程释放 runtime memory;恢复时重新启动进程,从 snapshot 接着执行。
/bin/bash,绕过检查或者给后续 shell session 注入命令。文件和 socket 权限收紧以后,才有了文章开头那个 XFS_IOC_SWAPEXT 的故事。grep,一路遍历 /proc 并读取 /proc/kpagecgroup,最终触发内核 bug,把内核直接搞崩;有漏洞利用任务原本应该把攻击命令转发给单独的目标 VM,结果命令误执行在 Agent 自己的容器里,把自己的 kernel 打挂;还有 Agent 运行了 yes,而 chronus 为了支持异步读取命令输出持续记录 stdout,最后几十 GB 数据被一路写进存储。
pack_diff,任何时候都可以对 sandbox 做一次增量磁盘快照,之后再把这个 snapshot 恢复成新的 sandbox。这样一来,一个 Agent 的交互式构建过程可以直接变成可复用环境,不需要再走一遍独立的 image-building pipeline。

yes 堆出几十 GB 输出、攻击命令打到 Agent 自己身上,这些不太光彩的事故都被留在了论文里。
