[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <BF7FF550B3EEF70F+12371232.c26f.191e7222004.Coremail.kxwang23@m.fudan.edu.cn>
Date: Fri, 13 Sep 2024 00:47:39 +0800 (CST)
From: "Kaixin Wang" <kxwang23@...udan.edu.cn>
To: "Logan Gunthorpe" <logang@...tatee.com>
Cc: 21302010073@...udan.edu.cn, 21210240012@...udan.edu.cn, dave.jiang@...el.com,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
kurt.schwemmer@...rosemi.com, bhelgaas@...gle.com
Subject: Re: [PATCH] ntb: ntb_hw_switchtec: Fix use after free vulnerability
in switchtec_ntb_remove due to race condition
At 2024-09-10 02:17:57, "Logan Gunthorpe" <logang@...tatee.com> wrote:
>
>
>On 2024-09-09 11:20, Kaixin Wang wrote:
>> In the switchtec_ntb_add function, it can call switchtec_ntb_init_sndev
>> function, then &sndev->check_link_status_work is bound with
>> check_link_status_work. switchtec_ntb_link_notification may be called
>> to start the work.
>>
>> If we remove the module which will call switchtec_ntb_remove to make
>> cleanup, it will free sndev through kfree(sndev), while the work
>> mentioned above will be used. The sequence of operations that may lead
>> to a UAF bug is as follows:
>>
>> CPU0 CPU1
>>
>> | check_link_status_work
>> switchtec_ntb_remove |
>> kfree(sndev); |
>> | if (sndev->link_force_down)
>> | // use sndev
>>
>> Fix it by ensuring that the work is canceled before proceeding with
>> the cleanup in switchtec_ntb_remove.
>
>Thank you, this looks good to me.
>
>Reviewed-by: Logan Gunthorpe <logang@...tatee.com>
>
Thanks for the review!
Best regards,
Kaixin Wang
Powered by blists - more mailing lists