Re: [PATCH] mailbox: fix a UAF bug in msg_submit()
From: Xianting TIan
Date: Tue Aug 17 2021 - 01:59:12 EST
在 2021/8/17 下午12:29, Jassi Brar 写道:
On Fri, Aug 6, 2021 at 7:15 AM Xianting Tian
<xianting.tian@xxxxxxxxxxxxxxxxx> wrote:
We met a UAF issue during our mailbox testing.
In synchronous mailbox, we use mbox_send_message() to send a message
and wait for completion. mbox_send_message() calls msg_submit() to
send the message for the first time, if timeout, it will send the
message in tx_tick() for the second time.
Seems like your controller's .send_data() returns error. Can you
please explain why it does so? Because
send_data() only _accepts_ data for further transmission... which
should seldom be a problem.
Thanks for the comments,
We developed virtio-mailbox for heterogeneous virtualization system.
virtio-mailbox is based on the mialbox framework.
In virtio framework, its send func 'virtqueue_add_outbuf()' may return
error, which caused .send_data() return error. And also contains other
csenarios.
But I think mailbox framework shouldn't depend on .send_data() always
return OK, as .send_data() is implemented by mailbox hardware
manufacturer, which is not controlled by mailbox framework itself.
You said 'seldom', but it still possible we can meet such issue. sucn
as flexrm_send_data() of drivers/mailbox/bcm-flexrm-mailbox.c.
I think mailbox framework should be work normaly no matter .send_data()
returns ok or not ok. Do you think so? thanks
thanks.