Skip to content

Commit a92cb5d

Browse files
gnoackl0kod
authored andcommitted
samples/landlock: Add support for named UNIX domain socket restrictions
The access right for UNIX domain socket lookups is grouped with the read-write rights in the sample tool. Rationale: In the general case, any operations are possible through a UNIX domain socket, including data-mutating operations. Cc: Justin Suess <utilityemal77@gmail.com> Cc: Mickaël Salaün <mic@digikod.net> Signed-off-by: Günther Noack <gnoack3000@gmail.com> Link: https://lore.kernel.org/r/20260327164838.38231-7-gnoack3000@gmail.com Signed-off-by: Mickaël Salaün <mic@digikod.net>
1 parent a46e32d commit a92cb5d

1 file changed

Lines changed: 9 additions & 3 deletions

File tree

samples/landlock/sandboxer.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ static int parse_path(char *env_path, const char ***const path_list)
111111
LANDLOCK_ACCESS_FS_WRITE_FILE | \
112112
LANDLOCK_ACCESS_FS_READ_FILE | \
113113
LANDLOCK_ACCESS_FS_TRUNCATE | \
114-
LANDLOCK_ACCESS_FS_IOCTL_DEV)
114+
LANDLOCK_ACCESS_FS_IOCTL_DEV | \
115+
LANDLOCK_ACCESS_FS_RESOLVE_UNIX)
115116

116117
/* clang-format on */
117118

@@ -295,11 +296,12 @@ static bool check_ruleset_scope(const char *const env_var,
295296
LANDLOCK_ACCESS_FS_MAKE_SYM | \
296297
LANDLOCK_ACCESS_FS_REFER | \
297298
LANDLOCK_ACCESS_FS_TRUNCATE | \
298-
LANDLOCK_ACCESS_FS_IOCTL_DEV)
299+
LANDLOCK_ACCESS_FS_IOCTL_DEV | \
300+
LANDLOCK_ACCESS_FS_RESOLVE_UNIX)
299301

300302
/* clang-format on */
301303

302-
#define LANDLOCK_ABI_LAST 8
304+
#define LANDLOCK_ABI_LAST 9
303305

304306
#define XSTR(s) #s
305307
#define STR(s) XSTR(s)
@@ -438,6 +440,10 @@ int main(const int argc, char *const argv[], char *const *const envp)
438440
~LANDLOCK_RESTRICT_SELF_LOG_NEW_EXEC_ON;
439441
__attribute__((fallthrough));
440442
case 7:
443+
case 8:
444+
/* Removes LANDLOCK_ACCESS_FS_RESOLVE_UNIX for ABI < 9 */
445+
ruleset_attr.handled_access_fs &=
446+
~LANDLOCK_ACCESS_FS_RESOLVE_UNIX;
441447
/* Must be printed for any ABI < LANDLOCK_ABI_LAST. */
442448
fprintf(stderr,
443449
"Hint: You should update the running kernel "

0 commit comments

Comments
 (0)