• Delta_V@lemmy.world
    link
    fedilink
    English
    arrow-up
    144
    arrow-down
    1
    ·
    edit-2
    3 months ago

    This is a Bash fork bomb, a malicious function definition that recursively calls itself:

    :() — defines a function named : (yes, just a colon).
    
    { :|:& } — the function's body:
    
        :|: — pipes the output of the function into another call of itself, creating two processes each time.
    
        & — runs the call in the background, meaning it doesn’t wait for completion.
    
    ; — ends the function definition.
    
    : — finally, this invokes the function once, starting the bomb.
    
      • Peruvian_Skies@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        4
        ·
        4 months ago

        There aren’t any square brackets.

        The form “function(){content}” in bash defines a function called “function” that, when called by name, executes “content”. This forkbomb defines a function called : (just a colon) which calls itself twice in a new subprocess (the two colons inside the curly brackets). It thus spawns more and more copies of itself until it overwhelms your processor.

        • baduhai@sopuli.xyz
          link
          fedilink
          English
          arrow-up
          4
          ·
          edit-2
          4 months ago

          I understood, it’s just that @Delta_V@lemmy.world added square brackets to his explanation.

          { [:|:&] } — the function's body:

      • Delta_V@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 months ago

        because I didn’t know what it did either, then made a typo in the ChatGPT prompt when asking about it