landlock: Add abstract UNIX socket scoping
Introduce a new "scoped" member to landlock_ruleset_attr that can specify LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET to restrict connection to abstract UNIX sockets from a process outside of the socket's domain. Two hooks are implemented to enforce these restrictions: unix_stream_connect and unix_may_send. Closes: https://github.com/landlock-lsm/linux/issues/7 Signed-off-by: Tahera Fahimi <fahimitahera@gmail.com> Link: https://lore.kernel.org/r/5f7ad85243b78427242275b93481cfc7c127764b.1725494372.git.fahimitahera@gmail.com [mic: Fix commit message formatting, improve documentation, simplify hook_unix_may_send(), and cosmetic fixes including rename of LANDLOCK_SCOPED_ABSTRACT_UNIX_SOCKET] Co-developed-by: Mickaël Salaün <mic@digikod.net> Signed-off-by: Mickaël Salaün <mic@digikod.net>
This commit is contained in:
committed by
Mickaël Salaün
parent
a430d95c5e
commit
21d52e295a
@@ -44,6 +44,12 @@ struct landlock_ruleset_attr {
|
||||
* flags`_).
|
||||
*/
|
||||
__u64 handled_access_net;
|
||||
/**
|
||||
* @scoped: Bitmask of scopes (cf. `Scope flags`_)
|
||||
* restricting a Landlock domain from accessing outside
|
||||
* resources (e.g. IPCs).
|
||||
*/
|
||||
__u64 scoped;
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -274,4 +280,25 @@ struct landlock_net_port_attr {
|
||||
#define LANDLOCK_ACCESS_NET_BIND_TCP (1ULL << 0)
|
||||
#define LANDLOCK_ACCESS_NET_CONNECT_TCP (1ULL << 1)
|
||||
/* clang-format on */
|
||||
|
||||
/**
|
||||
* DOC: scope
|
||||
*
|
||||
* Scope flags
|
||||
* ~~~~~~~~~~~
|
||||
*
|
||||
* These flags enable to isolate a sandboxed process from a set of IPC actions.
|
||||
* Setting a flag for a ruleset will isolate the Landlock domain to forbid
|
||||
* connections to resources outside the domain.
|
||||
*
|
||||
* Scopes:
|
||||
*
|
||||
* - %LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET: Restrict a sandboxed process from
|
||||
* connecting to an abstract UNIX socket created by a process outside the
|
||||
* related Landlock domain (e.g. a parent domain or a non-sandboxed process).
|
||||
*/
|
||||
/* clang-format off */
|
||||
#define LANDLOCK_SCOPE_ABSTRACT_UNIX_SOCKET (1ULL << 0)
|
||||
/* clang-format on*/
|
||||
|
||||
#endif /* _UAPI_LINUX_LANDLOCK_H */
|
||||
|
||||
Reference in New Issue
Block a user