A flaw was found in DPDK lib/vhost vhost-crypto. vhostcryptocheckchainrequest() adds uint32t length fields without overflow checks, so a wrapped sum can pass the cap while preparewritebackdata() still uses the original dstdatalen. writebackdata() then memcpy/memset that length from a host mbuf. The RSA request path has no equivalent length cap.
A flaw was found in DPDK lib/vhost vhost-crypto. The indirect-descriptor snapshot double-fetches a guest descriptor next index, allowing a malicious guest to cause an out-of-bounds access in the host backend.
A flaw was found in DPDK lib/vhost vhost-crypto. preparewritebackdata() can fail after allocating a write-back node and before setting next to NULL. freewbdata() then recurses on an uninitialized next pointer, which can hang or crash the host vhost-crypto process.
A flaw was found in DPDK lib/vhost vhost-crypto. A guest can supply an avail-ring descriptor index that is used without bounds checking, causing an out-of-bounds write in the host vhost-crypto backend.
A flaw was found in DPDK lib/vhost vhost-crypto. Session cleanup can leave a stale cached session pointer, and the data path does not check the session type before attaching it, leading to use-after-free or type confusion in the host vhost-crypto backend.
A flaw was found in DPDK lib/vhost vhost-crypto. vhostcryptoclosesess() frees a cryptodev session without invalidating the per-device session cache, so a later request with the same session id uses a dangling pointer. The data path also attaches vhostsession->sym or vhostsession->asym without checking the session type, so an asymmetric session can be treated as symmetric.