피드로 돌아가기
The Y2K bug is back! Dutch dev digs up untimely flaw in old BSD build
The RegisterThe Register
Infrastructure

BSD 2.11 NTP의 17,000년 오차 유발 Y2K 버그 수정

The Y2K bug is back! Dutch dev digs up untimely flaw in old BSD build

2026년 6월 15일2intermediate

Context

1975년 출시된 PDP-11/70 시스템과 BSD 2.11 OS 기반의 Network Time Protocol(NTP) 구현체에서 시간 처리 오류 발견. PSTI 리시버의 Short-wave 시간 신호를 처리하는 과정에서 연도 계산 로직의 결함으로 인해 시스템 시간이 비정상적으로 설정되는 한계 노출.

Technical Solution

  • PDP-11/70 하드웨어 에뮬레이션 과정에서 PSTI 디바이스의 시간 신호 처리 로직 분석
  • NTP 데몬 내 연도 계산 루틴의 설계 결함으로 인한 19126년 도출 현상 식별
  • 에뮬레이션 환경의 시간 오프셋 검증 로직에서 발생하는 'Excessive Offset' 에러 처리 최적화
  • Y2K 관련 연도 계산 로직을 수정하여 PSTI 리시버 출력값과 시스템 시간 간의 동기화 확보
  • 16-bit CPU 및 4MB 메모리 제약 조건 내에서 작동하는 경량 패치 적용

- Legacy 시스템의 시간 처리 로직에서 연도 계산 방식(Epoch 기반 등)의 오버플로우 가능성 검토 - 외부 하드웨어 신호(External Time Source) 수신 시 데이터 유효성 검증 범위 설정 - 에뮬레이터 구현을 통한 하위 호환성 레이어의 잠재적 버그 식별 및 검증 프로세스 도입

원문 읽기