[KB8911] Kernel crasht of bevriest met "Missing ENDBR" bij het uitvoeren van ESET-toepassingen op Linux

OPMERKING:

Deze pagina is vertaald door een computer. Klik op English onder Languages op deze pagina om de originele tekst weer te geven. Als u iets onduidelijk vindt, neem dan contact op met uw lokale support.

Probleem

Details


Klik om uit te breiden

ESET Linux applicaties kunnen worden beïnvloed op systemen waar Intel Control-flow Enforcement Technology (CET) met Indirect Branch Tracking (IBT) is ingeschakeld in de Linux kernel. Op bepaalde Intel CPU's en Linux distributies (bijvoorbeeld Debian 13) kan dit resulteren in een kernel BUG of panic, die voor de gebruiker verschijnt als een systeemcrash of freeze.

Control-flow Enforcement Technology (CET) is een hardwaregebaseerde beveiligingsfunctie die is geïmplementeerd op moderne Intel CPU's om control-flow hijacking aanvallen tegen te gaan. Een van de onderdelen, Indirect Branch Tracking (IBT), dwingt validatie van indirecte takken af.

Wanneer Indirect Branch Tracking (IBT) is ingeschakeld:

  • Alle geldige doelen van indirecte vertakkingen moeten beginnen met een speciale instructie(ENDBR64 op x86-64 systemen; ENDBR32 op x86 systemen)
  • Deze instructies fungeren als landingsplaatsen voor indirecte aanroepen en sprongen
  • Als een indirecte vertakking gericht is op code die niet begint met een ENDBR-instructie, geeft de CPU een besturingsbeschermingsfout(#CP)

Linux kernels met Control-flow Enforcement Technology (CET) ondersteuning ingeschakeld (bijvoorbeeld via CONFIG_X86_CET) dwingen Indirect Branch Tracking (IBT) af voor zowel kernelcode als laadbare kernelmodules. Wanneer ESET Linux applicaties in dergelijke omgevingen worden gebruikt, kan de kernel tijdens de uitvoering op een besturingsbeschermingsfout stuiten en eindigen met een kernel BUG of panic.

Dit resulteert meestal in een systeemcrash of bevriezing, met kernel logberichten die lijken op:

Missing ENDBR: __x64_sys_close+0x9/0x80 kernel BUG at arch/x86/kernel/cet.c:102!

Ondersteuning voor Control-flow Enforcement Technology (CET) met Indirect Branch Tracking (IBT), inclusief de vereiste ENDBR instructies, is gepland voor toekomstige releases van ESET Linux applicaties.


Oplossing

Indirect Branch Tracking (IBT) uitschakelen op Linux distributies

Het uitschakelen van Indirect Branch Tracking (IBT) vermindert de bescherming

Het uitschakelen van Indirect Branch Tracking (IBT) verlaagt het niveau van hardware-geforceerde control-flow bescherming geleverd door Intel Control-flow Enforcement Technology (CET).

Deze oplossing is een workaround en moet als tijdelijk worden beschouwd totdat ESET Linux applicaties compatibel zijn met Control-flow Enforcement Technology (CET) met Indirect Branch Tracking (IBT).

Om Indirect Branch Tracking (IBT) uit te schakelen, voeg je ibt=off toe aan de Kernel boot command line parameters via de GRUB configuratie:

  1. Open het GRUB-configuratiebestand(/etc/default/grub).

  2. Zoek in het GRUB-configuratiebestand de GRUB_CMDLINE_LINUX_DEFAULT variabele en voeg ibt=off toe aan de bestaande kernelparameters. Bijvoorbeeld:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ibt=off"
  3. Herbouw de GRUB-configuratie.

    • Op Debian gebaseerde systemen (Ubuntu, Linux Mint, Debian):

      sudo update-grub
    • Red Hat Enterprise Linux:

      • BIOS-gebaseerde machines:

        sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      • UEFI-gebaseerde machines:

        sudo grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
  4. Herstart het systeem om de wijziging toe te passen.