The bug reportedly exists in the gpsd service daemon that translates data from Global Positioning System (GPS), Global Navigation Satellite System (GNSS), and Automatic Identification System (AIS) transmission sources into a standardized format that can be read by end-user applications.
While the bug has been addressed, systems that still haven’t been updated will roll back their clocks by 1024 weeks, or 19.6 years to March 2002.
Hit the snooze button
Explaining the bug, The Register notes that GPS satellites keep track of time by counting the number of weeks that have elapsed since January 5, 1980.
This week number is broadcast as a 10-bit unsigned integer, which has a threshold of 1024 values, from 0 to 1023. This means that the system resets every 1024 weeks. This happened for the first time on Sunday August 22, 1999, and then again on Sunday April 7, 2019.
While the third such rollover isn’t scheduled till Sunday November 21, 2038, an integrity check routine introduced the bug that would reset the GPS week number tomorrow, October 24.
The bug was inadvertently introduced by gpsd maintainer Gary Miller about two years ago. However, it was caught earlier this year in July, and a fix was released in gpsd v3.23.1.
The vast majority of Linux distros are reported to have already switched to gpsd’s fixed release, and the changes have also been backported to older releases to ensure they don’t disrupt systems running Long Term Support (LTS) distros.
Via The Register