Live data from Hacker News

ChkTag: x86 Memory Safety

community.intel.com

71–80 of 147 posts

Re: ChkTag: x86 Memory Safety

#71
post #67

It seems very strange to me to finally get around to this right as we are finally getting low level software that no longer needs it (and we've had high level software that doesn't need it for ages). At this point I think I'd prefer the transistor budget and bits of memory were spent on other things.

Rust code that uses unsafe still needs this sort of protection.

Re: ChkTag: x86 Memory Safety

#72

Earlier quoted context omitted.

This is already the case in DDR5.

This is an oft-repeated misunderstanding. DDR5 memory uses error correcting codes internally to correct on-die errors, but this does not defend against errors on busses between the DIMM and memory controller. For that the old scheme of extra chips to store additional ECC data is still the only way.

It actually does protect against errors on access, but support is optional.

Also, some vendors use a non-optimal hamming code that fails to notice some double bit errors (if I remember right).

Re: ChkTag: x86 Memory Safety

#73
The article seems sparse on details.

Would this imply an architecture similar to what Lisp-Machines once had ? That'd be a great addition IMO, and would speed up a lot of dynamic-ish languages without resorting to unsafe-routes for speed.

Re: ChkTag: x86 Memory Safety

#75
post #71
post #67

It seems very strange to me to finally get around to this right as we are finally getting low level software that no longer needs it (and we've had high level software that doesn't need it for ages). At this point I think I'd prefer the transistor budget and bits of memory were spent on other things.

Rust code that uses unsafe still needs this sort of protection.

"Needs" is a strong word, would benefit from a bit, but in practice I think the number of vulnerabilities rust code typically has is not large enough to justify the expense of compromising the performance of every CPU ever sold (thus requiring more, consuming more energy, etc).

There's also been steady progress towards creating systems to prove unsafe rust correct - at which point it wouldn't even benefit from this. For example see the work amazon has been sponsoring to prove the standard library correct: https://github.com/model-checking/verify-rust-std/

Re: ChkTag: x86 Memory Safety

#76

With all the negative comments here: This is existing technology on ARM64 (MTE) and on modern iPhones ( https://security.apple.com/blog/memory-integrity-enforcement... ). For a good intuition why this (coupled with instrumenting all allocators accordingly) is a game-changer for exploitation, check https://docs.google.com/presentation/d/1V_4ZO9fFOO1PZQTNODu2... In general, having this come to x86 is long-overdue and v…

But wait, how do you know that's what this is? The reason I'm negative is the entire article has zero detail on WTF this instruction set is or does. The best you can do is guess from the name of the instruction set. Compare the linked iPhone article to this blog and you'll quickly see the difference. There's very real discussion in the MTE article of how the instructions work and what they do. This article just says…

This is how, amongst other things, IBM POWER cpus do memory tagging for capability-based security on iSeries/OS400.

IIRC, later SPARC64 chips also had a version of this.

Re: ChkTag: x86 Memory Safety

#77

Earlier quoted context omitted.

[flagged]

> The way I've used it is fine No it's not. Here is the AI summary of why it isn't. Breakdown of the Error Less is used for uncountable quantities (e.g., "less water," "less time," "less anger"). Lest is a conjunction that means "for fear that" or "to avoid the possibility of." This is precisely the meaning the writer intends. Here are a few ways to write the sentence correctly, depending on the desired level of form…

It’s nice to hear someone using English correctly.

Re: ChkTag: x86 Memory Safety

#78

It’s just probabilistic memory safety, at best Still cool, but not a replacement for memory safety language implementations.

MTE is as much a detection tool as it is a relied on layer of defence. I read that it has a 15 out of 16 chance to catch an error. Which means even if you do find a bug, it's going to be logged back to the OS vendor essentially the first time you use it. Getting patched permanently in the source.

Re: ChkTag: x86 Memory Safety

#79
post #67

It seems very strange to me to finally get around to this right as we are finally getting low level software that no longer needs it (and we've had high level software that doesn't need it for ages). At this point I think I'd prefer the transistor budget and bits of memory were spent on other things.

it's like the end scene in fight club. except instead of credit card company office towers it's the borrow checker and associated skyscrapers that symbolize the ascent of rust that are going down in flames as the x86 antiheroes high five and the pixies start crooning "where is my mind" to rolling credits over the burning cityscape.

Re: ChkTag: x86 Memory Safety

#80
post #67

It seems very strange to me to finally get around to this right as we are finally getting low level software that no longer needs it (and we've had high level software that doesn't need it for ages). At this point I think I'd prefer the transistor budget and bits of memory were spent on other things.

> we are finally getting low level software that no longer needs it

Ada has had memory safety for decades – not to mention Lisp, Java, etc. if you can live with garbage collection. Even PL/I was better than C for memory safety, which is why Multics didn't suffer from buffer overflows and Unix did. But the Linux kernel (along with lots of other software which we would like to be reliable) is still mostly written in C, for better or worse.

Post reply on HN