OSDN Git Service

tomoyo: Loosen pathname/domainname validation. tomoyo-pr-20201012
authorTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Wed, 9 Sep 2020 11:05:58 +0000 (20:05 +0900)
committerTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Mon, 12 Oct 2020 10:53:34 +0000 (19:53 +0900)
commita207516776769404dfa8ae89003efba1004a55df
tree46c06918427badaab11d5326cbb70e1d7c99cdba
parentbbf5c979011a099af5dc76498918ed7df445635b
tomoyo: Loosen pathname/domainname validation.

Since commit e2dc9bf3f5275ca3 ("umd: Transform fork_usermode_blob into
fork_usermode_driver") started calling execve() on a program written in
a local mount which is not connected to mount tree,
tomoyo_realpath_from_path() started returning a pathname in
"$fsname:/$pathname" format which violates TOMOYO's domainname rule that
it must start with "<$namespace>" followed by zero or more repetitions of
pathnames which start with '/'.

Since $fsname must not contain '.' since commit 79c0b2df79eb56fc ("add
filesystem subtype support"), tomoyo_correct_path() can recognize a token
which appears '/' before '.' appears (e.g. proc:/self/exe ) as a pathname
while rejecting a token which appears '.' before '/' appears (e.g.
exec.realpath="/bin/bash" ) as a condition parameter.

Therefore, accept domainnames which contain pathnames which do not start
with '/' but contain '/' before '.' (e.g. <kernel> tmpfs:/bpfilter_umh ).

Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
security/tomoyo/util.c