NodeBB vá 8 lỗ hổng do AI phát hiện, làm lộ quyền quản trị và tin nhắn riêng tư

Tám lỗ hổng bảo mật trong NodeBB đã được công bố vào thứ Tư, cùng với mã exploit. Aikido Security đánh giá tất cả ở mức độ nghiêm trọng cao và cho biết các công cụ AI pentest của họ đã tìm thấy chúng sau sáu giờ kiểm tra mã nguồn phần mềm diễn đàn. Tất cả các phiên bản trước 4.14.0 đều bị ảnh hưởng. NodeBB đã khắc phục toàn bộ và quản trị viên nên cập nhật lên phiên bản 4.14.2. Lỗ hổng đơn giản nhất cho phép người dùng thông thường truy cập bảng điều khiển quản trị chỉ bằng cách thay đổi cài đặt trang chủ.
NodeBB Security Vulnerabilities
NodeBB đã khắc phục hàng loạt lỗ hổng bảo mật nghiêm trọng.

Tám lỗ hổng bảo mật trong NodeBB đã được công bố vào thứ Tư vừa qua, cùng với mã exploit để khai thác chúng. Aikido Security đánh giá cả tám lỗ hổng này ở mức độ nghiêm trọng cao và cho biết các AI pentest agents của họ đã tìm thấy chúng chỉ trong một cuộc kiểm tra mã nguồn phần mềm diễn đàn kéo dài sáu giờ.

Tất cả các phiên bản trước 4.14.0 đều bị ảnh hưởng. NodeBB đã khắc phục toàn bộ và các quản trị viên hệ thống nên cập nhật lên phiên bản 4.14.2.

Lỗ hổng đơn giản nhất liên quan đến việc thay đổi cài đặt. Một thành viên diễn đàn thông thường có thể trỏ cài đặt trang chủ của họ đến địa chỉ quản trị, tải lại trang, và bảng điều khiển quản trị (admin dashboard) sẽ mở ra cho họ mà không cần mật khẩu hay mã exploit.

Giao diện của diễn đàn có chặn cài đặt đó, nhưng việc ngăn chặn này chỉ diễn ra trên trình duyệt và có thể bị bỏ qua. Hầu hết những gì một thành viên có thể tiếp cận sau đó đều ở chế độ chỉ đọc, bao gồm nhật ký lỗi và bất kỳ danh sách người dùng nào mà quản trị viên đã xuất ra, mặc dù họ cũng có thể thay đổi logo của trang web.

Hai lỗ hổng khác cho phép kẻ tấn công không có tài khoản vẫn có thể truy cập vào những nội dung riêng tư. Một lỗ hổng cho phép bất kỳ ai mạo danh người dùng bất kỳ và đọc từng tin nhắn riêng tư. Lỗ hổng còn lại cung cấp nội dung của các danh mục riêng tư cho bất kỳ ai yêu cầu chúng đúng cách.

Lỗ hổng nghiêm trọng nhất nằm ở cách NodeBB xây dựng các trang web của mình. Phần mềm sẽ điền nội dung vào một trang, sau đó thực hiện lượt quét thứ hai để thay thế văn bản đã dịch. Lúc đó, nội dung nhập của người dùng đã có sẵn trong trang và nó có thể chứa các mã mà lượt quét thứ hai đang tìm kiếm. Điều này cho phép kẻ tấn công chèn một liên kết vào hầu như bất kỳ nơi nào trên trang web, bao gồm cả bên trong các bài đăng thông thường trên diễn đàn, để thực thi mã của chúng khi khách truy cập nhấp vào.

Các lỗ hổng còn lại cho phép kẻ tấn công chiếm đoạt một bài đăng hiện có, tăng số lượng bình chọn cho bài đăng và thực hiện hai cuộc tấn công chèn mã độc thông qua một máy chủ giả mạo trên fediverse - mạng lưới các trang mạng xã hội được kết nối mà diễn đàn NodeBB có thể tham gia.

Đối tượng thực sự bị đe dọa

Tám lỗ hổng này có tính chất khác nhau. Ba lỗ hổng không yêu cầu tài khoản trên diễn đàn mục tiêu. Hai lỗ hổng yêu cầu tài khoản thành viên thông thường. Ba lỗ hổng cuối cùng yêu cầu người dùng phải nhấp vào liên kết hoặc mở một trang nhất định.

