From: Alec Brown <[email protected]> When the normal module is loaded, the normal and normal_exit commands are registered but aren't unregistered when the module is unloaded. We need to add calls to grub_unregister_command() when unloading the module for these commands.
Fixes: CVE-2025-61663 Fixes: CVE-2025-61664 Reported-by: Alec Brown <[email protected]> Signed-off-by: Alec Brown <[email protected]> Reviewed-by: Daniel Kiper <[email protected]> --- grub-core/normal/main.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c index 8c2acf938..de9a3f961 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -510,7 +510,7 @@ grub_mini_cmd_clear (struct grub_command *cmd __attribute__ ((unused)), return 0; } -static grub_command_t cmd_clear; +static grub_command_t cmd_clear, cmd_normal, cmd_normal_exit; static void (*grub_xputs_saved) (const char *str); static const char *features[] = { @@ -554,10 +554,10 @@ GRUB_MOD_INIT(normal) grub_env_export ("pager"); /* Register a command "normal" for the rescue mode. */ - grub_register_command ("normal", grub_cmd_normal, - 0, N_("Enter normal mode.")); - grub_register_command ("normal_exit", grub_cmd_normal_exit, - 0, N_("Exit from normal mode.")); + cmd_normal = grub_register_command ("normal", grub_cmd_normal, + 0, N_("Enter normal mode.")); + cmd_normal_exit = grub_register_command ("normal_exit", grub_cmd_normal_exit, + 0, N_("Exit from normal mode.")); /* Reload terminal colors when these variables are written to. */ grub_register_variable_hook ("color_normal", NULL, grub_env_write_color_normal); @@ -599,4 +599,6 @@ GRUB_MOD_FINI(normal) grub_register_variable_hook ("color_highlight", NULL, NULL); grub_fs_autoload_hook = 0; grub_unregister_command (cmd_clear); + grub_unregister_command (cmd_normal); + grub_unregister_command (cmd_normal_exit); } -- 2.11.0 _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
