ocfs2: trusted xattr missing CAP_SYS_ADMIN check
PATCH 1/1 ocfs2: trusted xattr missing CAP_SYS_ADMIN check
The trusted extended attributes are only visible to the process which hvae CAP_SYS_ADMIN capability but the check is missing in ocfs2 xattr_handler trusted list. The check is important because this will be used for implementing mechanisms in the userspace for which other ordinary processes should not have access to.
--- fs/ocfs2/xattr.c | 3 +++ 1 file changed, 3 insertions(+)
fs/ocfs2/xattr.c +3 -0
@@ -7326,6 +7326,9 @@ static size_t ocfs2_xattr_trusted_list(struct dentry *dentry, char *list,const size_t prefix_len =XATTR_TRUSTED_PREFIX_LEN ;const size_t total_len = prefix_len + name_len +1 ; +if (!capable (CAP_SYS_ADMIN )) +return 0 ; +if (list && total_len <= list_size) {memcpy (list,XATTR_TRUSTED_PREFIX , prefix_len);memcpy (list + prefix_len, name, name_len);
Signature · 1 line
2.1.0
Quoted 11 lines · On Tue, 24 Mar 2015 11:46:32 -0400 Sanidhya Kashyap…
The trusted extended attributes are only visible to the process which hvae
CAP_SYS_ADMINcapability but the check is missing in ocfs2xattr_handlertrusted list. The check is important because this will be used for implementing mechanisms in the userspace for which other ordinary processes should not have access to....
fs/ocfs2/xattr.c static size_t ocfs2_xattr_trusted_list(struct dentry *dentry, char *list, · line 7334
Quoted 9 lines
fs/ocfs2/xattr.c +3
-0@@ -7326,6 +7326,9 @@ static size_t ocfs2_xattr_trusted_list(struct dentry *dentry, char *list,const size_t prefix_len =XATTR_TRUSTED_PREFIX_LEN ;const size_t total_len = prefix_len + name_len +1 ; +if (!capable (CAP_SYS_ADMIN )) +return 0 ; +if (list && total_len <= list_size) {memcpy (list,XATTR_TRUSTED_PREFIX , prefix_len);memcpy (list + prefix_len, name, name_len);
Ouch. Won't this break existing userspace?