From 357899b83ed59b97b28e4dad3094d7d50206d99b Mon Sep 17 00:00:00 2001 From: mmetc <92726601+mmetc@users.noreply.github.com> Date: Mon, 23 May 2022 09:46:39 +0200 Subject: [PATCH] fixed uid/gid bound check regression (#1555) --- pkg/csplugin/utils.go | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/pkg/csplugin/utils.go b/pkg/csplugin/utils.go index 6149d68c4..cb8104a06 100644 --- a/pkg/csplugin/utils.go +++ b/pkg/csplugin/utils.go @@ -82,32 +82,19 @@ func getPluginTypeAndSubtypeFromPath(path string) (string, string, error) { } func getProcessAttr(username string, groupname string) (*syscall.SysProcAttr, error) { - u, err := user.Lookup(username) + uid, err := getUID(username) if err != nil { return nil, err } - g, err := user.LookupGroup(groupname) + gid, err := getGID(groupname) if err != nil { return nil, err } - uid, err := strconv.ParseInt(u.Uid, 10, 32) - if err != nil { - return nil, err - } - if uid < 0 && uid > math.MaxInt32 { - return nil, fmt.Errorf("out of bound uid") - } - gid, err := strconv.ParseInt(g.Gid, 10, 32) - if err != nil { - return nil, err - } - if gid < 0 && gid > math.MaxInt32 { - return nil, fmt.Errorf("out of bound gid") - } + return &syscall.SysProcAttr{ Credential: &syscall.Credential{ - Uid: uint32(uid), - Gid: uint32(gid), + Uid: uid, + Gid: gid, }, }, nil }