diff --git a/pkg/cri/sbserver/podsandbox/sandbox_run_linux.go b/pkg/cri/sbserver/podsandbox/sandbox_run_linux.go index 6c0ae002b..462ad6f8c 100644 --- a/pkg/cri/sbserver/podsandbox/sandbox_run_linux.go +++ b/pkg/cri/sbserver/podsandbox/sandbox_run_linux.go @@ -115,7 +115,7 @@ func (c *Controller) sandboxContainerSpec(id string, config *runtime.PodSandboxC Source: c.getResolvPath(id), Destination: resolvConfPath, Type: "bind", - Options: []string{"rbind", "ro"}, + Options: []string{"rbind", "ro", "nosuid", "nodev", "noexec"}, }, })) diff --git a/pkg/cri/sbserver/podsandbox/sandbox_run_linux_test.go b/pkg/cri/sbserver/podsandbox/sandbox_run_linux_test.go index 27996a1a3..4f6340778 100644 --- a/pkg/cri/sbserver/podsandbox/sandbox_run_linux_test.go +++ b/pkg/cri/sbserver/podsandbox/sandbox_run_linux_test.go @@ -91,6 +91,14 @@ func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConf assert.NotEqual(t, "", spec.Process.SelinuxLabel) assert.NotEqual(t, "", spec.Linux.MountLabel) } + + assert.Contains(t, spec.Mounts, runtimespec.Mount{ + Source: "/test/root/sandboxes/test-id/resolv.conf", + Destination: resolvConfPath, + Type: "bind", + Options: []string{"rbind", "ro", "nosuid", "nodev", "noexec"}, + }) + } return config, imageConfig, specCheck } diff --git a/pkg/cri/server/sandbox_run_linux.go b/pkg/cri/server/sandbox_run_linux.go index a1a26af8f..380e85d02 100644 --- a/pkg/cri/server/sandbox_run_linux.go +++ b/pkg/cri/server/sandbox_run_linux.go @@ -133,7 +133,7 @@ func (c *criService) sandboxContainerSpec(id string, config *runtime.PodSandboxC Source: c.getResolvPath(id), Destination: resolvConfPath, Type: "bind", - Options: []string{"rbind", "ro"}, + Options: []string{"rbind", "ro", "nosuid", "nodev", "noexec"}, }, })) diff --git a/pkg/cri/server/sandbox_run_linux_test.go b/pkg/cri/server/sandbox_run_linux_test.go index 9c646e069..70209a45d 100644 --- a/pkg/cri/server/sandbox_run_linux_test.go +++ b/pkg/cri/server/sandbox_run_linux_test.go @@ -91,6 +91,14 @@ func getRunPodSandboxTestData() (*runtime.PodSandboxConfig, *imagespec.ImageConf assert.NotEqual(t, "", spec.Process.SelinuxLabel) assert.NotEqual(t, "", spec.Linux.MountLabel) } + + assert.Contains(t, spec.Mounts, runtimespec.Mount{ + Source: "/test/root/sandboxes/test-id/resolv.conf", + Destination: resolvConfPath, + Type: "bind", + Options: []string{"rbind", "ro", "nosuid", "nodev", "noexec"}, + }) + } return config, imageConfig, specCheck }