The Epochalypse Project

epochalypse-project.org

197 points by maxeda a month ago


perlgeek - a month ago

> And what’s worse, malicious threat actors can manipulate time synchronization protocols in many cases to trigger this vulnerability at the time of their choosing.

If you switch to 64 bit timestamps, and the network protocol supports dates > 2038, can you then just trigger the rollover bugs by pretending it's 2*64 - 1 seconds after epoch start?

Also, if the actions are potentially so severe, and NTP (or whatever is used) so vulnerable, why haven't we seen many such attacks in the wild?

Update: to be clear I'm not arguing that there isn't a problem, I've already run into it myself. I'm trying to understand how severe it is, how exploitable, and how robust a solution could be.

Waterluvian - a month ago

I think this effort would benefit from trying to qualify what “unpredictable ways” actually means. If anyone is testing devices, a catalog of test results describing the actual failure modes that were revealed would help make this whole thing more concrete.

I think many software engineers know that if you want to make any organization care about this type of issue, you need to be ready to demonstrate the severity and impact.

jsd1982 - a month ago

I fixed a recent Y38 bug in some classic ASP code. The bug was nothing more than a simple `Date() + 5000` computation (adding 5000 days to the current date) as a sort of expiry date applied to something; I don't recall the exact details. VB6 did not take kindly to computing any date value beyond the Y38 max and threw an error. In practice this error ended up denying service to everyone even though the Y38 max date was 14 years in the future. You never know what little bugs like that are lurking in such legacy code.

NelsonMinar - a month ago

"Epochalypse" is a nice coinage. Not a new one either, this 2017 article attributes it to Mikko Hypponen (of F-Secure). https://www.tomsguide.com/us/2038-bug-bh2017,news-25551.html

AndrewDucker - a month ago

Telling home users to check that their existing smart devices will still work in 13 years seems like overkill. It seems unlikely that more than a tiny fraction of them will still be in use then, if any.

Businesses installing new smart infrastructure and devices will need to pay attention to this, and in 10-15 years they'll need to work out what to replace, of course.

cranberryturkey - a month ago

15 years ago i was working at a startup in SV and a kid we hired was saying how he was sad he missed out on y2k because he was too young. I filled him with joy when I mentioned the 2038 bug. lol

ks2048 - a month ago

Who will register a domain for the upcoming year 292271025015 problem?

mkj - a month ago

Are they doing anything to fix it or just raising awareness?

Here's an example of measuring packages that report warnings for software that has suspicious conversions. Compile with `-Wconversion` with both 32-bit and 64-bit time_t, and see what the difference is. https://github.com/mkj/yocto-y2038

That is using yocto, but you could probably do something similar with other less-embedded distros too, if you can rebuild the world.

FWIW I didn't find much interesting with that apart from busybox dhcpd.

panzi - a month ago

When will milliseconds since the Unix epoch not be precisely representable in IEEE double anymore? (As it's used in JavaScript.)

echelon - a month ago

Epochalypse is clever. I'd been calling it Y2K38 so it made sense to people outside the industry.

phtrivier - a month ago

I witnessed my first y38 bug a couple weeks ago - just as a matter of someone doing forecasting in a system with an incorrect casting.

At least, the good part is that people will get "hunches" about y38, just like you start getting "hunches" about bugs related to locales, time zones, character encodings, currency roundings, etc...

I don't know if there are courses, books, etc... about all those matters that are definitely non "computer sciency", but occupy so much of our engineering time ?

rkapsoro - a month ago

I've been planning for decades to have a party on that day.

Only 13 years left!

jonstewart - a month ago

I would much prefer we put this off till the last minute so that I have one more job available to me before retirement. Thanks.

ninjin - a month ago

Patched in OpenBSD 5.5 [1] which was released in 2014. Patches were upstreamed into software in the ports tree, so hopefully that made life a little bit easier for other operating systems. Linux seems to have followed around 2020.

[1]: https://www.openbsd.org/lyrics.html#55

Retr0id - a month ago

I worry that for a lot of devices (IoT, etc.), the fix will be "throw it away and buy a new one"

net01 - a month ago

The fact that it's not common knowledge and not taught in schools and universities is concerning.

igleria - a month ago

my capitalist side remembers that many people made retirement money because of Y2K.

Maybe I should start thinking about an early retirement :)

sans_souse - a month ago

Is it too early to raise awareness for the Y10k bug?

blantonl - a month ago

Eh, I've got 13 years to deal with this. No big deal.

The best thing about waiting until the last minute to fix something is it will only take a minute.

johnklos - a month ago

The solution is simple: go back in time and get legislation passed to mandate the release of source code for devices that the original manufacturer no longer intends to support.

That might be imposssible right now, and not just because of the time travel thing. While it's a good idea, and while people are working to get legislation passed that would prevent the forced obsolescence of products by companies requiring, then no longer supporting, public servers, for instance, companies would fight to the death any requirement to make their source available.

But the problem isn't only theirs - open source projects that are steered by corporations often lack the willingness to expend some work now in order to save work decades from now.

For instance, NetBSD moved to 64 bit time on all platforms using clever versioning to maintain compatibility with 32 bit timestamps. They did this on 32 bit architectures, too, back in 2012. [0], [1]

Linux, on the other hand, has no shortage of people who either want to drop 32 bit support entirely or who think that the work to modernize 32 bit support isn't worthwhile (because, in part, they've forgotten that embedded Linux is a thing, and they also don't care about people who can't afford modern hardware). The 64 bit time transition for 32 bit platforms has taken ages, but is thankfully finally underway. [2]

There's practically no hope for corporations. If they aren't given stuff that's already fixed (that is, if the fix isn't already baked in to the Linux they choose to use), they're certainly not going to "invest" resources in fixing things from the past. Heck - it took Google more than a week to fix issues with Chromecasts that came from bad planning. [3]

What can we do? Most people aren't going to decide on a purchase based on whether their product might stop working in 2038 unless we make it very easy for them. We should test more things and point out when products will fail. Of course, nobody is going to care if their wifi device bought in 2025 won't run in 2038, but if someone told you that a $50,000 car's infotainment system will stop working, they might care.

[0]: https://wiki.netbsd.org/symbol_versions/

[1]: https://web.archive.org/web/20200122035908/https://twitter.c...

[2]: https://wiki.debian.org/ReleaseGoals/64bit-time

[3]: https://www.theregister.com/2025/03/13/google_chromecast_fix...

bobbyraduloff - a month ago

Born too early for Y2K, but just in time for the Epochalypse lol

yapyap - a month ago

yeah sure.

lkbm - a month ago

My my

stuaxo - a month ago

(Not) Looking forward to 2038 onwards as people ignore the fact we coordinated to fix this and start saying it was all a big hoax.

aaron695 - a month ago

[dead]

drob518 - a month ago

It’s Y2K all over again. Signed? RUFKM?