linux/drivers/crypto
Sean Christopherson e606073b77 crypto: ccp: Detect and reject "invalid" addresses destined for PSP
[ Upstream commit 74c1f1366e ]

Explicitly reject using pointers that are not virt_to_phys() friendly
as the source for SEV commands that are sent to the PSP.  The PSP works
with physical addresses, and __pa()/virt_to_phys() will not return the
correct address in these cases, e.g. for a vmalloc'd pointer.  At best,
the bogus address will cause the command to fail, and at worst lead to
system instability.

While it's unlikely that callers will deliberately use a bad pointer for
SEV buffers, a caller can easily use a vmalloc'd pointer unknowingly when
running with CONFIG_VMAP_STACK=y as it's not obvious that putting the
command buffers on the stack would be bad.  The command buffers are
relative  small and easily fit on the stack, and the APIs to do not
document that the incoming pointer must be a physically contiguous,
__pa() friendly pointer.

Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Fixes: 200664d523 ("crypto: ccp: Add Secure Encrypted Virtualization (SEV) command support")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20210406224952.4177376-3-seanjc@google.com>
Reviewed-by: Brijesh Singh <brijesh.singh@amd.com>
Acked-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2021-05-14 09:50:41 +02:00
..
allwinner crypto: sun8i-ss - Fix memory leak of pad 2021-05-14 09:50:17 +02:00
amcc crypto: crypto4xx - Replace bitwise OR with logical OR in crypto4xx_build_pd 2020-12-30 11:53:17 +01:00
amlogic crypto: amlogic - Convert to DEFINE_SHOW_ATTRIBUTE 2020-09-25 17:48:16 +10:00
axis treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
bcm crypto: bcm - Rename struct device_private to bcm_device_private 2021-03-04 11:37:40 +01:00
caam crypto: caam - fix printing on xts fallback allocation error path 2020-12-30 11:53:03 +01:00
cavium Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-10-13 08:50:16 -07:00
ccp crypto: ccp: Detect and reject "invalid" addresses destined for PSP 2021-05-14 09:50:41 +02:00
ccree crypto: ccree - Simplify with dev_err_probe() 2020-09-04 17:57:16 +10:00
chelsio crypto: chelsio - Read rxchannel-id from firmware 2021-05-14 09:50:19 +02:00
hisilicon crypto: hisilicon/sec - fixes a printing error 2021-05-11 14:47:17 +02:00
inside-secure crypto: inside-secure - Fix sizeof() mismatch 2020-12-30 11:53:00 +01:00
marvell crypto: marvel/cesa - Fix tdma descriptor on 64-bit 2021-02-03 23:28:40 +01:00
mediatek crypto: mediatek - simplify the return expression of mtk_dfe_dse_reset() 2020-10-02 18:02:10 +10:00
nx mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
qat crypto: qat - Fix a double free in adf_create_ring 2021-05-14 09:50:17 +02:00
qce crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
rockchip crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
stm32 crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c 2021-05-11 14:47:21 +02:00
ux500 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-10-13 08:50:16 -07:00
virtio crypto: virtio - don't use 'default m' 2020-08-21 14:47:50 +10:00
vmx powerpc: Replace HTTP links with HTTPS ones 2020-07-22 00:01:23 +10:00
xilinx crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
atmel-aes-regs.h
atmel-aes.c crypto: atmel-aes - convert to use be32_add_cpu() 2020-09-25 17:48:12 +10:00
atmel-authenc.h
atmel-ecc.c mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
atmel-i2c.c crypto: atmel-i2c - Fix wakeup fail 2020-03-20 14:36:51 +11:00
atmel-i2c.h
atmel-sha-regs.h
atmel-sha.c crypto: lib/sha1 - remove unnecessary includes of linux/cryptohash.h 2020-05-08 15:32:17 +10:00
atmel-sha204a.c
atmel-tdes-regs.h
atmel-tdes.c crypto: atmel-tdes - use semicolons rather than commas to separate statements 2020-10-02 18:02:15 +10:00
exynos-rng.c
geode-aes.c
geode-aes.h
hifn_795x.c crypto: drivers - use semicolons rather than commas to separate statements 2020-10-02 18:02:15 +10:00
img-hash.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
ixp4xx_crypto.c crypto: ixp4xx - Fix the size used in a 'dma_free_coherent()' call 2020-08-21 14:45:27 +10:00
Kconfig crypto: omap-sham - Fix link error without crypto-engine 2021-01-27 11:55:06 +01:00
Makefile crypto: sa2ul - Add crypto driver 2020-07-23 17:34:16 +10:00
mxs-dcp.c crypto: mxs-dcp - permit asynchronous skcipher as fallback 2020-07-16 21:49:03 +10:00
n2_asm.S
n2_core.c crypto: n2 - Fix sparse endianness warning 2020-09-18 17:20:12 +10:00
n2_core.h
omap-aes-gcm.c crypto: omap-aes - avoid spamming console with self tests 2020-06-04 22:03:39 +10:00
omap-aes.c crypto: omap-aes - Fix PM reference leak on omap-aes.c 2021-05-11 14:47:21 +02:00
omap-aes.h crypto: omap-aes - permit asynchronous skcipher as fallback 2020-07-16 21:49:02 +10:00
omap-crypto.c crypto: omap-crypto - fix userspace copied buffer access 2020-06-04 22:03:40 +10:00
omap-crypto.h
omap-des.c crypto: omap-des - Fix sparse/compiler warnings 2020-06-26 14:46:42 +10:00
omap-sham.c crypto: omap-sham - fix digcnt register handling with export/import 2020-09-18 17:20:08 +10:00
padlock-aes.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
padlock-sha.c crypto: Convert to new CPU match macros 2020-03-24 21:36:06 +01:00
picoxcell_crypto_regs.h
picoxcell_crypto.c crypto: picoxcell - Fix potential race condition bug 2020-08-21 14:47:50 +10:00
qcom-rng.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
s5p-sss.c crypto: s5p-sss - Pass error from clk_get and reduce verbosity on deferral 2020-09-11 14:39:17 +10:00
sa2ul.c crypto: sa2ul - Fix memory leak of rxd 2021-05-14 09:50:17 +02:00
sa2ul.h crypto: sa2ul - Add AEAD algorithm support 2020-07-23 17:34:17 +10:00
sahara.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
talitos.c crypto: talitos - Fix ctr(aes) on SEC1 2021-03-04 11:37:45 +01:00
talitos.h crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error) 2021-03-04 11:37:45 +01:00