| ▲ | AshamedCaptain 5 hours ago | ||||||||||||||||||||||||||||||||||||||||||||||
Of course there is undefined behavior that isn't security critical. Hell, most bugs aren't security critical. In fact, most software isn't security critical, at all. If you are writing software which is security critical, then I can understand this confusion; but you have to remember that most people don't. The author of TFA actually makes another related assumption: > A crash from a detected memory-safety bug is not a new failure. It is the early, safe, and high-fidelity detection of a failure that was already present and silently undermining the system. Not at all? Most memory-safety issues will never even show up in the radar, while with "Hardening" you've converted all of them into crashes that for sure will, annoying customers. Surely there must be a middle ground, which leads us back to the "debug mode" that the article is failing to criticize. | |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | AlotOfReading 2 hours ago | parent | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
No one knows what software will be security critical when it's written. We usually only find out after it's already too late.Language maintainers have no idea what code will be written. The people writing libraries have no idea how their library will be used. The application developers often don't realize the security implications of their choices. Operating systems don't know much about what they're managing. Users may not even realize what software they're running at all, let alone the many differing assumptions about threat model implicitly encoded into different parts of the stack. Decades of trying to limit the complexity of writing "security critical code" only to the components that are security critical has resulted in an ecosystem where virtually nothing that is security critical actually meets that bar. Take libxml2 as an example. FWIW, I disagree with the position in the article that fail-stop is the best solution in general, but there's experimental evidence to support it at least. The industry has tried many different approaches to these problems in the past. We should use the lessons of that history. | |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | criemen 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
> Of course there is undefined behavior that isn't security critical. But undefined behavior is literally introduced as "the compiler is allowed to do anything, including deleting all your files". Of course that's security critical by definition? | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | charleslmunger 5 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
>Not at all? Most memory-safety issues will never even show up in the radar Citation needed? There's all sorts of problems that don't "show up" but are bad. Obvious historical examples would be heartbleed and cloudbleed, or this ancient GTA bug [1]. 1: https://cookieplmonster.github.io/2025/04/23/gta-san-andreas... | |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | gishh 5 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||||||||||||||||||||
Most people around here are too busy evangelizing rust or some web framework. Most people around here don’t have any reason to have strong opinions about safety-critical code. Most people around here spend the majority of their time trying to make their company money via startup culture, the annals of async web programming, and how awful some type systems are in various languages. Working on safety-critical code with formal verification is the most intense, exhausting, fascinating work I’ve ever done. Most people don’t work a company that either needs or can afford a safety-critical toolchain that is sufficient for formal, certified verification. The goal of formal verification and safety critical code is _not_ to eliminate undefined behavior, it is to fail safely. This subtle point seems to have been lost a long time ago with “*end” developers trying to sell ads, or whatever. | |||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||
| ▲ | samdoesnothing 5 hours ago | parent | prev [-] | ||||||||||||||||||||||||||||||||||||||||||||||
nooooo you don't understand, safety is the most important thing ever for every application, and everything else should be deprioritized compared to that!!! | |||||||||||||||||||||||||||||||||||||||||||||||