Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-111135

[RFE] Systemd should ignore unknown -- kernel command line options instead of failing during re-exec (glibc update scenario)

Linking RHIVOS CVEs to...Migration: Automation ...Sync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • rhel-9.8
    • rhel-9.6
    • systemd
    • No
    • Low
    • rhel-systemd
    • 2
    • False
    • False
    • Hide

      None

      Show
      None
    • No
    • None
    • None
    • None
    • Unspecified Release Note Type - Unknown
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      What were you trying to do that didn't work?

      On RHEL 9.6, if an invalid option prefixed with -- is present in the kernel command line, the system remains bootable but crashes fatally when systemd re-execs itself. This happens during certain package updates (e.g. glibc), leading to system instability and multiple failed services.

      The expectation is that systemd should gracefully ignore invalid/unknown kernel command line options and not crash when reloading.

      Please provide the package NVR for which the bug is seen:

      systemd-252-51.el9_6.1

      How reproducible is this bug?:

      Steps to reproduce

      • Start with a clean, updated RHEL 9.6 system. 
        Kernel cmdline is simple:
        # grep "^GRUB_CMDLINE_LINUX" /etc/default/grub
        GRUB_CMDLINE_LINUX="ipv6.disable=1"
        # cat /proc/cmdline
        ... ro ipv6.disable=1
        
      • Install glibc.i686:
      # yum install glibc.i686

      Works fine, system remains stable. 

       

      • Add an invalid string prefixed with --
      # vi /etc/default/grub
      GRUB_CMDLINE_LINUX="ipv6.disable=1 --randomstring"
      
      # grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline
      # reboot  
      

       

      • After reboot:
      # cat /proc/cmdline ... ro ipv6.disable=1 --randomstring

      System still boots and runs.

       

      • Install glibc.i686 :
      # yum install glibc.i686

      System fatally destabilizes.

       

      • Observed state:
      # systemctl status | grep -m1 State
          State: starting
      # systemctl list-units --state=failed |grep "^●"
      ● atd.service loaded failed failed Deferred execution scheduler
      ● chronyd.service loaded failed failed NTP client/server
      ● mcelog.service loaded failed failed Machine Check Exception Logging Daemon
      ● plymouth-start.service loaded failed failed Show Plymouth Boot Screen
      ● polkit.service loaded failed failed Authorization Manager
      ● salt-minion.service loaded failed failed The Salt Minion
      ● saphostagent.service loaded failed failed SAP Host Agent
      ● tuned.service loaded failed failed Dynamic System Tuning Daemon
      

       systemd-journald loses connection and logs errors

      Expected results

      • Invalid kernel cmdline options should be ignored with a warning.
      • System should remain stable and glibc updates should not cause crashes.

      Actual results

      • System fatally destabilizes when systemd re-execs after glibc update.
      • Multiple services fail.
      • Journald errors occur.

              dtardon@redhat.com David Tardon
              rhn-support-prjagtap Pradeep Jagtap
              systemd maint mailing list systemd maint mailing list
              Frantisek Sumsal Frantisek Sumsal
              Votes:
              1 Vote for this issue
              Watchers:
              7 Start watching this issue

                Created:
                Updated: