Skip to content

(勘误) P56 - 3.4.1.3 CVE-2019-5736:覆盖宿主机上的 runC 文件 #9

@XDTG

Description

@XDTG

书中攻击步骤中,对 #!/proc/self/exe 的作用理解存在问题:

5)runc 最后将执行用户通过 docker exec 指定的 /bin/sh,它的内容在第 1 步中已经被替换成 #!/proc/self/exe,因此实际上将执行宿主机上的 runc,而 runc 也已经在第 4 步中被我们覆盖掉了。

#!/proc/self/exe 的作用在这里应该是: 向容器中的监听进程提供一个 non-dumpable 的 runc 进程,以便对其 /proc/<pid>/exe 符号链接解引用,也就是第 3 步成功的前提。

至于最终 shellcode 的执行,需要等待宿主机上下一次执行已被修改的 runc 时直接触发。

https://unit42.paloaltonetworks.com/breaking-docker-via-runc-explaining-cve-2019-5736/

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions