“Falsehood flies, and truth comes limping after it, so that when men come to be undeceived, it is too late; the jest is over, and the tale hath had its effect: […] like a physician, who hath found out an infallible medicine, after the patient is dead.” —Jonathan Swift

  • 13 Posts
  • 110 Comments
Joined 2 years ago
cake
Cake day: July 25th, 2024

help-circle




  • TheTechnician27@lemmy.worldMtoComic Strips@lemmy.world•Fine dining
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    8 hours ago

    Hi, OP. Rule 4 requires attribution (or an attempt), which this post kind-of-sort-of has via the signature. However, most won’t recognize it, and there are at least two other prominent "Ellis"es if you try to search for “comics” (Adam (comic strips) and Warren (comic books)). Nothing you did wrong; we just like to credit artists as much as possible so people can find more of their work.

    This is by cartoonist Ellis Rosen. You’re free to edit this into your post, but I can leave this stickied which works about as well.









  • > “sounds like someone trying to push their preferred language onto others.”

    > didn’t even name Rust in the first comment

    I literally only talked about Rust when someone else mentioned it, because I’m not specifically talking about Rust.

    Whereas yes, Rust is relevant to the Linux kernel for obvious reasons (matching C’s speed and being easily interoperable with it), I said “a modern language” because I’m talking generally about the use of old, unsafe languages and major exploits surrounding problems that modern languages fix cropping up every 5 seconds.

    I’m not going to police my own tone about what are clearly negligent engineering practices. SWE should be treated with the same level of scrutiny as other engineering fields when its poor, outdated practices are constantly causing accelerating worldwide damage.



  • I mean yes, I do, given safe Rust inherently fixes seemingly every exploit listed in this article:

    • RCE from integer overflow (not possible by default in Rust, CVSS 9.0)
    • RCE from a race condition (not possible in safe Rust, CVSS 9.0)
    • An exploit of a buffer copy
    • An out-of-bounds write leading to local privilege escalation
    • Using an uninitialized resource
    • TCP query stack buffer overflow leading to local privilege escalation

    I feel like it’s the 1960s and I’m being told “we get it, you like seatbelts”.


    Edit: Sorry, re: the first one. I was misremembering based on a mix of a few things (see below). It does this in debug mode (which in itself is good to have), and it won’t compile if it can detect an overflow statically, but it’s not checking over/underflow at runtime by default. It can do this if you want it to, but that’s an inherent speed penalty from C. I was thinking of Swift, which does automatically detect integer under/overflow at runtime unless you explicitly tell it not to on a per-operator basis.

    In the spirit of not making you “trust me bro” since I was so wrong about the integer under/overflow one, here’s Rust’s overview of how safe Rust guarantees against data races.