ACK: [SRU][P/Q][PATCH v2 0/4] Fix efivarfs NULL pointer dereference from a process exiting with an open /dev/snapshot fd
Wei-Lin Chang
weilin.chang at canonical.com
Tue Jun 24 02:36:25 UTC 2025
On Fri, Jun 20, 2025 at 03:10:59PM -0500, Jacob Martin wrote:
> BugLink: https://bugs.launchpad.net/bugs/2113990
>
> SRU Justification:
>
> [Impact]
>
> When a process exits while still holding an open file descriptor to
> /dev/snapshot, a NULL pointer dereference occurs in
> efivarfs_pm_notify().
>
> [ 166.826999] BUG: kernel NULL pointer dereference, address: 0000000000000028
> [ 166.830942] #PF: supervisor read access in kernel mode
> [ 166.831702] #PF: error_code(0x0000) - not-present page
> ...
> [ 166.861222] vfs_kern_mount+0x13/0x40
> [ 166.861797] efivarfs_pm_notify+0xfe/0x130
> [ 166.862442] ? __pfx_efivarfs_actor+0x10/0x10
> [ 166.863098] notifier_call_chain+0x5e/0xe0
> [ 166.863723] blocking_notifier_call_chain+0x41/0x70
> [ 166.864474] pm_notifier_call_chain+0x1a/0x30
> [ 166.865053] snapshot_release+0x71/0xb0
> ...
>
> This issue was introduced by commit 11092db5b573 ("efivarfs: fix NULL
> dereference on resume") in 6.14, which was an effort to fix a bug
> introduced by b5d1e6ee761a ("efivarfs: add variable resync after
> hibernation") in 6.14.
>
> [Fix]
>
> This issue affects plucky:linux and questing:linux only. It is resolved
> by cherry picking commit 0e4f9483959b ("efivarfs: support freeze/thaw")
> from upstream, with a simple backport of its dependency 33445d6fc520
> ("libfs: export find_next_child()").
>
> [Test Plan]
>
> The issue is triggered with a simple C reproducer:
> root at plucky:~# cat test.c
> #include <fcntl.h>
> #include <stdio.h>
> #include <unistd.h>
>
> int main() {
> int fd;
>
> fd = open("/dev/snapshot", O_RDONLY);
> if (!fd)
> perror("open");
>
> return 0;
> }
> root at plucky:~# gcc -o test test.c
> root at plucky:~# ./test
>
> This can be used to verify the issue has been resolved. With these two
> patches, it is expected that a NULL pointer dereference does not occur,
> as it does without them.
>
> [What could go wrong]
>
> These changes primarily affect the EFI variable filesystem
> implementation. Errors could manifest as misbehavior of the EFI variable
> sysfs nodes, particularly during system suspend and resume.
>
> [Other notes]
> v2: include patches for Questing
>
> --
> 2.43.0
>
>
> --
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team
For both P/Q:
Acked-by: Wei-Lin Chang <weilin.chang at canonical.com>
More information about the kernel-team
mailing list