Thread (7 messages) 7 messages, 4 authors, 2021-07-13

Re: Use-after-free access in j1939_session_deactivate

From: Greg KH <hidden>
Date: 2021-07-13 04:43:40
Also in: netdev, stable

On Mon, Jul 12, 2021 at 03:40:46PM -0700, Xiaochen Zou wrote:
Hi,
It looks like there are multiple use-after-free accesses in
j1939_session_deactivate()

static bool j1939_session_deactivate(struct j1939_session *session)
{
bool active;

j1939_session_list_lock(session->priv);
active = j1939_session_deactivate_locked(session); //session can be freed inside
j1939_session_list_unlock(session->priv); // It causes UAF read and write

return active;
}

session can be freed by
j1939_session_deactivate_locked->j1939_session_put->__j1939_session_release->j1939_session_destroy->kfree.
Therefore it makes the unlock function perform UAF access.
Great, can you make up a patch to fix this issue so you can get credit
for finding and solving it?

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help