From: Nguyen Duy Nhat Anh <neganhat@gmail.com>
To: mchehab@kernel.org
Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
Nguyen Duy Nhat Anh <neganhat@gmail.com>
Subject: [PATCH 0/3] media: em28xx: fix multiple disconnect races and UAFs
Date: Fri, 23 Oct 2026 02:46:17 +0700 [thread overview]
Message-ID: <20261022194618.14170-1-neganhat@gmail.com> (raw)
This patch series addresses three distinct lifecycle and race condition bugs in
the em28xx driver triggered during concurrent USB disconnect and userspace
file operations (open/close).
Fixing the initial refcount underflow (addressed in Patch 3/3) allowed
syzbot re-testing to progress further down the teardown pipeline, which
subsequently unveiled two deeper Use-After-Free (UAF) bugs in sequence
(Patches 1/3 and 2/3).
Summary of changes in the patches:
1. media: em28xx: check dev->disconnected in em28xx_v4l2_open()
Rejects open() attempts with -ENODEV when the device is disconnected,
preventing hardware register I/O on freed dev->intf memory.
2. media: em28xx: clear v4l2_dev.mdev on media device unregister
Zeros out v4l2_dev.mdev in em28xx_unregister_media_device() before freeing
dev->media_dev, avoiding a dangling pointer read in v4l2_release() during
file close.
3. media: em28xx: fix refcount underflow in em28xx_free_v4l2()
Removes v4l2_device_unregister() from the v4l2_dev release callback
em28xx_free_v4l2() and invokes it in em28xx_v4l2_fini() instead, eliminating
an illegal double-decrement on a zero reference count.
Nguyen Duy Nhat Anh (3):
media: em28xx: check dev->disconnected in em28xx_v4l2_open()
media: em28xx: clear v4l2_dev.mdev on media device unregister
media: em28xx: fix refcount underflow in em28xx_free_v4l2()
drivers/media/usb/em28xx/em28xx-cards.c | 2 ++
drivers/media/usb/em28xx/em28xx-video.c | 5 ++---
2 files changed, 4 insertions(+), 3 deletions(-)
--
2.55.0
next reply other threads:[~2026-10-22 19:46 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-22 19:46 Nguyen Duy Nhat Anh [this message]
2026-10-22 19:48 ` [PATCH 1/3] media: em28xx: check dev->disconnected in em28xx_v4l2_open() Nguyen Duy Nhat Anh
2026-10-22 19:48 ` [PATCH 2/3] media: em28xx: clear v4l2_dev.mdev on media device unregister Nguyen Duy Nhat Anh
2026-10-22 19:49 ` [PATCH 3/3] media: em28xx: fix refcount underflow in em28xx_free_v4l2() Nguyen Duy Nhat Anh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261022194618.14170-1-neganhat@gmail.com \
--to=neganhat@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.