From 47ce33935f36555f13d23b0d2e6e882f7752598f Mon Sep 17 00:00:00 2001 From: Matheus Date: Fri, 9 Oct 2026 02:10:12 -0300 Subject: [PATCH] mknodat: refuse to create symlinks The current mknodat code creates symlinks when requested. Not only does this break POSIX, it also causes a kernel crash (NULL-deref on tmpfs_readlink). Refuse to create symlinks with mknodat. Found by syzkaller fuzzing. --- kernel-src/sys/syscalls/mknodat.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kernel-src/sys/syscalls/mknodat.c b/kernel-src/sys/syscalls/mknodat.c index dec648ac..e83bc344 100644 --- a/kernel-src/sys/syscalls/mknodat.c +++ b/kernel-src/sys/syscalls/mknodat.c @@ -34,6 +34,11 @@ syscallret_t syscall_mknodat(context_t *, int dirfd, char *upath, mode_t mode, d goto cleanup; int type = vfs_getsystemtype(GETTYPE(mode)); + if (type == V_TYPE_LINK) { + ret.errno = EINVAL; + goto cleanup; + } + mode = GETMODE(mode); vattr_t attr = {