Đầu năm 2022, nhiều doanh nghiệp công nghệ trên thế giới bỗng gặp sự cố trong việc triển khai CI/CD của họ build không ra kết quả. Pipeline treo hoàn toàn, log chỉ toàn những dòng chữ “LIBERTY LIBERTY LIBERTY”, một số dự án bị treo ngay khi require module.
Nguyên nhân không phải hacker, không phải code của team dev, cũng không phải lỗi hạ tầng. Mọi thứ xuất phát từ một bản update của hai thư viện nhỏ mà gần như mọi dự án Node.js đều cài sẵn:
colors.js
– chỉ vài trăm dòng code để in màu chữ trong terminal, nhưng có mặt trong hơn 19 triệu dự án.faker.js
– dùng để tạo dữ liệu giả phục vụ testing, xuất hiện trong hơn 2,5 triệu dự án.
Điều bất ngờ hơn cả: cả hai thư viện này chỉ do một người duy nhất viết và duy trì – Marak Squires.

Trong bản cập nhật, Marak đã thay đổi code: colors.js
in vòng lặp vô tận chữ “LIBERTY” và đây là commit gốc: https://github.com/Marak/colors.js/commit/074a0f8ed0c31c35d13d28632bd8a049ff136fb6
Còn faker.js
thì phát hành bản 6.6.6 với toàn bộ code bị xóa sạch, chỉ để lại một README với dòng “What really happened with Aaron Swartz?”, điều này đã được The Verge, Sonatype và Snyk xác nhận. Có vẻ mang thông điệp chính trị rất khó hiểu gây tranh luận mạnh mẽ.
Hậu quả là hàng loạt dự án trên toàn thế giới đồng loạt bị ảnh hưởng nghiêm trọng: build lỗi, test không chạy, ứng dụng treo hoàn toàn. Các công ty từ startup đến tập đoàn đều hoang mang, còn cộng đồng thì phải gấp rút fork lại hai thư viện để vá tạm thời.
Trên Reddit và GitHub, phản ứng trái chiều nổ ra:
- Có người tức giận vì một quyết định cá nhân lại gây ảnh hưởng toàn cầu.
- Có người lại thông cảm, cho rằng sau nhiều năm làm không công, trong khi các công ty lớn hưởng lợi, việc một maintainer mất kiên nhẫn là điều dễ hiểu.
- Và rất nhiều người rút ra một bài học: đừng bao giờ kéo dependency “latest” mà không khóa version.
DevOps VietNam facts: cả ngành phần mềm đang đứng trên nền móng được dựng bởi những thư viện nhỏ, do vài cá nhân ‘vô danh’ (không hẳn) duy trì. Một thay đổi bất ngờ đủ để làm hàng triệu dự án sập trong một đêm. Hãy lưu ý về việc chỉ định các version chính xác.