mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
A malicious or compromised VIO server can return a num_written value in the
discover targets MAD response that exceeds max_targets. This value is
stored directly in vhost->num_targets without validation, and is then used
as the loop bound in ibmvfc_alloc_targets() to index into disc_buf[], which
is only allocated for max_targets entries. Indices at or beyond max_targets
access kernel memory outside the DMA-coherent allocation. The
out-of-bounds data is subsequently embedded in Implicit Logout and PLOGI
MADs that are sent back to the VIO server, leaking kernel memory.
Fix by clamping num_written to max_targets before storing it.
Fixes:
|
||
|---|---|---|
| .. | ||
| ibmvfc.c | ||
| ibmvfc.h | ||
| ibmvscsi.c | ||
| ibmvscsi.h | ||
| Makefile | ||