Re: [PATCH 5.10 083/102] scsi: iscsi: Restrict sessions and handles to admin capabilities

From: Lee Duncan
Date: Fri Mar 05 2021 - 19:06:37 EST


On 3/5/21 2:42 PM, Pavel Machek wrote:
> Hi!
>
>> From: Lee Duncan <lduncan@xxxxxxxx>
>>
>> commit 688e8128b7a92df982709a4137ea4588d16f24aa upstream.
>>
>> Protect the iSCSI transport handle, available in sysfs, by requiring
>> CAP_SYS_ADMIN to read it. Also protect the netlink socket by restricting
>> reception of messages to ones sent with CAP_SYS_ADMIN. This disables
>> normal users from being able to end arbitrary iSCSI sessions.
>
> Should not normal filesystem permissions be used?
>
>> +++ b/drivers/scsi/scsi_transport_iscsi.c
>> @@ -132,6 +132,9 @@ show_transport_handle(struct device *dev
>> char *buf)
>> {
>> struct iscsi_internal *priv = dev_to_iscsi_internal(dev);
>> +
>> + if (!capable(CAP_SYS_ADMIN))
>> + return -EACCES;
>> return sprintf(buf, "%llu\n", (unsigned long long)iscsi_handle(priv->iscsi_transport));
>> }
>> static DEVICE_ATTR(handle, S_IRUGO, show_transport_handle, NULL);
>
> AFAICT we make the file 0444 (world readable) and then fail the read
> with capability check. If the file is not supposed to be
> world-readable, it should have 0400 permissions, right?
>
> Best regards,
> Pavel
>

I am ok with changing file permissions, but there's nothing wrong with
checking capabilities upon entry, as well, since capability checks are a
higher degree of security than ACLs.
--
Lee Duncan