From a633b009eda016216784d15718b98d5ed0b9b4b3 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 13 Jun 2023 08:39:56 +0000 Subject: [PATCH] vmm, virtio-devices: allow mremap for consoles SerialBuffer uses VecDeque::extend, which calls realloc, which a maximum buffer size of 1 MiB. Starting at allocation sizes of 128 KiB, musl's mallocng allocator will use mremap for the allocation. Since this was not permitted by the seccomp rules, heavy write load could crash cloud-hypervisor with a seccomp failure. (Encountered using virtio-console, but I don't see any reason it wouldn't happen for the legacy serial device too.) Signed-off-by: Alyssa Ross (cherry picked from commit beed5e5d6d5635fe58b5d5960435ddcc3b89a1d0) --- virtio-devices/src/seccomp_filters.rs | 1 + vmm/src/seccomp_filters.rs | 1 + 2 files changed, 2 insertions(+) diff --git a/virtio-devices/src/seccomp_filters.rs b/virtio-devices/src/seccomp_filters.rs index 10dc34d35..43d723b8b 100644 --- a/virtio-devices/src/seccomp_filters.rs +++ b/virtio-devices/src/seccomp_filters.rs @@ -259,6 +259,7 @@ fn virtio_thread_common() -> Vec<(i64, Vec)> { (libc::SYS_madvise, vec![]), (libc::SYS_mmap, vec![]), (libc::SYS_mprotect, vec![]), + (libc::SYS_mremap, vec![]), (libc::SYS_munmap, vec![]), (libc::SYS_openat, vec![]), (libc::SYS_read, vec![]), diff --git a/vmm/src/seccomp_filters.rs b/vmm/src/seccomp_filters.rs index a7a2796fb..e108996d1 100644 --- a/vmm/src/seccomp_filters.rs +++ b/vmm/src/seccomp_filters.rs @@ -708,6 +708,7 @@ fn vcpu_thread_rules( (libc::SYS_madvise, vec![]), (libc::SYS_mmap, vec![]), (libc::SYS_mprotect, vec![]), + (libc::SYS_mremap, vec![]), (libc::SYS_munmap, vec![]), (libc::SYS_nanosleep, vec![]), (libc::SYS_newfstatat, vec![]),