Re: [bug report] nitro_enclaves: Add logic for setting an enclave vCPU

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

 





On 02/11/2020 08:20, Dan Carpenter wrote:
On Fri, Oct 30, 2020 at 05:23:18PM +0200, Paraschiv, Andra-Irina wrote:

On 30/10/2020 13:30, Dan Carpenter wrote:
Hello Andra Paraschiv,

The patch ff8a4d3e3a99: "nitro_enclaves: Add logic for setting an
enclave vCPU" from Sep 21, 2020, leads to the following static
checker warning:

          drivers/virt/nitro_enclaves/ne_misc_dev.c:471 ne_donated_cpu()
          error: passing untrusted data 'cpu' to 'cpumask_test_cpu()'

drivers/virt/nitro_enclaves/ne_misc_dev.c
    1093          switch (cmd) {
    1094          case NE_ADD_VCPU: {
    1095                  int rc = -EINVAL;
    1096                  u32 vcpu_id = 0;
    1097
    1098                  if (copy_from_user(&vcpu_id, (void __user *)arg, sizeof(vcpu_id)))
                                             ^^^^^^^^

    1099                          return -EFAULT;
    1100
    1101                  mutex_lock(&ne_enclave->enclave_info_mutex);
    1102
    1103                  if (ne_enclave->state != NE_STATE_INIT) {
    1104                          dev_err_ratelimited(ne_misc_dev.this_device,
    1105                                              "Enclave is not in init state\n");
    1106
    1107                          mutex_unlock(&ne_enclave->enclave_info_mutex);
    1108
    1109                          return -NE_ERR_NOT_IN_INIT_STATE;
    1110                  }
    1111
    1112                  if (vcpu_id >= (ne_enclave->nr_parent_vm_cores *
    1113                      ne_enclave->nr_threads_per_core)) {

To prevent a buffer overflow vcpu_id has to be less than "nr_cpu_ids".
Is "ne_enclave->nr_parent_vm_cores * ne_enclave->nr_threads_per_core"
<= nr_cpu_ids?  If so then it's fine.
Hi Dan,

Thanks for reaching out with regard to this reported issue from the static
analysis.

"nr_cpu_ids" is used when the number of cores is initialized, so it should
be fine. Let me know if I miss something and a check has to be added to
directly compare to "nr_cpu_ids".
Yeah.  That works.  Thanks for taking a look at this.


Ok, thanks for the follow-up.

Andra



Amazon Development Center (Romania) S.R.L. registered office: 27A Sf. Lazar Street, UBC5, floor 2, Iasi, Iasi County, 700045, Romania. Registered in Romania. Registration number J22/2621/2005.




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux