В ядре Linux устранена следующая уязвимость:
fpga: microchip-spi: исправить нулевое значение OOB header_size, прочитанное в mpf_ops_parse_header()
mpf_ops_parse_header() считывает header_size из битового потока по адресу
MPF_HEADER_SIZE_OFFSET (24). Когда header_size равен нулю, выражение
*(buf + header_size - 1) читает один байт до начала буфера. Поскольку в mpf_ops для параметра Initial_header_size установлено значение 71, ядро fpga-mgr
гарантирует, что буфер достаточно велик, чтобы достичь MPF_HEADER_SIZE_OFFSET.
Единственным реальным пробелом является случай с нулевым размером заголовка, который не может быть
решено путем предоставления буфера большего размера, поэтому верните -EINVAL.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: fpga: microchip-spi: fix zero header_size OOB read in mpf_ops_parse_header() mpf_ops_parse_header() reads header_size from the bitstream at MPF_HEADER_SIZE_OFFSET (24). When header_size is zero, the expression *(buf + header_size - 1) reads one byte before the buffer start. Since initial_header_size is set to 71 in mpf_ops, the fpga-mgr core guarantees the buffer is large enough to reach MPF_HEADER_SIZE_OFFSET. The only real gap is the zero header_size case, which cannot be resolved by providing a larger buffer, so return -EINVAL.