Slashdot Mirror


Multiple Linux Distributions Affected By Crippling Bug In Systemd (agwa.name)

An anonymous reader writes: System administrator Andrew Ayer has discovered a potentially critical bug in systemd which can bring a vulnerable Linux server to its knees with one command. "After running this command, PID 1 is hung in the pause system call. You can no longer start and stop daemons. inetd-style services no longer accept connections. You cannot cleanly reboot the system." According to the bug report, Debian, Ubuntu, and CentOS are among the distros susceptible to various levels of resource exhaustion. The bug, which has existed for more than two years, does not require root access to exploit.

9 of 508 comments (clear)

  1. First of many by somenickname · · Score: 4, Insightful

    Putting this level of complexity at such a low level of the system is going to cause show stopping bugs. And, with every new release, more complexity is added.

    1. Re:First of many by somenickname · · Score: 5, Insightful

      The kernel is a necessary evil that supports thousands (millions?) of different devices, dozens of architectures, dozens of file systems, etc, etc. It's also the quintessential open source project with a meritocracy based hierarchy that dictates how things get added to the kernel. Systemd is Lennart and his henchmen carving out a fiefdom. Big difference.

    2. Re:First of many by Z00L00K · · Score: 4, Insightful

      The difference compared to systemd is that 'init' is small and have little overhead.

      Systemd is trying to fix stuff that isn't broken.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  2. Re:I don't hate on systemd but this is really bad by rossz · · Score: 5, Insightful

    How can you possibly overblow a bug that can bring down a system without root privileges?

    --
    -- Will program for bandwidth
  3. Re:I don't hate on systemd but this is really bad by somenickname · · Score: 5, Insightful

    Exactly this. You could probably paste a working and viable init.c into a Slashdot post and not cause it to emit the "Click to read more" link.

    On the other hand, you can do this:

    foo [ ~/src ]$ git clone https://github.com/systemd/sys...
    foo [ ~/src ]$ cd systemd
    foo [ ~/src/systemd ]$ wc -l `find . -name "*.c"` | tail -1
        374209 total

    That's a bit more code than a traditional Unix init system...

  4. OpenRC by Shane_Optima · · Score: 5, Insightful

    If you're dissatisfied with systemd and you don't need any of its fancier capabilities (which as an end user I'm assuming would be Docker stuff), please consider switching to a non-systemd distro as soon as possible and (if you can afford the time or money) contributing to their development. The more support systemd alternatives can garner, the more likely it is that projects to will resist unnecessary systemd dependencies and it might even be that systemd itself will eventually become more modular and moddable.

    I'm not a hater. I cringe every time I see +5 comments claiming that systemd didn't fix anything. Declarative syntax is (at least in principle) a massive win, especially for distro builders. And LXC is amazing stuff, and I certainly cannot fault Red Hat for wanting containers to behave perfectly. Unless something like Genode scores a major coup, containers are definitely the future of secure and robust computing.

    But the actual details of systemd's course have been hair-raising. It needs to be more UNIX-like and less draconian in its requirements and less toxic in its effects on the FOSS ecosystem and unfortunately (given Red Hat's behavior over the past decade) it appears that pushing alternatives hard is the only way they can conceivably be convinced to change their ways or reform anything moving forward.

    I encourage all of the haters here to try and put your money where your mouth is. Install, use, support and help promote a distro like Devuan or even better: go and find one of the multiple OpenRC distros available. OpenRC can't be the all-in-one automagic solution systemd endeavors to be, but it doesn't hide tons of stuff in huge C binaries and it's addressed most of the common frustrations people have with SysV. Arch Linux has an OpenRC variant (the standard install uses systemd), Gentoo was the distro that started OpenRC years ago, and Alpine linux uses it (which isn't an ideal easy desktop distro, but it's amazing for those wanting a secure minimal distro to build on and last time I checked it does run XFCE and Firefox.) There are probably others.

  5. Re:Systemd was SUCH A GREAT IDEA by a_n_d_e_r_s · · Score: 4, Insightful

    No its a technical struggle.

    The UNIX philosofy is to make many smaller programs that does one thing and does it well. From a bug point of view that been godsend; smaller programs are easier to debug and test.

    Large complex programs will always be a problem. Like webb browsers and systemd. The more complex a program becomes and the more it does the more complex is it to write secure code for all situations.

    --
    Just saying it like it are.
  6. Re:I don't hate on systemd but this is really bad by somenickname · · Score: 4, Insightful

    No, it's you who fails to see that what somenickname showed was not the number of lines of code in the systemd init but the number of lines of all the applications, deamons etc that is stored in the systemd source repository.

    And that should be a gigantic red flag to anyone. Why does the init system need all that stuff?

    Just like BSD stores all the code for their kernel and user space applications in a single repository.

    That single repository represents hundreds or thousands of different projects. The "git clone" I did represents one single project.

    It's just a guilt by git association.

    No, it's guilt by assimilation. Big difference.

  7. Re:I don't hate on systemd but this is really bad by dbIII · · Score: 4, Insightful

    Why does the init system need all that stuff?

    Because it's not an init system anymore, it's Lennart trying to put his name on everything between the application the user runs and the kernel.