linux-uconsole/drivers/infiniband/core
Jason Gunthorpe c92003c18f IB/security: Restrict use of the write() interface
commit e6bd18f57a upstream.

The drivers/infiniband stack uses write() as a replacement for
bi-directional ioctl().  This is not safe. There are ways to
trigger write calls that result in the return structure that
is normally written to user space being shunted off to user
specified kernel memory instead.

For the immediate repair, detect and deny suspicious accesses to
the write API.

For long term, update the user space libraries and the kernel API
to something that doesn't present the same security vulnerabilities
(likely a structured ioctl() interface).

The impacted uAPI interfaces are generally only available if
hardware from drivers/infiniband is installed in the system.

Reported-by: Jann Horn <jann@thejh.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
[ Expanded check to all known write() entry points ]
Signed-off-by: Doug Ledford <dledford@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-05-04 14:48:48 -07:00
..
addr.c IB/addr: Pass network namespace as a parameter 2015-10-28 12:32:47 -04:00
agent.c IB: split struct ib_send_wr 2015-10-08 11:09:10 +01:00
agent.h IB/mad: Add final OPA MAD processing 2015-06-12 14:49:18 -04:00
cache.c IB/cache: Add ib_find_gid_by_filter cache API 2015-10-21 23:48:17 -04:00
cm.c IB/cm: Fix a recently introduced deadlock 2016-03-03 15:07:25 -08:00
cm_msgs.h IB/core: Fix unaligned accesses 2015-05-05 13:21:27 -04:00
cma.c IB/cma: Fix RDMA port validation for iWarp 2016-03-03 15:07:32 -08:00
core_priv.h IB/core: Use GID table in AH creation and dmac resolution 2015-10-21 23:48:17 -04:00
device.c IB/core: Expose and rename ib_find_cached_gid_by_port cache API 2015-10-21 23:48:17 -04:00
fmr_pool.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
iwcm.c RDMA/iwcm: Use a default listen backlog if needed 2014-08-05 07:33:24 -07:00
iwcm.h
iwpm_msg.c RDMA/core: Fixes for port mapper client registration 2015-07-14 13:20:10 -04:00
iwpm_util.c RDMA/core: Fixes for port mapper client registration 2015-07-14 13:20:10 -04:00
iwpm_util.h RDMA/core: Fixes for port mapper client registration 2015-07-14 13:20:10 -04:00
mad.c IB/mad: Require CM send method for everything except ClassPortInfo 2015-12-08 12:19:11 -05:00
mad_priv.h IB: split struct ib_send_wr 2015-10-08 11:09:10 +01:00
mad_rmpp.c IB/mad: Add final OPA MAD processing 2015-06-12 14:49:18 -04:00
mad_rmpp.h
Makefile IB/core: Add RoCE GID table management 2015-08-30 18:08:50 -04:00
multicast.c IB/core: Add netdev and gid attributes paramteres to cache 2015-10-21 23:48:17 -04:00
netlink.c IB/core: Add rdma netlink helper functions 2015-08-30 18:12:25 -04:00
opa_smi.h IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
packer.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
roce_gid_mgmt.c IB/core: Fix use after free of ifa 2015-10-20 13:10:46 -04:00
sa.h
sa_query.c IB/sa: Put netlink request into the request list before sending 2015-12-07 16:43:01 -05:00
smi.c IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
smi.h IB: Add rdma_cap_ib_switch helper and use where appropriate 2015-07-14 13:20:08 -04:00
sysfs.c IB/core: Add netdev and gid attributes paramteres to cache 2015-10-21 23:48:17 -04:00
ucm.c IB/security: Restrict use of the write() interface 2016-05-04 14:48:48 -07:00
ucma.c IB/security: Restrict use of the write() interface 2016-05-04 14:48:48 -07:00
ud_header.c infiniband: add in export.h for files using EXPORT_SYMBOL/THIS_MODULE 2011-10-31 19:31:35 -04:00
umem.c IB/core: don't disallow registering region starting at 0x0 2015-04-15 16:05:02 -04:00
umem_odp.c IB/core: dma unmap optimizations 2015-05-05 09:18:02 -04:00
umem_rbtree.c IB/core: Implement support for MMU notifiers regarding on demand paging regions 2014-12-15 18:13:36 -08:00
user_mad.c IB/core: lock client data with lists_rwsem 2015-08-30 15:48:21 -04:00
uverbs.h IB/core: Extend ib_uverbs_create_qp 2015-10-21 23:16:46 -04:00
uverbs_cmd.c IB/core: use RCU for uverbs id lookup 2015-12-07 16:39:26 -05:00
uverbs_main.c IB/security: Restrict use of the write() interface 2016-05-04 14:48:48 -07:00
uverbs_marshall.c IB/core: Remove smac and vlan id from path record 2015-10-21 23:48:18 -04:00
verbs.c IB core: Fix ib_sg_to_pages() 2015-12-07 17:20:12 -05:00