researchers find an unfixable bug in EVERY ARM cpu

Sdílet
Vložit
  • čas přidán 9. 07. 2024
  • ARM is a great computer architecture with some great security features. In this video we talk about TikTag, a new attack that shows how one can use speculative execution to see the future.
    arxiv.org/pdf/2406.08719
    🏫 COURSES 🏫 Learn to code in C at lowlevel.academy
    🛒 GREAT BOOKS FOR THE LOWEST LEVEL🛒
    Blue Fox: Arm Assembly Internals and Reverse Engineering: amzn.to/4394t87
    Practical Reverse Engineering: x86, x64, ARM, Windows Kernel, Reversing Tools, and Obfuscation : amzn.to/3C1z4sk
    Practical Malware Analysis: The Hands-On Guide to Dissecting Malicious Software : amzn.to/3C1daFy
    The Ghidra Book: The Definitive Guide: amzn.to/3WC2Vkg
    🔥 SOCIALS 🔥
    Come hang out at lowlevel.tv
  • Věda a technologie

Komentáře • 884

  • @LowLevelLearning
    @LowLevelLearning  Před 18 dny +184

    haha wow that lowlevel.academy guy seemed pretty cool huh?

    • @tomschnaars9555
      @tomschnaars9555 Před 18 dny +6

      Whos that?

    • @proton46
      @proton46 Před 18 dny +2

      Never heard of that guy... Does anyone know that guy?

    • @collin4555
      @collin4555 Před 17 dny +1

      Yeah, I like his hair

    • @callumbirks
      @callumbirks Před 17 dny

      😮 Very tempted by this assembly course. I’ve done a bit of assembly in some really low-level optimisation work (comparing what different Rust functions compile to), very nice very cool

    • @nanosuit8
      @nanosuit8 Před 17 dny

      my bitdefender gives warning on that werbsite.

  • @WarDucc
    @WarDucc Před 18 dny +3097

    Modern day computing is too unsafe lets all go be amish.

    • @NachitenRemix
      @NachitenRemix Před 18 dny +40

      lmfao yea

    • @LowLevelLearning
      @LowLevelLearning  Před 18 dny +532

      when i retire i'm building chairs in a log cabin

    • @mmikoff
      @mmikoff Před 18 dny +96

      @@WarDucc amish computing is too unsafe, let's go back to stone tablets 😅

    • @WarDucc
      @WarDucc Před 18 dny +37

      @@LowLevelLearning i will be reinventing the wheel see you when you retire!

    • @TheRealEtaoinShrdlu
      @TheRealEtaoinShrdlu Před 18 dny +11

      You are confusing the Amish with Luddites.

  • @damouze
    @damouze Před 15 dny +1635

    Every time I hear the phrase 'speculative excution', I am reminded of what a late friend of mine used to say: "CPU designs should never incorporate speculative execution or branch prediction. They will inevitably lead to security vulnerabilities." He was also a big fan of the ARM architecture, because it did not use to do this thing. He passed away about fifteen years ago, but as it turns out he was right...

    • @darrennew8211
      @darrennew8211 Před 13 dny +46

      Only in architectures where it was added long after the instruction set was finalized. The problem is not that CPUs have speculative execution, but that the 8080 they're based on didn't.

    • @juhotuho10
      @juhotuho10 Před 13 dny +155

      the problem is that specultive execution / branch prediction brings huge performance benefits, there is a reason as to why we have it and still use it

    • @damouze
      @damouze Před 13 dny +52

      @@darrennew8211 Not true. The ARM ISA is not based on the 8080 architecture and now also seems to suffer from it.
      My friend was very adamant about this at the time, that this would not be restricted to architectures that weren't built around it.

    • @damouze
      @damouze Před 13 dny +61

      @@juhotuho10 That is the counterargument that I put before him all those years ago and I was treated to a lecture about why the benefits could never outweigh the costs and why especially in multiprocessor/multicore systems this would lead to all kinds of security vulnerabilities. And he pointed out exactly the kind of security vulnerabilities that were discovered in the past decade or so.

    • @darrennew8211
      @darrennew8211 Před 13 dny +29

      @@juhotuho10 It brings huge performance benefits if your architecture is such that it pretends to execute one instruction at a time in order. You don't need it if your instruction set is designed from the ground up to keep every computational unit busy all the time. You need it because you execute one load instruction then one add instruction and then one multiply instruction then one store instruction and expect the CPU to behave like it's not doing all that in parallel.

  • @c.ladimore1237
    @c.ladimore1237 Před 18 dny +819

    people that figure this stuff out are so amazing. like I understand it, after you explain it, and am like "yep I get it," but I could never actually figure it out beforehand or even consider that it exists.

    • @stefanosanagnostou6797
      @stefanosanagnostou6797 Před 18 dny

      @@c.ladimore1237 I’m not claiming that it is easy by any means, but these people spend everyday searching for bugs like these. Surely, at some point, they develop some kind of intuition.

    • @azertyQ
      @azertyQ Před 17 dny +88

      That's also part of the skill of the presenter. A good presenter can easily make you feel like you know more than you do.

    • @Lougehrig10
      @Lougehrig10 Před 17 dny

      @@c.ladimore1237 I don’t professionally find exploits, but I have found unique ways of using things in unintended ways.
      My understanding is exploits like this are either people looking at how things work and being like “wait, that means theoretically it will do this thing too” or people being like “I wonder if it will also do this thing too” and trying it.
      So to me, it seems more akin to educated experimentation with the scientific method, while software development (although there is experimentation) is more akin to writing a book.

    • @CyberSnakeEater
      @CyberSnakeEater Před 17 dny +22

      Beacuase it was a team of hundreds of people working on it

    • @AndrewTSq
      @AndrewTSq Před 17 dny

      If you know how a cpu works on the low level, I guess you can think up of these things?.

  • @KvapuJanjalia
    @KvapuJanjalia Před 15 dny +749

    "There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors." (Leon Bambrick)

    • @thatwindowsxpfan1234
      @thatwindowsxpfan1234 Před 13 dny +32

      Let me add two other hard problem. Memory allocation and bounds checking, hunter2

    • @Fasteroid
      @Fasteroid Před 13 dny +12

      What a quote lmao

    • @BobFlats7
      @BobFlats7 Před 12 dny +47

      Don't forget cache invalidation

    • @alexkha
      @alexkha Před 12 dny +30

      @@BobFlats7 cache invalidation is 0th in the list!

    • @deusexaethera
      @deusexaethera Před 12 dny

      Funny, but naming things isn't hard at all.

  • @skacper1354
    @skacper1354 Před 18 dny +642

    Weeks ago UEFI, now ARM last year I joked about hardware backdoors this year

    • @juanmacias5922
      @juanmacias5922 Před 18 dny +87

      STOP JOKING! :D

    • @zookaroo2132
      @zookaroo2132 Před 18 dny +32

      THANKS FOR JINXING IT XD

    • @meh.7539
      @meh.7539 Před 18 dny +12

      Please stop helping...

    • @marc-andreservant201
      @marc-andreservant201 Před 18 dny +27

      Except neither were backdoors. In the first case it's just a standard buffer overflow bug, except because you're running directly in ring -3 there's no ASLR to save you. The ARM bug is actually a feature that speeds up the CPU, which is good, but accidentally was implemented wrong. The difference is that buffer overflows can be patched by a software update (if you haven't downloaded the UEFI security update please do so right now), but a bug in the CPU itself means you need a new CPU.

    • @sz-me
      @sz-me Před 18 dny +4

      You are the guy that says "q***t day" in the office/chat aren't you

  • @inodedentry8887
    @inodedentry8887 Před 17 dny +641

    My God. I guess time to check off "security vulnerability found in something you worked on" off my bucket list.
    I was an intern at Arm, on the team that worked on MTE. I did some work around the generation of the tags, and on simulating the overhead they would have in caches and memory.
    I have such mixed feelings right now. :D
    This seems like something we could have thought of. Meltdown and Spectre were fresh on our minds and a major topic of discussion in the company. I can imagine an alternate universe where I told my manager (or someone else on the team) "hey, have we thought about if tag mismatches could be a cache side channel?" Yet I don't think we ever discussed anything related to this? At least not in any of the meetings I was in.
    But hindsight is 20/20. In retrospect, these things always seem obvious.
    We were mostly focused on minimizing the performance overhead of memory tagging, because we were worried it would get in the way of adoption. We wanted our new optional security features to be supported by hardware manufacturers, who might not be happy with there was too much perf or memory overhead, extra hardware complexity, or cost / die area increase.
    Though, I guess, despite this new vulnerability, it still delivers on its goals. MTE was supposed to be something that offers substantial security improvements for cheap. A "better than nothing" optional feature which, when enabled, has a good chance of catching some bugs that might not be found otherwise. It is probabilistic: even if it worked perfectly, there is still a small chance a memory bug might go undetected by it (if different allocations happen to be assigned the same tag by chance). It was not meant to be perfect, or any sort of bulletproof defense. Just a way to hopefully catch more bugs in the wild. If a vulnerability makes it less effective, that's still better than every other CPU that does not have something like MTE at all.

    • @olafschluter706
      @olafschluter706 Před 17 dny +44

      It has its value as a hardware address sanitizer. I used it on C code within an Android App on the Google Pixel 8, which supports MTE, and it helped to figure out and fix a hidden memory management bug (a use after free).

    • @inodedentry8887
      @inodedentry8887 Před 17 dny +41

      @@olafschluter706 Yep. "Hardware ASAN" is pretty much how we thought of it when designing it. The motivation for MTE was "imagine ASAN but with low enough overhead that you could deploy it in release/production builds and just enable it everywhere, and hopefully also catch bugs in the wild instead of just during development."

    • @phill6859
      @phill6859 Před 13 dny +17

      @@inodedentry8887 yeah. Arm have said that the tags aren't secret. The video is somewhat misleading. Not all arm CPUs have mte and it isn't used much it seems

    • @HayesHaugen
      @HayesHaugen Před 13 dny +3

      That’s good to hear. It’s a somewhat obvious exploit in the context of meltdown and spectre so the question of potential value is a business decision (as you reference) and not an engineering one. And I assume intern means you were young and less experienced so you certainly aren’t at fault.
      Is it better than nothing at all? That’s the hard question.

    • @olafschluter706
      @olafschluter706 Před 13 dny +1

      @@HayesHaugen I think if it helps to catch memory management bugs, it helps to reduce the attack surface and the number of possible exploits of software checked by it.

  • @GH-oi2jf
    @GH-oi2jf Před 8 dny +24

    I am a (retired) professional programmer. I never wanted my programs to run as fast as possible. I wanted them to run as reliably as possible, i.e. rock-solid reliably. I have seen countless examples of programmers being led astray by the siren song of premature optimization.

    • @NoSpeechForTheDumb
      @NoSpeechForTheDumb Před 7 dny +7

      It depends. ARM processors are often used in embedded devices with few resources and hard real-time requirements, and programs that are not as efficient as possible may not be appropriate.

  • @sylviaelse5086
    @sylviaelse5086 Před 12 dny +126

    OK, interesting, but this is a way to defeat a secondary defence. The program still has to contain an exploitable memory corruption in the first place. I think describing it as an unfixable bug is to some extent click-bait.

    • @nocakewalk
      @nocakewalk Před 10 dny +34

      @@sylviaelse5086 I agree. It's also not close to EVERY ARM CPU. Only newer Cortex-A CPUs, no M devices at all. Seems like a bad bug, but color me underwhelmed after that title.

    • @spvillano
      @spvillano Před 9 dny +17

      Given how many "unfixable bugs" have been found and viola, fixed in one way or another, yeah, clickbait.
      Clickbait doesn't win subscriptions, it wins unsubscriptions.

    • @egg-mv7ef
      @egg-mv7ef Před 9 dny +7

      from what i understand, you need to achieve arbitrary code execution to achieve arbitrary code execution. it is a little silly.

    • @not_kode_kun
      @not_kode_kun Před 7 dny +1

      ​@@nocakewalkthe M chips already have their own vulnerability lmao, they don't need this one

    • @nocakewalk
      @nocakewalk Před 7 dny +1

      @@not_kode_kun which vulnerability?

  • @ameknite
    @ameknite Před 18 dny +196

    Every time I hear Speculative Execution is about about a security vulnerability

    • @rccli
      @rccli Před 18 dny +37

      i mean, when else are most people profoundly affected by low-level cpu optimizations

    • @Y2B123
      @Y2B123 Před 18 dny +6

      @@rccliRow hammer. A brute-force trick that we are having a hard time dealing with for as long as VRAM exists.

    • @rikuleinonen
      @rikuleinonen Před 18 dny +29

      Yep it's a complex system for a complex problem. It's been around for decades, but it's still not perfect.
      If we were to completely disable it now, we'd see processor speeds jump back 2 generations across the board. (very rough guesstimate)
      So yeah... fun world we live in, huh?

    • @sino-wt7pu
      @sino-wt7pu Před 17 dny +9

      What's crazy to me is that these CPU optimizations basically exist since the 1990'ties. When I heard about the first speculative exectution vulnerability it reminded me immediately of some presentation I held as an undergrad student end of the 90'ties: 'RISC Processors - Pipelining' ... and all those optimizations like Speculative Execution and Branch Prediction were part of my talk. But back then the idea would have never come into my mind to look at that from security perspective. All you thought about and talked about was how it improved performance. So the Meltdown and Spectre Vulnerabilites were found already decades after those optimizations were introduced in the first processors"

    • @sino-wt7pu
      @sino-wt7pu Před 17 dny +2

      So basically you can say all those vulnerabilities are out there, because these optimization technques have have been developped and gotten more and more sophisticated over several decades of processor development, starting with RISC processors in the ninetees. But the awareness to look at things like that as a possibile vulnerability and attack point was non-existent ... I'd say as cyber security research progressed and looked at similar mechanism in software and elsewhere, then the researches suddenly became aware that there is also this huge problem with CPUs, turning all these awesome optimizations suddenly into security vulnerabilities and only then everyone started looking into it, after decades of not thinking of that at all.

  • @jmickeyd53
    @jmickeyd53 Před 18 dny +44

    IA64 had a ton of problems, but I really believe that explicit speculation was a great idea. So many of these attacks would be impossible on Itanium. (Insert joke about them not being attacked because no one used them)

    • @deusexaethera
      @deusexaethera Před 12 dny

      What is explicit execution?

    • @yakovdavidovich7943
      @yakovdavidovich7943 Před 12 dny +7

      @@deusexaethera IA64 puts the work of avoiding problems due to parallel execution in the hands of the compiler. I.e., no mechanism to back out unexplored paths like with speculative execution. The idea was to run the CPU fast and loose, and just force compiler writers to deal with the burden to take advantage of full speed. Problem is, there are lots of languages and compilers, and not everyone wants to incorporate this stuff into code generation, and not everyone is good at it.

    • @MadsterV
      @MadsterV Před 11 dny

      so the "feature" was it didn't do anything special?

    • @romannasuti25
      @romannasuti25 Před 11 dny +4

      @@MadsterV more correctly, the CPU didn’t hard-code any of the behaviors: the pathways existed in similar ways to x86, but required explicit control via ultra-wide instructions (VLIW architecture) which meant explicit, multi-instruction parallelism. In some ways, this arguably complicated the CPU as it made instruction parsing many times more complicated; on other archs those features would run mostly on autopilot while the instructions remained easy to parse and prevent collisions/weird behavior.

    • @reaperinsaltbrine5211
      @reaperinsaltbrine5211 Před 8 dny +1

      Hitachi SH5 also had a very nice branch expliceit prediction architecture. Unfortunately that did go nowhere :/

  • @shapelessed
    @shapelessed Před 18 dny +187

    CPU vulnerabilities usually need relatively low hardware access in order to work.
    But when I heard you saying somebody managed to exploit it from within V8 (being a web dev) it literally just hit me - We're f**d.
    JS isn't as much of a toy these days. You can easily manipulate raw binary data in JavaScript. Some more tinkering and this would easily escalate to a sandbox escape and really, really low-level code injection... From within a browser...

    • @minirop
      @minirop Před 18 dny +30

      reject modernity, let's go back to monke! err... I mean DHTML

    • @theairaccumulator7144
      @theairaccumulator7144 Před 18 dny +25

      Tbh v8 0-days are being discovered every week now. It's easy to get RCE without some crazy CPU bug.

    • @shapelessed
      @shapelessed Před 18 dny

      @@theairaccumulator7144 Yes, but for good results you'd need to escalate privileges, injecting direct CPU instructions omits that completely.

    • @shapelessed
      @shapelessed Před 18 dny +22

      @@theairaccumulator7144 Yes, but in general, first you have to escape the sandbox, then find a a way to execute your code in something like a shell, and then gain admin access.
      The paper covered in this video describes how it was done all in one step.

    • @FrankHarwald
      @FrankHarwald Před 17 dny

      also: does web assembly still exist? This is lower level than js so it should be more easy to predict which wasm instruction transpiles to native machine code, making side-channel attacks even easier & more reliable then using js.

  • @alphabitserial
    @alphabitserial Před 18 dny +213

    Great breakdown! Not surprised to see that speculative execution is causing vulnerabilities on more than just x86 - really feels like it was only a matter of time before something like this was uncovered. The way it was done, though, is absolutely wild.

    • @alexturnbackthearmy1907
      @alexturnbackthearmy1907 Před 18 dny +8

      Lets wait for dozen of fixes that will decrease productivity compared to leaving the feature off. No lessons learned whatsoever.

    • @Momi_V
      @Momi_V Před 18 dny +22

      @@alexturnbackthearmy1907 Not doing speculative execution isn't really an option though...
      That would cause a FULL pipeline stall after every branch. And not doing prefetching is even worse.
      Complex problems require complex solutions and those oversights are sadly the cost of that.
      We can only hope that most things are found and fixed before they can turn into widespread exploits in the wild or hope for memory to suddenly get 1000x faster without any other downsides.

    • @alexturnbackthearmy1907
      @alexturnbackthearmy1907 Před 18 dny

      @@Momi_V Eh, if thing were actually done the right way, we wouldnt have this conversation whatsoever. At least there is hope that they dont throw it under the rug (just like "superior" windows ARM hardware which isnt really).

    • @fluoriteByte
      @fluoriteByte Před 18 dny +14

      ​@@alexturnbackthearmy1907 modern cpus without any branch prediction wont stand a chance in terms of performance to one that has all mitigations enabled, even the non applicable ones

    • @qexat
      @qexat Před 17 dny +2

      I did not expect to find a MY here 😂😂

  • @ivankalinin6359
    @ivankalinin6359 Před 12 dny +18

    Access to leaked tags doesn't ensure exploitation. It simply means that an attacker capable of exploiting a particular memory bug on an affected device wouldn't be thwarted by MTE.

    • @andersjjensen
      @andersjjensen Před 10 dny +2

      But since this re-opens the door for buffer overflows, which after all is the most commonly found attack vector, we're basically back to square one. If someone finds an exploitable buffer overflow bug in the V8 sandbox, then you're looking at unprivileged code execution, which can be problematic enough. If someone finds one in both V8 and a kernel call then you have complete device pwnage. This smells a lot like how the PS3 was pwned.

    • @spvillano
      @spvillano Před 9 dny +1

      @@andersjjensen or uglier, crash-o-matic, one runs into race conditions if the software didn't return a clean abort.
      Still, code should be able to work around, like all of the other "unfixable bugs" over the years.
      I am Pentium of Borg, you will be approximated.

    • @2004seraph
      @2004seraph Před 9 dny +1

      The door was never "shut" to buffer overflows by MTE, its a second line of defence, and to breach it you still need a memory vulnerability in a target program (which MTE in this specific case will never catch anyway, its not designed to be perfect) and an incredibly niche one at that for this exploit. Problems like this can be better prevented when we move towards safer languages for userspace like rust and the lot.
      As is usual with security, you cant rely on any one countermeasure, you need defense in depth.

  • @AngryKnees
    @AngryKnees Před 13 dny +49

    My jaw dropped when you said it works inside the V8 sandbox. Bless the researchers for finding this.

    • @chainingsolid
      @chainingsolid Před 11 dny +13

      I think specter and meltdown did also work in JS, in the browser. The speculation engine will see any code that runs on the cpu.....

  • @Krawacik3d
    @Krawacik3d Před 11 dny +50

    Misleading title, there are ARM "chips" that do not have these extension, a lot of them even do not support virtual memory

  • @aleckaczmarek4569
    @aleckaczmarek4569 Před 18 dny +19

    You have in my opinion some of the best content over hosted on CZcams. If this existed in 2004 my early programmer self would have had a much easier time learning how to exploit for fun ;).

  • @justincondello
    @justincondello Před 17 dny +15

    V8 engine screams to me : "you can do this on your phone right now"

  • @bankbank
    @bankbank Před 9 dny +5

    "EVERY ARM cpu" article shows that it was introduced in arm v8.5

    • @AndyGraceMedia
      @AndyGraceMedia Před 7 dny

      And everyone talks about Cortex A and forgets that Cortex R and Cortex M realtime and microcontrollers are massively different.

  • @fpgaguy
    @fpgaguy Před 15 dny +6

    spec. execution is not only about filling up the cache to be ready, it can actually execute part of the code in different execution units but later either keep or discard the results depending on the path taken

    • @2004seraph
      @2004seraph Před 9 dny

      Tf is your pfp

    • @jcc4tube
      @jcc4tube Před dnem

      Exactly. See Lex Fridman's first podcast with Jim Keller for a really good explanation of how modern processors work in this way.

  • @setlonnert
    @setlonnert Před 17 dny +6

    Somewhere I read and/or saw John Hennessy and David Patterson. They discussed the limitations of current processor designs, emphasizing that security vulnerabilities like Spectre and Meltdown, as well as diminishing performance returns, stem from reliance on techniques such as speculative execution. They propose a shift towards domain-specific architectures (DSAs) and processors capable of executing high-level language constructs directly. This approach would enhance security, performance, and energy efficiency by reducing the need for complex compiler translations and leveraging the open-source ecosystem for rapid innovation. But then legacy support as we have it now digging back to the 70s would be hard to maintain .. ;)

  • @anthonybachler9526
    @anthonybachler9526 Před 12 dny +32

    If you can run arbitrary tik tag code on the cpu, you don't need to break the memory tagging, just run whatever arbitrary code you want on the cpu.

    • @user255
      @user255 Před 6 dny +7

      Half true, this can be used for privilege escalation.

  • @trevornatiuk1031
    @trevornatiuk1031 Před 17 dny +5

    This reminds me of PAC introduced in iOS 14 that made jailbreaking very difficult. Eventually a couple Chinese researchers found a way to sign the pointers themselves to bypass it, but I still was fascinated enough by it that I did a college presentation on it in my computer architecture class.

  • @Little-bird-told-me
    @Little-bird-told-me Před 18 dny +73

    The way you explain in these videos even a golden retriever can grok these topics. No pun intended

  • @jaumesinglavalls5486
    @jaumesinglavalls5486 Před 18 dny +6

    OMG It's amaizing!, when you said they did it in V8 was... OMG, incredible! how many layers of security they get to bypass!

  • @len0reth
    @len0reth Před 17 dny +7

    the "hats off" right after talking about a hair cut was accidentally brilliant 😂

  • @74Gee
    @74Gee Před 18 dny +80

    I suspect we're heading towards a fundamentally unpatchable, ubiquitous and catastrophically effective exploit that forces us to fundamentally re-think chip design.
    With software moving faster than hardware this has always be inevitable but it's still crazy to think this is probably coming in my lifetime.

    • @Jack-fs3pp
      @Jack-fs3pp Před 18 dny

      Even crazier to think that the chip that's supposed to solve all these problems may end up being the Mark of the Beast described in the Bible

    • @thewhitefalcon8539
      @thewhitefalcon8539 Před 17 dny +10

      This just defeats a defense in depth measure. The computer is still secure.

    • @mfaizsyahmi
      @mfaizsyahmi Před 17 dny +2

      The answer is rust. Rust all the way down.

    • @74Gee
      @74Gee Před 17 dny +24

      @@mfaizsyahmi ​ If an r0 exploit can for example manipulate any memory, nothing running on that system is secure, at any level. Not rust, not other drivers, literally every computer state can be manipulated - the entire stack even the bios.

    • @entcraft44
      @entcraft44 Před 17 dny +4

      @@74Gee A vulnerability is not automatically an exploit. If your computer only ran rust programs compiled with a trusted compiler, the chance of an r0 vulnerability leading to an exploit would be drastically reduced. Similarly, if I had a fully secure interpreter I could run untrusted interpreted programs on a CPU architecture without any hardware/firmware security features at all and still be secure.
      Ergo any hardware vulnerability can theoretically be patched in software, with a certain performance penalty. In practice, any sufficiently severe exploit could take down the internet causing untold damage.

  • @kiverismusic
    @kiverismusic Před 18 dny +13

    Thank you for your vids. Any update on that php vulnerability? Couldn't find further info on the details of it, beyond being related to language/encoding.

    • @Aera223
      @Aera223 Před 17 dny +2

      @@kiverismusic iconv chinese extended character bug, the fix is with a glibc update

  • @UnrealSolver
    @UnrealSolver Před 18 dny +1

    The first sponsorship I’ll click and use in my life 😆 thanks for your awesome content! 💪

  • @superoya9747
    @superoya9747 Před 13 dny +1

    Damn this is such a good video, thanks for explanation. I have only recently started learning stuff abt comp architecture and security and this video is still explaining the paper in the most crystal clear way possible that even I understood it.

  • @Lampe2020
    @Lampe2020 Před 17 dny +35

    0:09 You know that there's three computers in the term "ARM computer"?
    First, the obvious "computer". Second, "ARM" stands for "ACORN RISC Machine", "Machine" referring to a computer. Third, "RISC" stands for "Reduced Instruction Set Computer", revealing the third computer.
    Almost blew my mind when I first realized that XD

    • @nicholasvinen
      @nicholasvinen Před 15 dny +15

      @@Lampe2020 so spell it out, Acorn Reduced Instruction Set Computer Machine Computer 😂

    • @Lampe2020
      @Lampe2020 Před 15 dny +1

      @@nicholasvinen
      Exactly.

    • @nomore6167
      @nomore6167 Před 14 dny +4

      That brings to mind the people who say things like, "ATM machine" and "PIN number".

    • @m1geo
      @m1geo Před 13 dny +5

      Arm no longer stands for anything.
      It stopped standing for Acord and moved to Advanced RISC Machine in the mid 90s. And in 2017 moved from ARM to Arm.
      (Source: I'm and employee.)

    • @davidgari3240
      @davidgari3240 Před 13 dny +2

      ​@@m1geoYour message explains a lot.
      TMA = Too Many Acronyms

  • @larry_berry
    @larry_berry Před 18 dny +72

    Jeez. What's up with all of those serious recent exploits?

    • @LowLevelLearning
      @LowLevelLearning  Před 18 dny +123

      honestly this is common, i'm just making more people aware of it. bugs are everywhere

    • @lbgstzockt8493
      @lbgstzockt8493 Před 18 dny

      Probably recency bias. Exploits come out all the time, but due to the big ones early this year people are on edge and more of them go mainstream.

    • @IncertusetNescio
      @IncertusetNescio Před 18 dny +4

      @@LowLevelLearning all these code issues is why I'm waiting for the day computers program computers. Humans arguably suck at it, as we've seen.

    • @chimpo131
      @chimpo131 Před 18 dny +31

      ​@@IncertusetNesciothis kid really thinks AI is going to take over😂😂😂

    • @rerereuj
      @rerereuj Před 18 dny +27

      @@IncertusetNescio I don't think that's happening anytime soon. AI is trained off human data, and thus makes just as many errors as the average human, if not more

  • @Grommish
    @Grommish Před 17 dny +16

    Found Ed thru John Hammond, but since John doesn't seem to do vids that aren't just straight ads anymore, I'm excited this is still here to learn from. Thank you, sir!

    • @CVE_00001
      @CVE_00001 Před 16 dny +2

      Yea John hasn't been a reliable source of info in years, bros sold for real.

  • @christopherneufelt8971
    @christopherneufelt8971 Před 12 dny +2

    I find amazing that the people can speak about such advanced subjects, while I try simple to fit an excess 127 code for a normal overflow fix in a vhdl dsp fpu unit. My God, where do you have the time to read these subjects?

  • @Care2WorldBuild
    @Care2WorldBuild Před 11 dny

    Sending my appreciation. Sometimes when searching for work you have a not so wonderful interview for various reasons including just forgetting a term you couldn't recall in a moment. Sometimes a few can affect your mental health especially if not handled with understanding that it has nothing to do with your worth. I had known and worked with assembly. I had known and worked with memory, pointers, understanding buffer overflows, operating systems, and so on building up to a good, extensive software engineering mastery, ethics, and leadership. All of the concepts you mentioned as part of my education. I felt so let down as it seemed no one cared that I knew this stuff and it made me question if I should have specialized in a different path (CE, CS, EE even, physics, etc) when feeling like things weren't working out. I was lifted up as I could follow everything you noted and that I was able to see how worthwhile my time and degree were at my university. I just mean to say I appreciated so much having a reminder when you feel a job struggle to see that you have value and no one can take that away, including in this small way like having an education even if no one is acknowledging it yet. 🙌🏾

  • @thecasle38
    @thecasle38 Před 10 dny +3

    The pacman vulnerability has existed for a few years, the big take away from this paper is that they found a pattern to exploit it in other code.

  • @aipt32
    @aipt32 Před 13 dny +2

    @LowLevelLearning
    Just because I'm not sure if I've understood everything correctly.
    This memory tagging is just an additional security mechanism in ARM processors and not the only one?
    So this design flaw doesn't make ARM processors less secure than other processor architectures, it just makes them less secure than intended. Correct?
    Or do ARM processors lack other security mechanisms that other architectures have?

  • @klainclark2449
    @klainclark2449 Před 16 dny

    Remember Pointer is the variable holding the address not the address itself, Dope content, massive respect …

  • @min3craftpolska514
    @min3craftpolska514 Před 18 dny +9

    2024 - The year of the backdoor and the vulnerability

    • @peteriddqd
      @peteriddqd Před 8 dny

      hold your popcorn... AI is comming hard

  • @szymon7607
    @szymon7607 Před 13 dny +4

    Spectre and meltdown did not break the internet.

  • @saultube44
    @saultube44 Před 10 dny

    Thanks for the video and book suggestions 👍

  • @SpencerTwiddy
    @SpencerTwiddy Před 17 dny +2

    Love that they’re called gadgets, like in hardness proofs

  • @yuridavy
    @yuridavy Před 12 dny +4

    Spectre broke literally nothing. It was a hype wave that lingered for a couple weeks and went away. Nothing ever was heard about any hacks exploiting it after. I expect the same is going to happen to this bug too.

  • @JViz
    @JViz Před 8 dny +1

    This is fundamentally similar to a hash collision exploit, so the solution is the same. Increase the entropy on the memory tags so that the reuse is practically impossible.

  • @TheEVEInspiration
    @TheEVEInspiration Před 16 dny +2

    I think calling speculative execution "execution in the future" is misleading as it conveys they idea of a "front-running thread", which is a very distinct and different thing.
    The processor simply runs a program and if it needs to make a branch/turn and does not know which way to go, it speculates.
    To keep a proper program state, this speculative execution cannot do certain things, but once the speculation is confirmed to be correct, the accumulated speculated results can be committed.
    From the processors perspective running the program, it's just execution current code, just of a speculated branch.
    There is of course a lagging program-state that represents the validated non-speculative outcomes.
    It can restart from this state when the speculated code turned out to be the wrong code and resume with the correct code instead.
    A processor is thus not "executing future code".
    It might run the wrong code and discard the results, but it's not running ahead of the actual program.
    That is a lot less mystic and magical to me.

  • @bami2
    @bami2 Před 14 dny +17

    I just assume that all computers are inherently insecure and act accordingly

  • @JoeBurnett
    @JoeBurnett Před 15 dny +1

    Great video and information!

  • @deusexaethera
    @deusexaethera Před 12 dny +2

    Will this require a hardware level redesign or can it be fixed with compiler patches?

  • @sam3317
    @sam3317 Před 13 dny +3

    Who would've thought that doing insane things just so you wouldn't have to admit to yourself that Moore's Law has been dead for a lot longer than people imagine would've caused so many security issues?

    • @eekee6034
      @eekee6034 Před 9 dny +1

      Seriously underrated comment.

  • @mechwarrior83
    @mechwarrior83 Před 18 dny +6

    nice sponsor, heard good things about that dude

  • @MananShingala-yg4dq
    @MananShingala-yg4dq Před 17 dny

    Because of you I am more interested in assembly language and CPU architecture

  • @DiskWizard001
    @DiskWizard001 Před 11 dny

    Thank you, very distinctive explanation ! Keep up ! Good luck ! I have some different CPU boards (AllWinners family) but luckily they are v6 and v7.

  • @0xg484
    @0xg484 Před 11 dny

    Pretty awesome find by the team

  • @phenanrithe
    @phenanrithe Před 12 dny +1

    It's a classic side-channel attack, more exactly a timing attack. It's pretty well-known in cryptography. Nice work, in a way. That's hardly a bug, but I suppose the title is more catchy.

  • @korre83
    @korre83 Před 10 dny

    Seriously, the people behind that paper needs to be praised as heroes.

  • @MrMediator24
    @MrMediator24 Před 18 dny

    Kinda neat explanation of virtual memory, wish had it when wrote driver for Armv8 MMU. Also not the speculative execution exploit again

  • @memejeff
    @memejeff Před 17 dny

    That is a super cool exploit.

  • @OGmolton1
    @OGmolton1 Před 15 dny

    if we know buffer overflows in certain areas are prone to attack, can we just monitor those buffers for hack attempts?

  • @larswillsen
    @larswillsen Před 5 dny +1

    Assembly code since the 70s here .. and yes, we're still longhaired and play music .. approaching 62 :)

  • @givenfool6169
    @givenfool6169 Před 12 dny +2

    Its been a bad few months for security vulnerabilities

  • @ChannelSho
    @ChannelSho Před 13 dny +1

    The burning question I have after all this is... are the implementations of speculative execution flawed or is speculative execution itself flawed?

  • @jinyuliu2871
    @jinyuliu2871 Před 12 dny +1

    It seems like this is very similar to PACMAN except that paper breaks pointer authentication code instead of memory tag. Both takes the approach of brute forcing a 16-bit secret by abusing speculation.

  • @bellissimo4520
    @bellissimo4520 Před 12 dny

    The mere mention of "speculative" and "prediction" already makes my neck hair stand up...

  • @HisZotness
    @HisZotness Před 12 dny +1

    This is why I use an abacus. Granted, AR/VR apps are tricky, but no viruses!

  • @1Naif
    @1Naif Před 12 dny

    The JavaScript V8 engine uses a technique called NaN Boxing and Pointer Tagging which attaches the variable type inside the pointer address

  • @yamusa85
    @yamusa85 Před 13 dny

    So this is bruteforcing tag speculating on cpus' assumption of outcome of a code to be ran? Brilliant!

  • @generalskywalker9552
    @generalskywalker9552 Před 14 dny

    Can this be fixed with the next gen of cpus or will arm be always vulnerable to this?

  • @joshuac5229
    @joshuac5229 Před 8 dny

    I remember reading that from Aleph1 back in the day 😯seeing that paper just took me way back!

  • @nicklaich
    @nicklaich Před 13 dny

    I'm pretty sure tagging is not the only memory protection mechanism, but rather additional one.

  • @Rehase1397
    @Rehase1397 Před 17 dny

    Is the browser sandbox additional around the JS sandbox or is it the same and people just call it differently?

  • @michaelbeckerman7532
    @michaelbeckerman7532 Před 6 dny

    Love this guy. Incredibly smart, incredibly articulate. Really impressed. An inspiration to us all.

  • @georgeindestructible
    @georgeindestructible Před 18 dny +1

    2:32 I wonder if Vanguard does something similar with a virtual buffer.
    What i mean is basically when it does memory scanning to keep a duplicate to always check back if something changed.

    • @Seppevh
      @Seppevh Před 17 dny +2

      It does this on the PCIe slot iirc, in order to detect dma cheating hardware

    • @georgeindestructible
      @georgeindestructible Před 11 dny

      @@Seppevh Really??? Quite interesting to know, + it makes perfect sense! Thanks!

  • @besusbb
    @besusbb Před 17 dny

    sick video thanks

  • @ujiltromm7358
    @ujiltromm7358 Před 17 dny +1

    Why doesn't speculative execution invalidate and clear the speculatively cached data lines when dismissing the results of erroneously executed code?

    • @madmax43v3r
      @madmax43v3r Před 17 dny +2

      I'm guessing it's too complicated and nobody realized this could be an issue.

  • @buriedpet
    @buriedpet Před 17 dny +1

    The only time I ever hear about speculative exec is as a security vulnerability😂
    Speaking of which, could you do a video on the *benefits* of spec exec? I’m really curious now lol

    • @BrendonGreenNZL
      @BrendonGreenNZL Před 11 dny +2

      In a nutshell, branch prediction and speculative execution exist to prevent the performance hit that would come from stalling the processor until the correct outcome of the branch instruction is known.
      Ever since the 486 and Pentium, CPUs have been prefetching instructions from memory and decoding them in anticipation of executing them; the difference being that the 486 would stall its pipeline until it knew which way a branch would go. The Pentium was faster in part because it would predict which way a branch would go and continue fetching and decoding (but not executing) instructions along that path. It was also able to execute instructions up to the jump point, as long as all the inputs were known (out-of-order execution). Speculative execution takes this mechanism further by out-of-order executing the instructions ahead of the branch, placing the results into temporary registers; committing them to real registers (and saving execution time) if the branch was predicted correctly.
      Out-of-order execution on the Pentium was interesting, because well-optimized assembly code could actually arrange to have the inputs to a jump instruction available just as the CPU was ready to execute the jump; simply by changing the order of seemingly unrelated instructions.

  • @00jknight
    @00jknight Před 11 dny

    I would like to know more about how they determine if the cache was filled or not

  • @ASpootifulMind
    @ASpootifulMind Před 13 dny +2

    It may do wonders for performance and optimisation, but nondeterministic processing is abysmal in terms of security. Cache management, branch prediction, and speculative execution, what an unholy trinity.

  • @am8326y
    @am8326y Před 14 dny +1

    despite of your wonderful presentation, why the initial lower case in the title bothers so bad? Thanks for the content

  • @kevintedder4202
    @kevintedder4202 Před 13 dny +7

    There's a lot of 'IF's in there. If you can find the right code, if you can find the tag , if you can change it, if... if.. if...
    Whilst this is a possible route for an attack has anyone actually used this in the real world, not just in the research lab.

    • @NavidIsANoob
      @NavidIsANoob Před 11 dny

      @@kevintedder4202 if anyone did, it would probably be state level threat actors. These are the kind of zero days that sell for tens of millions.

  • @rowans.corner
    @rowans.corner Před 8 dny

    so does this affect apple silicon? could be interesting if i tried to do it on my macbook

  • @Fuxtick
    @Fuxtick Před 12 dny +1

    Apple: "It's not our Apple Silicon ARM chip, you're using your Macbook wrong"

  • @Sanzhar-sq2cx
    @Sanzhar-sq2cx Před 9 dny

    I would need to read original paper, but if behavior of speculative execution can be tweaked to put a fake tag in cache even in cases of failing, wouldn't that fix this bug?

  • @fluffy_tail4365
    @fluffy_tail4365 Před 18 dny +3

    it's another "we speculated, rewound and forgot to invalidate the cache" error. When will CPU designer learn to have cache invalidation be the default behavior in case of speculation rewind if there was a cache swap during the speculative block?

    • @szabcsababcsa
      @szabcsababcsa Před 17 dny

      @@fluffy_tail4365 exept they never got cached, and thats how they figure out what the memory tag is, they iterate trough the numbers and see wich one was in cache, cuz thats the real one. The real exploit here is the side channel memory access.

    • @SeekingTheLoveThatGodMeans7648
      @SeekingTheLoveThatGodMeans7648 Před 16 dny +2

      performance hit from failed speculations would be a dog

    • @TheEVEInspiration
      @TheEVEInspiration Před 16 dny

      This issue here is that there is no cache fill happening for the speculated code, which can be detected later on.
      And as the wrongly speculated generates no error, they can keep trying with new tags until they found the correct one.
      For me the real question is how they consistently fool the branch predictor to speculatively execute code for a branch never taken!
      Because that is what bypasses the security here.
      I would not call this a timing attack, but a branch algorithm attack.

    • @HerrNilssonOmJagFarBe
      @HerrNilssonOmJagFarBe Před 13 dny +1

      @@TheEVEInspiration It's in the paper. You can see it in the short glimpse you see of the page before he zooms in (around 6:48). It says that they run the code multiple times with correct pointers and *cond_ptr true, to condition the branch predictor. They then make one guess with *cond_ptr false that triggers the speculative execution.

    • @TheEVEInspiration
      @TheEVEInspiration Před 13 dny +1

      @@HerrNilssonOmJagFarBe Interesting, that is just changing data out after a few tries, so simple.

  • @ChaseAlberti
    @ChaseAlberti Před 17 dny +1

    Somone correct me if I'm wrong but it sounds like really on the Cortex-A series is affected and the Cortex-M series is not. We make MCUs with the M22, M33, and M85 in which we these don't have the same memory instructions as the A series.

    • @AndyGraceMedia
      @AndyGraceMedia Před 7 dny +1

      The M4 had zero cache but from M7 onward they put L1D and L1I cache in there and have been implemented with branch prediction units. A couple of years ago there was talk in the ARM dev scene that it was "theoretically" possible that side channel attacks *may* be possible during a DMA operation but I think to worry about these kind of theoretical rather than practical issues is just a waste of time.
      The target hardware controlled by an MCU makes it especially difficult as they're far more locked down by definition and not designed to be running random arbitrary, compiled code off the internet. I guess if someone is crazy enough to JTAG their way into a system then anything is theoretically possible but again... the probability is vanishingly low.

  • @AndyGraceMedia
    @AndyGraceMedia Před 7 dny +1

    Not *EVERY* ARM cpu! I moved into developing 32 bit asm on the ARM2 and even had a go at an original ARM1 BBC Micro cheese wedge which never was really a product, just a dev system.
    I can categorically say that this exploit will not work on either of those CPUs as they had exactly zero kilobytes of cache :) With 4k cache on the ARM3, and a 24/26 bit address bus and processor status stuffed into the remaining 6/8 of 32 bits... I still think you'd find it impossible.

  • @Tomjones12345
    @Tomjones12345 Před 13 dny

    Very interesting, but when I google this I'm seeing no news on it. That's strange no? Is the sector sleeping on this issue or dismissing it?

  • @s11-informationatyourservi44

    are RDIMM ram based servers using encrypted and scrambled data also vulnerable?

  • @rockets-dont-makegood-toas7728

    Sometimes I imagine the biggest security flaw ever, one that will wreck almost every computer and grind the world to a halt for a decade as companies had to bootstrap back up to the kinds of machines capable of making more computers since those were affected too. I imagine that this security flaw is being implemented around now, by some guy in an office making a small arbitrary decision in some new architecture that nobody thinks to question and eventually makes its way into the industry standard. Eventually leading to that security flaw being discovered decades from now.

  • @Traumatree
    @Traumatree Před 10 dny +1

    So what's left? RISC-V will be bug free now?

  • @wolflink1020
    @wolflink1020 Před 17 dny

    This is crazy smart

  • @FetchTheCow
    @FetchTheCow Před 9 dny

    Pro tip: show hex values (like pointers with embedded info for tags or virtual memory) in a monospaced font. Programmers can visually parse the fields much more easily. Thanks.

  • @roz1
    @roz1 Před 10 dny

    Hi @LowLevelLearning I just took your course from Low-level academy... Would be great if u can add a detailed OS course to that... Also add more content for ARM and C

  • @kipchickensout
    @kipchickensout Před 18 dny +7

    Broken arm

  • @davidjulitz7446
    @davidjulitz7446 Před 13 dny +1

    Speculated execution was always pandoras box. This is quite clear after Spectre and Meltdown. Its damn hard for chip designers and ISA designers to do it 100% correct.

    • @BrendonGreenNZL
      @BrendonGreenNZL Před 11 dny +1

      Even if they do get it 100% correct, it's still going to be vulnerable to a cache timing side channel attack.

    • @davidjulitz7446
      @davidjulitz7446 Před 11 dny +1

      @@BrendonGreenNZL Yes true. My statement above is not precise enough. Spectre lives from the behavior of the cache itself in combination with speculative execution and branch prediction.

  • @IngwiePhoenix
    @IngwiePhoenix Před 18 dny

    Interesting. I wonder if this is just ARMv8 or older variants too? And if it could be used as part of something like an iPhone jailbreak, as those run ARMv8. Really fascinating - hacking the future to pwn the present!

  • @Kayraman256
    @Kayraman256 Před 17 dny +2

    awesome content

  • @COPKALA
    @COPKALA Před 8 dny

    It seems similar to the architecture bug which was discovered on Intel CPUs (more than 1 Generation) some 5(?) Years ago.
    Were preloaded memory loaded in cache could be read w/o encryption or protection from the op-sys.

  • @Zomboy4313
    @Zomboy4313 Před 13 dny

    Every smartphone be quaking

  • @OrbZero
    @OrbZero Před 17 dny

    Could this be exploited via WebAssembly?
    I don’t know if WASM code runs inside V8 sandbox, but considering JS integration, I think it might be.

  • @idoghacker8008
    @idoghacker8008 Před 18 dny +2

    The pointers not being entirely uppercase past the 0x prefix really bothers me for some reason... Nice video though.