Message ID | 20200728160101.48554-1-sgarzare@redhat.com (mailing list archive) |
---|---|
Headers | show |
Series | io_uring: add restrictions to support untrusted applications and guests | expand |
Gentle ping. I'll rebase on master, but if there are any things that I can improve, I'll be happy to do. Thanks, Stefano On Tue, Jul 28, 2020 at 06:00:58PM +0200, Stefano Garzarella wrote: > v3: > - added IORING_RESTRICTION_SQE_FLAGS_ALLOWED and > IORING_RESTRICTION_SQE_FLAGS_REQUIRED > - removed IORING_RESTRICTION_FIXED_FILES_ONLY opcode > - enabled restrictions only when the rings start > > RFC v2: https://lore.kernel.org/io-uring/20200716124833.93667-1-sgarzare@redhat.com > > RFC v1: https://lore.kernel.org/io-uring/20200710141945.129329-1-sgarzare@redhat.com > > Following the proposal that I send about restrictions [1], I wrote this series > to add restrictions in io_uring. > > I also wrote helpers in liburing and a test case (test/register-restrictions.c) > available in this repository: > https://github.com/stefano-garzarella/liburing (branch: io_uring_restrictions) > > Just to recap the proposal, the idea is to add some restrictions to the > operations (sqe opcode and flags, register opcode) to safely allow untrusted > applications or guests to use io_uring queues. > > The first patch changes io_uring_register(2) opcodes into an enumeration to > keep track of the last opcode available. > > The second patch adds IOURING_REGISTER_RESTRICTIONS opcode and the code to > handle restrictions. > > The third patch adds IORING_SETUP_R_DISABLED flag to start the rings disabled, > allowing the user to register restrictions, buffers, files, before to start > processing SQEs. > > Comments and suggestions are very welcome. > > Thank you in advance, > Stefano > > [1] https://lore.kernel.org/io-uring/20200609142406.upuwpfmgqjeji4lc@steredhat/ > > Stefano Garzarella (3): > io_uring: use an enumeration for io_uring_register(2) opcodes > io_uring: add IOURING_REGISTER_RESTRICTIONS opcode > io_uring: allow disabling rings during the creation > > fs/io_uring.c | 167 ++++++++++++++++++++++++++++++++-- > include/uapi/linux/io_uring.h | 60 +++++++++--- > 2 files changed, 207 insertions(+), 20 deletions(-) > > -- > 2.26.2 >