diff -ru a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c --- a/sys/kern/sys_generic.c 2026-08-31 10:52:06.653685962 +0000 +++ b/sys/kern/sys_generic.c 2026-08-31 10:52:35.625315618 +0000 @@ -160,6 +160,8 @@ if ((ssize_t)uap->nbyte < 0) return(EINVAL); + if (uap->offset < (off_t)-1) + return(EINVAL); aiov.iov_base = uap->buf; aiov.iov_len = uap->nbyte; @@ -224,6 +226,8 @@ int error; int flags; + if (uap->offset < (off_t)-1) + return (EINVAL); error = iovec_copyin(uap->iovp, &iov, aiov, uap->iovcnt, &auio.uio_resid); if (error) @@ -367,6 +371,8 @@ if ((ssize_t)uap->nbyte < 0) error = EINVAL; + if (uap->offset < (off_t)-1) + return(EINVAL); aiov.iov_base = (void *)(uintptr_t)uap->buf; aiov.iov_len = uap->nbyte; @@ -428,6 +434,8 @@ int error; int flags; + if (uap->offset < (off_t)-1) + return (EINVAL); error = iovec_copyin(uap->iovp, &iov, aiov, uap->iovcnt, &auio.uio_resid); if (error) diff -ru a/sys/vfs/ext2fs/ext2_vnops.c b/sys/vfs/ext2fs/ext2_vnops.c --- a/sys/vfs/ext2fs/ext2_vnops.c 2026-08-31 10:52:06.657685910 +0000 +++ b/sys/vfs/ext2fs/ext2_vnops.c 2026-08-31 10:52:41.105245571 +0000 @@ -1839,7 +1839,8 @@ KASSERT(orig_resid >= 0, ("ext2_read: uio->uio_resid < 0")); if (orig_resid == 0) return (0); - KASSERT(uio->uio_offset >= 0, ("ext2_read: uio->uio_offset < 0")); + if (uio->uio_offset < 0) + return (EINVAL); fs = ip->i_e2fs; if (uio->uio_offset < ip->i_size && uio->uio_offset >= fs->e2fs_maxfilesize) @@ -1977,7 +1978,8 @@ } KASSERT(uio->uio_resid >= 0, ("ext2_write: uio->uio_resid < 0")); - KASSERT(uio->uio_offset >= 0, ("ext2_write: uio->uio_offset < 0")); + if (uio->uio_offset < 0) + return (EINVAL); fs = ip->i_e2fs; if ((uoff_t)uio->uio_offset + uio->uio_resid > fs->e2fs_maxfilesize) return (EFBIG);