pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/55765: make security/priv work with per_user_tmp=YES



>Number:         55765
>Category:       pkg
>Synopsis:       make security/priv work with per_user_tmp=YES
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Oct 29 07:30:00 +0000 2020
>Originator:     Kimmo Suominen
>Release:        NetBSD 9.1
>Organization:
>Environment:
System: NetBSD equinoxe.x.gw.fi 9.1 NetBSD 9.1 (GENERIC) #0: Sun Oct 18 19:24:30 UTC 2020 mkrepro%mkrepro.NetBSD.org@localhost:/usr/src/sys/arch/amd64/compile/GENERIC amd64
Architecture: x86_64
Machine: amd64
>Description:

	Using security/priv to run commands as another user on a
	system with per_user_tmp=YES is not practical, because
	after switching to another user /tmp no longer exists. This
	is because the /private/tmp/@ruid target is created by
	setusercontext(3), and security/priv does not call it (using
	setuid(2)/setgid(2)/initgroups(3) instead).

>How-To-Repeat:

	% su -m
	# pkg_add priv
	# echo 0:root:0000000: > /usr/pkg/etc/priv/${USER}
	# rm -rf /private/tmp/0

	Alternatively reboot the system, which would be the common cause
	for /private/tmp/0 no longer existing.

	% priv vipw
	ex/vi: Error: Log file: No such file or directory
	vipw: /usr/bin/vi: Undefined error: 0
	vipw: /etc/master.passwd: unchanged

	[The error from vi is also not as helpful as it could be.]

>Fix:

	Proposed patch:
	https://www.netbsd.org/~kim/priv-setusercontext.diff

	Workaround: Only authorize users using the F_SU flag in the priv
	configuration files. This requires creating the corresponding
	"su-target" or "sutarget" links as well.



Home | Main Index | Thread Index | Old Index