• chewypoops@lemmy.world
    link
    fedilink
    arrow-up
    58
    arrow-down
    7
    ·
    4 days ago

    Why are they calling out specific distros for a kernel issue? It’s the kernel, it affects every distro using an affected release of it.

    • xmo748@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      So could have Java, Go, C# or any language with GC. With garbage collection, the options object stays alive as long as any CPU holds a pointer to it, so use-after-free can’t happen.

      Besides, this exploit is so hard to pull off the only realistic outcome is a kernel panic, and that hasn’t even been publicly demoed.

      • thingsiplay@lemmy.ml
        link
        fedilink
        arrow-up
        5
        arrow-down
        1
        ·
        3 days ago

        So could have Java, Go, C# or any language with GC.

        No. Those aren’t allowed in Linux Kernel.

        With garbage collection

        Garbage Collection is not usable in an operating system Kernel.

        • xmo748@programming.dev
          link
          fedilink
          arrow-up
          4
          ·
          3 days ago

          Clearly, but it’s worth pointing out that this kind of problem isn’t uniquely fixed by “just use Rust”.

          • thingsiplay@lemmy.ml
            link
            fedilink
            arrow-up
            3
            arrow-down
            1
            ·
            3 days ago

            I never said that only Rust prevents this. I just said using Rust in the Kernel would have prevented this issue.

            • xmo748@programming.dev
              link
              fedilink
              arrow-up
              2
              ·
              2 days ago

              Fair enough. Don’t you think it simplifies the issue a little bit? How long would it take to rewrite the entire TCP stack in rust?

              • thingsiplay@lemmy.ml
                link
                fedilink
                arrow-up
                1
                ·
                2 days ago

                I don’t think a rewrite in Rust is necessary for everything that has a bug. Instead fixing the bug is probably more secure, before such alternative Rust code is mature enough to replace it.

            • diaphragmwp@discuss.tchncs.de
              link
              fedilink
              English
              arrow-up
              1
              arrow-down
              1
              ·
              3 days ago

              It doesn’t. It’s just a separate fact that Rust allows LLM generated code in. The common argument is that Rust doesn’t make everything it touches secure.

              • thingsiplay@lemmy.ml
                link
                fedilink
                arrow-up
                2
                arrow-down
                3
                ·
                3 days ago

                The common argument is that Rust doesn’t make everything it touches secure.

                No one said Rust makes everything it touches secure. You should stop thinking in black and white. I said this specific issue would not have happened with Rust, because Rust catches this type of issue at compilation time.

                • diaphragmwp@discuss.tchncs.de
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  arrow-down
                  1
                  ·
                  3 days ago

                  catches this type of issue at compilation time

                  This type of issue is called use-after-free.

                  I sent a link to a use-after-free bug in RedoxOS, the OS advertised as being written in Rust for security. The issue is tracked as CVE with severity 7.8.

  • Rimu@piefed.social
    link
    fedilink
    English
    arrow-up
    38
    ·
    4 days ago

    You can disable multipath TCP by issuing this command

    sudo sysctl -w net.mptcp.enabled=0

    persist across reboots with

    echo "net.mptcp.enabled=0" | sudo tee /etc/sysctl.d/99-mptcp.conf


    If your kernel is older than 5.6 then there is no multipath TCP to disable. e.g. Ubuntu 20.04 should be fine.

    • walderan@sh.itjust.works
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      Tacking this on here to increase visibility.
      You can see who is already listening to multipath TCP by running:

      ss -Mln

      running the sysctl command will prevent future ports being opened, but it will not close existing ones, you need to manually restart the services/containers.
      Go applications enable the functionality in their ports by default.
      My understanding is that a proper fix will come from a kernel update, since this affects plain TCP, but MPTCP has a known attack path.

  • SorteKanin@feddit.dkOP
    link
    fedilink
    arrow-up
    29
    ·
    4 days ago

    The score sounds a bit overblown considering this is for MPTCP which is as far as I understand rarely used? And it sounds like the chance of this leading to anything more than a crash is low. But whatever.

    It’s a data race. Memory safety is still super important for security.

  • litchralee@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    21
    arrow-down
    1
    ·
    3 days ago

    IPv6 is not affected by this race because the kernel copies the options for IPv6 connections.

    It’s been a slow-going effort to get a compile flag into the kernel that disables IPv4, but this is precisely the type of bug which that flag would have avoided. When devices choose to natively use IPv6-only – eg IoT – they really shouldn’t have to also accept an increased attack surface from Legacy IP, something that is increasingly unnecessary.

    Disabling IPv4 when it’s unneeded is good security posture, but such a choice is not available yet in Linux.

    • Zykino@programming.dev
      link
      fedilink
      English
      arrow-up
      15
      ·
      3 days ago

      On every embedded including a few IoT devices I worked on, every single time the IPv6 is either outright disabled, ignored, or treated like IPv4 even when telling my client what they want is not how IPv6 is designed.

      May not be the same everywhere, just my anecdotal experience.

      Also remember:

      The ‘S’ in IoT stands for security.

    • pHr34kY@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      3 days ago

      I’ve been doing this at home. So far, none of my phones or access points use IPv4. I should be able to get the desktops off it soon. Microsoft finally got it working in Windows after decades of (stalled) development.