Tuần này đúng kiểu CVE bủa vây. Trưa 21/10 mình nhận tin PHP sắp vá 2 lỗ hổng nghiêm trọng, sáng 22/10 tới lượt Node.js. Trong khoảng hơn một ngày, FlashPanel đẩy ra 3 bản hotfix cho server của người dùng. Mình ghi lại diễn biến và vài quyết định phía sau, vì đây là những lúc thấy rõ nhất một panel quản lý server có ích ở đâu.
Dòng thời gian
- Trưa 21/10: nhận tin PHP sắp vá 2 lỗ hổng cho phép chạy mã từ xa mà không cần đăng nhập. Việc đầu tiên là lên php.net xác minh, không làm theo tin đồn.
- Chiều 21/10: hotfix 1, áp dụng cấu hình bảo mật PHP theo khuyến cáo cho mọi server có PHP, cả PHP-FPM lẫn lsphp của OpenLiteSpeed. Lúc này bản vá chính thức còn chưa ra.
- 21:00 21/10: PHP phát hành 8.2.35, 8.3.36, 8.4.27, 8.5.12 (CVE-2026-109618, CVE-2026-109619). Khoảng một tiếng sau, hotfix 2 sẵn sàng: cập nhật PHP lên bản vá, giữ nguyên php.ini đã chỉnh.
- Sáng 22/10: repo LiteSpeed phát hành lsphp bản vá, hotfix 2 được mở rộng cho server OpenLiteSpeed.
- Cũng sáng 22/10: tới lượt Node.js với đợt vá bảo mật có 4 lỗi mức High, trong đó có lỗi ghi tràn bộ nhớ ở bộ giải nén Brotli có thể dẫn tới chạy mã từ xa (CVE-2026-111497). Chiều 22/10, hotfix 3 ra: cập nhật Node.js lên 22.23.4, 24.22.1, 26.12.1.
Người dùng chỉ cần mở danh sách server
Không ai muốn nửa đêm SSH vào từng server gõ lệnh. FlashPanel không cài agent lên server mà gửi lệnh qua SSH khi cần, nên vá lúc nào cũng được, không phải cập nhật thêm thứ gì trên server trước.
Panel tự biết server nào cần vá, bạn mở trang danh sách server là hotfix tự chạy. Dashboard cũng hiện banner cảnh báo, muốn chạy ngay thì bấm "Cập nhật toàn bộ".
Bộ khung hotfix này mình làm từ trước cho những lần cần đổi cấu hình hàng loạt. Nên khi CVE tới, việc còn lại chỉ là viết script vá và chọn đúng server cần vá. Nhờ vậy mới ra được hotfix trong khoảng một tiếng.
Vá nhanh nhưng không vá ẩu
Chạy lệnh trên server thật của người khác thì nhanh thôi chưa đủ:
- Giữ nguyên cấu hình: php.ini và pool PHP-FPM bạn đã chỉnh được giữ lại, không bị ghi đè bằng bản mặc định.
- Chỉ báo xong khi xong thật: cập nhật xong, hotfix so từng bản PHP với bản vá. Server nào chưa lên được bản vá thì hotfix báo lỗi và giữ lại để chạy lại sau, không báo "xong" cho có.
- Không nhảy phiên bản lớn: Node.js 22 chỉ lên 22.23.4, không tự nâng lên 24, vì đổi major có thể làm hỏng app.
- Không tự restart app Node.js: panel không biết app của bạn đang phục vụ gì, nên cập nhật xong sẽ nhắc bạn tự restart (ví dụ pm2 restart all) vào lúc phù hợp.
- Tự dọn đường: server còn dùng nguồn PHP cũ (PPA) được chuyển sang nguồn mới, gói cài dở từ lần trước được hoàn tất trước khi vá.
Test thật mới thấy
Trước khi bật cho server OpenLiteSpeed, mình chạy thử trong Docker trên nhiều bản Ubuntu và trên một server thật. Lần chạy đầu lộ ra chuyện không ngờ: lsphp kéo theo vài gói PHP của Ubuntu, và script suýt đổi luôn các gói đó sang nguồn khác. Sửa xong mình chạy lại cả ba trường hợp: server OpenLiteSpeed đã có bản vá, server PHP-FPM thường và server chưa có gói vá. Cả ba đều ra đúng kết quả, php.ini giữ nguyên.
Những chỗ chưa vá được
Nói rõ để mọi người chủ động:
- Server chạy chip ARM (như Oracle Ampere, Hetzner CAX): packages.sury.org vẫn hỗ trợ ARM, nhưng bản vá cho ARM build chậm hơn. Tới trưa 23/10 mới có PHP 8.2.35 và 8.4.27 cho Ubuntu 22.04, các bản còn lại chưa có. Trong lúc chờ, các server này đã có lớp giảm thiểu, có gói vá là mình bật hotfix tiếp. Riêng server OpenLiteSpeed chạy Ubuntu 22.04 ARM thì trưa 23/10 repo LiteSpeed đã ra bản vá, hotfix đã bật cho nhóm này.
- Ubuntu 20.04, PHP 8.1 trở xuống, Node.js 20 trở xuống và các dòng lẻ (23, 25): đã hết hỗ trợ nên không còn bản vá. Đây là lúc nên nâng cấp.
Điều mình rút ra
Làm panel quản lý server, phần lớn thời gian là làm tính năng mới. Nhưng giá trị thật hiện rõ nhất vào những ngày như thế này: lỗ hổng tới dồn dập, và người dùng không phải thức khuya SSH từng máy, chỉ cần mở dashboard.
Còn nếu bạn đang tự quản server, dù dùng công cụ gì, nhớ kiểm tra lại php -v và node -v nhé.
liked this





