Cuối tháng 10/2026, giới làm phần mềm khắp thế giới có một tuần bận rộn. Chỉ trong hai ngày 20 và 21/10, ba nền tảng mà rất nhiều trang web và ứng dụng đang chạy trên đó là PHP, Node.js và Java cùng phát hành bản vá cho hàng loạt lỗ hổng bảo mật, trong đó có những lỗ hổng cho phép kẻ tấn công chạy mã trên máy chủ mà không cần đăng nhập.

Nếu bạn đọc được tin này và đang tự hỏi «app con mình dùng có sao không», bài này trả lời ngắn gọn: máy chủ của Dino Kids đã chạy bản PHP đã vá ngay trong tối 21/10/2026, ngày bản vá được công bố; còn ứng dụng trên iPad, iPhone và điện thoại Android của bé không dùng ba nền tảng này. Phần dưới giải thích từng ý, bằng những con số chúng tôi kiểm lại trên chính hệ thống đang chạy.
Chuyện gì đã xảy ra
- PHP. Ngày 21/10, nhóm phát triển PHP phát hành các bản 8.5.12, 8.4.27, 8.3.36 và 8.2.35 để vá hai lỗ hổng CVE-2026-109618 và CVE-2026-109619, được giới bảo mật gọi chung là «php2shell». Cả hai được chấm 9,2/10 (mức nghiêm trọng) theo thang CVSS 4.0: kẻ tấn công không cần tài khoản vẫn có thể khiến máy chủ chạy mã của họ. Thông tin chi tiết bị lộ trên mạng xã hội trước ngày công bố dự kiến, nên PHP phải phát hành gấp; ngay trong ngày đã ghi nhận các vụ khai thác thật, và ngày 26/10 Cơ quan An ninh Mạng Hoa Kỳ (CISA) đưa lỗ hổng vào danh sách «đang bị khai thác». PHP nói rõ: không có cách chỉnh cấu hình nào chặn được hoàn toàn, chỉ có cập nhật.
- Node.js. Cùng ngày 21/10, Node.js vá 10 lỗ hổng (4 mức cao) trên ba dòng 22, 24 và 26. Nặng nhất là CVE-2026-111497: dữ liệu nén Brotli bị làm hỏng có thể dẫn tới chạy mã từ xa. Node.js 20 trở về trước đã hết hạn hỗ trợ nên không có bản vá.
- Java. Ngày 20/10, Oracle phát hành gói vá định kỳ quý với 55 bản sửa cho Java SE; một ngày sau có thêm bản vá khẩn CVE-2026-91403 (9,1/10), liên quan tới việc Java vẫn tin chứng chỉ của một đơn vị cấp chứng chỉ ở Ấn Độ (eMudhra) dù khoá bí mật của họ đã bị lộ.
Ba nền tảng vá cùng một lúc là chuyện trùng hợp, nhưng hệ quả thì giống nhau: hệ thống nào chậm cập nhật sẽ bị dò quét gần như ngay lập tức.
Dino Kids gồm những phần nào
Để biết mình có bị ảnh hưởng hay không, cần biết mình được làm từ gì. Dino Kids có ba phần:
- Ứng dụng trên iPad, iPhone và Android, viết bằng Flutter (ngôn ngữ Dart). App không chứa PHP, Node.js hay Java SE, nên không thuộc diện của đợt vá này.
- Máy chủ lo việc đồng bộ tài khoản, kho tranh và giọng đọc, chạy PHP 8.5 với Laravel. Phần này có thuộc diện của lỗ hổng php2shell.
- Trang web dino-kids.digidinos.com là trang tĩnh dựng sẵn, không chạy Node.js hay Java để phục vụ bạn đọc, nên cũng không thuộc diện.
Vậy phần duy nhất cần hành động gấp là máy chủ.
Máy chủ đã được vá lúc nào
Chúng tôi không muốn chỉ nói «đã cập nhật». Đây là những gì kiểm được trên máy chủ đang phục vụ app, ngày 29/10/2026:
- PHP 8.5.12 được cài lúc 23:04 tối 21/10/2026 (giờ Việt Nam), và tiến trình PHP phục vụ app được khởi động lại ngay sau đó, lúc 23:05, nên bản đã vá là bản thật sự đang chạy chứ không chỉ nằm trên đĩa. Đó là cùng ngày PHP công bố bản vá.
- Không có tiến trình Node.js hay Java nào phục vụ app. Máy chủ của Dino Kids chỉ chạy PHP; giao diện trang quản trị là tệp viết sẵn, không cần Node.js để dựng.
- Chứng chỉ HTTPS của Dino Kids do Google Trust Services cấp, không dính tới eMudhra.
- Ngày 29/10, chúng tôi rà lại cả đường đi phía trước máy chủ và cập nhật thư viện mã hoá HTTPS của máy chủ trung gian lên bản mới nhất.
- Mọi thay đổi mã nguồn đều phải qua bộ kiểm thử tự động trước khi lên máy chủ. Đó cũng là lý do một bản nâng cấp như PHP 8.5.12 lắp vào được trong vài giờ mà không làm hỏng tính năng nào: bộ kiểm thử đã chạy trên đúng dòng PHP 8.5 từ trước.
Vì sao chúng tôi làm được nhanh như vậy
Không có phép màu nào ở đây, chỉ có ba thói quen:
- Theo sát bản mới nhất. Máy chủ Dino Kids chạy PHP 8.5 và Laravel 13, những dòng mới nhất đang được hỗ trợ. Bản càng cũ, càng có nguy cơ bị bỏ rơi khi có lỗ hổng: lần này PHP 8.1 trở về trước và Node.js 20 trở về trước không có bản vá chính thức.
- Cài bản vá từ nguồn phát hành sớm. Các gói PHP trên máy chủ lấy từ một kho chuyên theo kịp bản phát hành của PHP, nên bản vá có mặt ngay trong ngày, không phải đợi vài ngày như kho mặc định của nhiều hệ điều hành.
- Giữ phần mềm gọn. App không mang theo máy chủ hay trình thông dịch nào bên trong. Trang web là trang tĩnh. Càng ít thành phần chạy, càng ít chỗ phải vá.
Bố mẹ có cần làm gì không
Gần như không. Nếu muốn yên tâm thêm, có hai việc nhỏ:
- Cập nhật hệ điều hành của máy (iPadOS, iOS, Android). Phần lớn bản vá bảo mật, kể cả những thay đổi về chứng chỉ, đến với máy của bạn qua bản cập nhật của Apple và Google.
- Cập nhật Dino Kids khi App Store hay Google Play báo có bản mới.
Bạn không cần đổi mật khẩu vì đợt lỗ hổng này. Và nhắc lại để bạn yên tâm: Dino Kids dùng trọn vẹn được mà không cần tài khoản, app không có quảng cáo, không gắn bộ theo dõi của bên thứ ba nào. Thứ gì được gửi lên máy chủ và vì sao, chúng tôi viết rõ trong chính sách quyền riêng tư.
Nói thẳng
Không hệ thống nào an toàn tuyệt đối, và chúng tôi sẽ không hứa điều đó. Điều chúng tôi hứa được là: theo dõi các thông báo bảo mật của những phần mềm Dino Kids dựa vào, vá ngay khi có bản vá, và nói thật với bạn khi có chuyện. Nếu bạn phát hiện điều gì bất thường, hoặc là người làm bảo mật muốn báo một lỗ hổng, hãy viết cho chúng tôi ở dinokids@digidinos.com.
Tài liệu tham khảo
- PHP, Nhật ký thay đổi PHP 8 (mục 8.5.12).
- watchTowr, CVE-2026-109618: Exploited Remote Code Execution in PHP.
- Node.js, Wednesday, October 21, 2026 Security Releases.
- Oracle, Critical Patch Update Advisory - October 2026.