Theo thống kê của The Hacker News, năm trong số tám lỗ hổng nằm trong mã federation của NodeBB, phần kết nối diễn đàn với Mastodon và các trang mạng xã hội khác. Điều này quyết định ai là người gặp rủi ro. Các diễn đàn được cài đặt mới trên phiên bản 4 được bật tính năng federation theo mặc định, do đó chúng có cả tám lỗ hổng. Các diễn đàn nâng cấp từ phiên bản 3 được tự động tắt federation, và trừ khi quản trị viên bật lại, chỉ có ba lỗ hổng là có thể bị khai thác.

Minh họa lỗ hổng XSS
Sơ đồ minh họa lỗi cross-site scripting (XSS).

Aikido không công bố điểm mức độ nghiêm trọng cho từng lỗ hổng riêng lẻ và ghi chú phát hành của NodeBB cũng không xếp hạng chúng. Tuy nhiên, thang đo bug bounty của NodeBB xếp hạng cross-site scripting và account takeover là mức độ cao, trong khi việc giành quyền truy cập quản trị là mức độ cực kỳ nghiêm trọng.

Đã được vá từng phần từ tháng 5

NodeBB đã âm thầm khắc phục hầu hết các lỗ hổng này mà không nêu rõ chi tiết ban đầu. The Hacker News đã đối chiếu từng bản vá với lịch sử phát hành của NodeBB: bốn bản được phát hành vào tháng 5, hai bản vào tháng 6, và bản vá lớn nhất - việc xây dựng lại cách phần mềm xử lý văn bản trên trang - đã xuất hiện trong phiên bản 4.14.0 vào ngày 9 tháng 7. Việc tái cấu trúc này đã thay đổi tới 325 tệp tin.

Báo cáo của Aikido cho biết các vấn đề đã được khắc phục vào đầu tháng 7, điều này không hoàn toàn khớp với hồ sơ lưu trữ. Liên kết của họ cho bản vá admin-panel trỏ đến một thay đổi được thực hiện vào tháng 1 năm 2024, hai năm trước khi cuộc đánh giá diễn ra, trong khi ghi chú phát hành của NodeBB lại nêu tên một thay đổi khác từ tháng 5. Hiện chưa có bên nào giải thích về sự chênh lệch này.

Quản trị viên nên nâng cấp lên phiên bản 4.14.2, được phát hành vào ngày 23 tháng 7. Việc nâng cấp có thể tốn chút công sức vì phiên bản 4.14.0 đã thay đổi cách các template trang xử lý văn bản, do đó các themes và plugin tùy chỉnh có thể cần phải cập nhật. Việc tắt federation cũng không phải là giải pháp triệt để, vì ba trong số các lỗ hổng không liên quan đến tính năng này.

Hiện không có lỗ hổng nào trong số tám lỗ hổng này có mã số CVE, và chưa có báo cáo nào về các cuộc tấn công thực tế. Một lỗ hổng federation riêng biệt của NodeBB có mã số CVE-2026-58593, được ghi nhận vào ngày 1 tháng 7. Đây không phải là một trong tám lỗ hổng của Aikido, nhưng nó nằm trong cùng một phần mã nguồn và cho phép một máy chủ bên ngoài đăng và gửi tin nhắn dưới danh nghĩa của bất kỳ tài khoản nào, kể cả quản trị viên. Lỗi này yêu cầu phải bật federation và hiện chưa rõ phiên bản nào đã khắc phục hoàn toàn.

Trang bug bounty của NodeBB tuyên bố từ chối các báo cáo do AI tạo ra và chỉ trả thưởng cho những công trình do chính người gửi thực hiện. Tuy nhiên, điều này chỉ áp dụng cho việc chi trả tiền thưởng; cả tám lỗ hổng này đều đã được báo cáo trực tiếp và được đội ngũ phát triển vá lỗi.

NodeBB không phải là dự án duy nhất xử lý các báo cáo từ AI: nền tảng n8n đã vá một lỗi đăng nhập vào tháng 6 do một AI pentest agent khác tìm thấy. Đồng sáng lập Julian Lam cho biết các báo cáo bảo mật hợp lệ đã gửi đến đều đặn trong tháng, "mặc dù hầu hết đều do AI phát hiện và tạo ra."

Mô hình chung đằng sau cả tám lỗ hổng này là: NodeBB thực hiện kiểm tra quyền hạn ở con đường chính dẫn vào một tính năng, nhưng lại bỏ qua việc kiểm tra ở con đường phụ dẫn đến cùng một vị trí đó.