Сегодня ошибка в GPSD приведёт к сдвигу времени на 19 лет назад
В пакете GPSD, применяемом для извлечения точного времени и данных о координатах из GPS-устройств,
выявлена критическая проблема. Из-за неё 24 октября произойдёт смещение времени на 1024 недели назад, т.е.
на март 2002 года. Проблема проявляется в выпусках с 3.20 по 3.22 включительно и устранена в выпуске GPSD 3.23.
Эффект от ошибки может привести к непредсказуемым сбоям на разных системах, в том числе напрямую не использующих GPSD, так как данное приложение применяется для получения данных о точном времени на некоторых NTP-серверах, используемых для синхронизации времени. При сдвиге времени в системах могут возникнуть проблемы с аутентификацией, с проверкой сертификатов и с вычислениями, манипулирующими диапазонами времени (например, расчёт времени сеанса пользователя).
GPSD также применяется в автомобильных навигаторах, дронах, роботах, в военной технике, морском и авиационном навигационном оборудовании, в различных мобильных устройствах, в том числе на базе платформы Android, для многих из которых уже не выпускаются обновления прошивок. Обычно на подобных устройствах работа GPSD связана с навигацией и не влияет на установку системного времени.
В чем заключается проблема? В GPSD в логике корректировки появления лишней секунды (добавляется с целью синхронизации эталонных мировых атомных часов с астрономическим временем Земли) была допущена ошибка. Из-за неё 24 октября 2021 года преждевременно будет произведено вычитание 1024 из счётчика числа недель. По задумке автора кода
сдвиг должен был произойти 31 декабря 2022 года, но перевод этой даты в число недель был выполнен не верно и фактически приведённое в проверке число недель подпадало под октябрь 2021 года (указано значение 2180 вместо 2600).