Lỗi Y2K bất ngờ quay trở lại trong bản dựng BSD cũ

15 tháng 6, 2026·3 phút đọc

Một lập trình viên người Hà Lan đã phát hiện một lỗi Y2K chưa được vá trong hệ điều hành BSD 2.11 khi đang phát triển trình giả lập máy tính PDP. Tuy nhiên, lỗi này không gây nguy hiểm cho người dùng hiện đại vì nó chỉ ảnh hưởng đến phần cứng lỗi thời từ những năm 1970.

Lỗi Y2K bất ngờ quay trở lại trong bản dựng BSD cũ

Lỗi Y2K bất ngờ quay trở lại trong bản dựng BSD cũ

Đã hơn một phần tư thế kỷ trôi qua kể từ khi lỗi Y2K đe dọa gây hỗn loạn cho thế giới máy tính thời bấy giờ. Mặc dù các nỗ lực vá lỗi của những người hùng IT toàn cầu đã ngăn chặn được một thảm họa vào thiên niên kỷ mới, vấn đề này dường như vẫn chưa hoàn toàn biến mất khi một nhà phát triển người Hà Lan vừa tìm thấy một trường hợp mới của "cơn ác mộng" số học này.

Trong quá trình phát triển trình giả lập (emulator) cho dòng máy tính "minicomputer" PDP huyền thoại được sản xuất từ thập niên 1950 đến 1990, Folkert van Heusden đã phát hiện ra một lỗi Y2K chưa được vá trong trình nền Giao thức Thời gian Mạng (NTP daemon) của BSD 2.11.

Không phải là mối đe dọa nghiêm trọng

Tuy nhiên, công chúng có thể yên tâm vì van Heusden không tình cờ phát hiện ra một vấn đề tiềm tàng nguy hiểm đang chờ đợi để gây ra hỗn loạn. Lỗi này chỉ đặc thù đối với hệ thống PDP-11/70, một hệ thống ra mắt năm 1975.

Hơn nữa, để kích hoạt lỗi, hệ thống cần phải được kết nối với bộ thu Precision Standard Time (PSTI) do công ty Traconex – một nhà sản xuất phần cứng đã ngừng hoạt động – sản xuất. Thiết bị này được dùng để bắt tín hiệu thời gian từ các đài phát thanh sóng ngắn do Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ (NIST) quản lý.

Ngay cả khi đáp ứng đủ các điều kiện phần cứng "cổ đại" này, lỗi cũng sẽ không làm hỏng thời gian mạng ngay lập tức. Kẻ tấn công tiềm năng phải thực hiện một số bước cấu hình phức tạp trên những cỗ máy cũ kỹ đó mới có thể gây ra lỗi.

Cách thức phát hiện và sửa lỗi

Trong bài viết phân tích của mình, van Heusden đã giải thích cách kích hoạt lỗi.

"Tôi đang viết một trình giả lập PDP và tôi cũng rất quan tâm đến việc đồng bộ hóa thời gian trên máy tính. Kết hợp hai yếu tố đó, tôi đã tìm hiểu sâu vào việc triển khai NTP trên PDP. Khi thêm tính năng giả lập cho thiết bị PSTI, tôi bỗng nhiên thấy năm hiển thị là 19126," van Heusden chia sẻ trong email.

Không ngạc nhiên khi bộ thu PSTI thực sự tạo ra đầu ra chính xác, hệ thống lại báo lỗi rằng độ lệch thời gian giữa trình giả lập PDP và thiết bị PSTI được giả lập là hơi "quá lớn". Sự chênh lệch này lên tới khoảng 17.000 năm, cộng thêm vài trăm năm.

May mắn thay, van Heusden đã viết một bản vá để đồng bộ hóa lại thời gian, xóa bỏ một trong số ít lỗi Y2K còn sót lại đang lưu hành. Rất khó để tìm thấy một lỗi Y2K bị lãng quên (hoặc bị bỏ qua do lỗi thời như trường hợp này) được vá vào thời điểm hiện tại.

Chơi đùa với công nghệ cổ thụ

Nếu bạn muốn thử nghiệm với một hệ thống giả lập 50 năm tuổi chạy hệ điều hành 35 năm tuổi, tin vui là PDP với CPU 16-bit chạy ở tốc độ 5MHz và chỉ cần 4MB bộ nhớ chính có thể dễ dàng chạy trên phần cứng khiêm tốn như Raspberry Pi Pico.

Trình giả lập PDP-11/70 của van Heusden hiện có sẵn trên GitHub. Tuy nhiên, hãy nhớ chắc chắn rằng bạn đã vá lỗi Y2K này nếu bạn định chỉnh sửa tính năng đồng bộ hóa thời gian.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