2
1

0034-normal-Remove-variables-hooks-on-module-unload.patch 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. From 6290cc499f0fcaa82b3764cf1d9beb2ff27d82a1 Mon Sep 17 00:00:00 2001
  2. From: B Horn <b@horn.uk>
  3. Date: Fri, 1 Nov 2024 23:46:55 +0000
  4. Subject: [PATCH] normal: Remove variables hooks on module unload
  5. The normal module does not entirely cleanup after itself in
  6. its GRUB_MOD_FINI() leaving a few variables hooks in place.
  7. It is not possible to unload normal module now but fix the
  8. issues for completeness.
  9. On the occasion replace 0s with NULLs for "pager" variable
  10. hooks unregister.
  11. Fixes: CVE-2025-0622
  12. Reported-by: B Horn <b@horn.uk>
  13. Signed-off-by: B Horn <b@horn.uk>
  14. Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
  15. Upstream: 9c16197734ada8d0838407eebe081117799bfe67
  16. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
  17. ---
  18. grub-core/normal/main.c | 4 +++-
  19. 1 file changed, 3 insertions(+), 1 deletion(-)
  20. diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c
  21. index 3b48cd333..5d848c864 100644
  22. --- a/grub-core/normal/main.c
  23. +++ b/grub-core/normal/main.c
  24. @@ -582,7 +582,9 @@ GRUB_MOD_FINI(normal)
  25. grub_xputs = grub_xputs_saved;
  26. grub_set_history (0);
  27. - grub_register_variable_hook ("pager", 0, 0);
  28. + grub_register_variable_hook ("pager", NULL, NULL);
  29. + grub_register_variable_hook ("color_normal", NULL, NULL);
  30. + grub_register_variable_hook ("color_highlight", NULL, NULL);
  31. grub_fs_autoload_hook = 0;
  32. grub_unregister_command (cmd_clear);
  33. }
  34. --
  35. 2.50.1