#14807·gvisor

gofer 连接到主机 Unix 套接字,而不需要调用者的附加组

作者: dany74q创建于 2026年9月17日更新于 2026年9月17日

连接ConnectCreds在主机连接(runsc/fsgofer/lisafs.go:904:::::914)前将gofer线程切换到呼叫者的有效gid和uid,并从未设置其补充组,因此一个沙盒化的过程,其唯一对主机unix套接字的权利通过一个补充组而通过Linux连接的地方被拒绝.

< 细节> <摘要 > 制作人 </摘要 >

# 只有1337组可以到达的插座
python3 - c'import os, socket; s=socket.socket(socket.AF UNIX); s.bind (""/tmp/s"); os.chown (""/tmp/s"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
而 True: s. accept ()' ” (T)

# uid 1000 有补充组1337
setpriv --reuid=1000 --regid=1000 -- groups=1337 python3 - c" 导入套接字; socket(socket.AF UNIX). connection ("/tmp/s"); print ("已连接").
已连接

runc --host-uds=open --network=ne do setpriv --reuid=1 000 --regid=1 000 -- groups=1337 python3 -c 'import socket; socket (socket.AF UNIX). connect ("/tmp/s"); print ("已连接").
连接引用错误 : [Errno 111] 连接被拒绝

</详情>

提议在 #14808中修复.