Hi Paul, > #define CREATE_TRACE_POINTS > #include <trace/events/io_uring.h> > @@ -6537,6 +6538,11 @@ static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req, > if (!req->work.creds) > return -EINVAL; > get_cred(req->work.creds); > + ret = security_uring_override_creds(req->work.creds); > + if (ret) { > + put_cred(req->work.creds); > + return ret; > + } Why are you calling this per requests, shouldn't this be done in io_register_personality()? I'm also not sure if this really gains anything as io_register_personality() only captures the value of get_current_cred(), so the process already has changed to the credentials (at least once for the io_uring_register(IORING_REGISTER_PERSONALITY) call). metze