Toàn cảnh vụ sập server ngớ ngẩn của Wikipedia. Tượng đài tri thức internet phải bật mode 'read-only' vì một con sâu XSS chạy bằng... jQuery. Anh em dev hóng ngay!

Đang ngồi nhâm nhi ly trà đá, định lên Wikipedia tra cứu mấy cái definition râu ria về optimize DB, tự nhiên đập vào mắt tôi là quả thông báo đỏ loét: Wikipedia đang bị chuyển sang chế độ "read-only". Các ông ạ, một tượng đài tri thức của internet, server trâu bò, thế mà lại dính một pha "toang" cực kỳ ngớ ngẩn.
Chuyện là dàn admin của Wikipedia vừa bị úp sọt hàng loạt. Không đao to búa lớn, thủ phạm lại là một kỹ thuật hack thời "đồ đá": XSS Worm.
Tóm tắt nhanh cho anh em lười lướt trang trạng thái: Wikimedia Foundation phải khẩn cấp "khóa mõm" toàn bộ nền tảng, cấm mọi hành động edit vì tài khoản admin bị thao túng hàng loạt. Rốt cuộc thì chuyện quái gì vừa xảy ra?
Thủ phạm là một con XSS Worm (Sâu máy tính qua lỗ hổng Cross-Site Scripting). Theo dấu vết để lại, con sâu này chui vào trang MediaWiki:Common.js để lây nhiễm toàn cầu, và dự phòng thêm ở User:Common.js.
Cách thức nó hoạt động mới gọi là ảo ma Canada:
Special:Nuke để xóa trắng 3 bài viết toàn cầu, và dùng action=delete gạch sổ thêm 20 bài nữa.Lướt qua Hacker News với Reddit, cộng đồng dev đang chia phe cười hô hố vì cái drama này. Có vài luồng quan điểm cực kỳ mặn mòi:
1. Quả bom xịt "basemetrika.ru"
Anh em soi code phát hiện ra con sâu này cố tình tải thêm một payload từ domain basemetrika.ru. Nhưng pha quay xe cực mạnh là... cái domain này méo tồn tại (trả về lỗi NXDomain). Đám đông bắt đầu nghi ngờ đây là tác phẩm của một thanh niên "script kiddie" xài tool lậu chưa cấu hình xong, hoặc cũng có thể là code do AI sinh ra bị ảo giác (hallucination) tự bịa ra domain.
2. Bỏ qua "mỏ vàng" password Nhiều pháp sư phân tích: "Trời má, tốn bao công inject được con XSS xịn sò thế này mà chỉ đi phá làng phá xóm?". Đúng ra với quyền chạy JS trên browser của nạn nhân, hacker hoàn toàn có thể chôm được đống mật khẩu qua tính năng Autofill của trình duyệt. Đằng này lại đi chèn cái ảnh 5000px. Thật sự phí của giời!
3. Tiết mục lôi PHP ra tế thần Drama công nghệ nào có dính đến MediaWiki thì không thể thiếu tiết mục bỉ bôi PHP. Một ông dev thả quả comment chí mạng: "Đợi ai đó vào đổ tại MediaWiki viết bằng PHP. Cái ngôn ngữ mà 'return flase' (viết sai chính tả) nó vẫn đánh giá là true thì trách ai?"
4. Wiki-ers tấu hài Có ông biên tập viên Wikipedia còn vào cợt nhả: "Làm sao biết Wikipedia đang sập? Có 'nguồn uy tín' (Reliable Source) nào kiểm chứng vụ này chưa để tôi trích dẫn?" - Chuẩn bệnh nghề nghiệp cmnl.
Nói đi cũng phải nói lại, cười người hôm trước hôm sau server mình sập. MediaWiki từ xưa đến nay thi thoảng vẫn cho phép các Editor cấp cao nhúng JavaScript vào trang để custom UI. Góc độ kỹ thuật mà nói, đây là vác dao đưa cho người khác đâm mình.
Anh em dev code tính năng gì thì nhớ: Đừng bao giờ tin user! Kể cả user đó có là Admin, Super Admin hay sếp của bạn. Input thì phải validate, HTML/JS thì phải sanitize. Không có ngày trưa đang ngủ ngon lại phải lóc cóc dậy hotfix, mà xui cái nó xóa sạch DB thì có nước xách balo về quê chăn bò.
Nguồn hóng: