Skip to content

Commit 3d31338

Browse files
committed
Add /proc/asound to masked paths
While looking through the Moby source code was found /proc/asound to be shared with containers as read-only. This can lead to two information leaks. --- **Leak of media playback status of the host** Steps to reproduce the issue: - Listen to music/Play a YouTube video/Do anything else that involves sound output - Execute docker run --rm ubuntu:latest bash -c "sleep 7; cat /proc/asound/card*/pcm*p/sub*/status | grep state | cut -d ' ' -f2 | grep RUNNING || echo 'not running'" - See that the containerized process is able to check whether someone on the host is playing music as it prints RUNNING - Stop the music output - Execute the command again (The sleep is delaying the output because information regarding playback status isn't propagated instantly) - See that it outputs not running **Describe the results you received:** A containerized process is able to gather information on the playback status of an audio device governed by the host. Therefore a process of a container is able to check whether and what kind of user activity is present on the host system. Also, this may indicate whether a container runs on a desktop system or a server as media playback rarely happens on server systems. The description above is in regard to media playback - when examining `/proc/asound/card*/pcm*c/sub*/status` (`pcm*c` instead of `pcm*p`) this can also leak information regarding capturing sound, as in recording audio or making calls on the host system. Reported-by: Philipp Schmied <[email protected]> Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 6bb83f2 commit 3d31338

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

oci/spec_unix.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ func createDefaultSpec(ctx context.Context, id string) (*specs.Spec, error) {
154154
Linux: &specs.Linux{
155155
MaskedPaths: []string{
156156
"/proc/acpi",
157+
"/proc/asound",
157158
"/proc/kcore",
158159
"/proc/keys",
159160
"/proc/latency_stats",
@@ -164,7 +165,6 @@ func createDefaultSpec(ctx context.Context, id string) (*specs.Spec, error) {
164165
"/proc/scsi",
165166
},
166167
ReadonlyPaths: []string{
167-
"/proc/asound",
168168
"/proc/bus",
169169
"/proc/fs",
170170
"/proc/irq",

0 commit comments

Comments
 (0)