Как стать автором
Обновить

24 октября 2021 года ошибка в коде GPSD сбросит системное время на март 2002 года

Время на прочтение2 мин
Количество просмотров6.6K


По информации CISA (американского агентства по обеспечению кибербезопасности и безопасности инфраструктуры), 24 октября 2021 года из-за ошибки в исходном коде открытого пакета GPSD (в версиях 3.20-3.22) произойдет сброс при получении точного системного времени из GPS-устройств на март 2002 года. Баг в программе устранен разработчиками в версии 3.23 пакета GPSD.

Ошибка в обработке данных 10 битного счетчика недель может привести к различным коллапсам в работе GPS-устройств у пользователей — их системы и службы станут недоступными или перестанут отвечать. Этот счетчик переполняется каждые 1023 недели. Последний раз это произошло в августе 2019 года. Следующее его переполнение произойдет в 2038 году.

Разработчик модуля timebase.c пакета GPSD внес в код корректировку появления лишней секунды для синхронизации эталонных мировых атомных часов с астрономическим временем Земли. Это событие со сдвигом времени на секунду вперед должно было произойти 31 декабря 2022 года. Однако, программист неверно перевел нужную дату в число недель и внес в текст модуля значение 2180 — это неделя, начинающаяся с 24 октября 2021 года.

/* sanity check week number, GPS epoch, against leap seconds
     * Does not work well with regressions because the leap_sconds
     * could be from the receiver, or from BUILD_LEAPSECONDS. */
    if (0 < session->context->leap_seconds &&
        19 > session->context->leap_seconds &&
        2180 < week) {
        /* assume leap second = 19 by 31 Dec 2022
         * so week > 2180 is way in the future, do not allow it */
        week -= 1024;
        GPSD_LOG(LOG_WARN, &session->context->errout,
                 "GPS week confusion. Adjusted week %u for leap %d\n",
                 week, session->context->leap_seconds);
    }
\

Пакет GPSD используется для работы с GPS-устройствами на различном оборудовании, включая навигаторы, мультикоптеры, мобильные устройства на Android, для которых производители часто не выпускают вовремя обновлений или вообще не поддерживают их через некоторое время.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Другие новости