5 phút đọc

Nextcloud tự cài đang bị cài web shell qua app soạn tài liệu có sẵn

App Collabora Online Built-in CODE Server của Nextcloud dính lỗi chạy lệnh không cần đăng nhập (CVE-2026-110447, CVSS 9,2), bị khai thác từ tháng 9 và CISA đã đưa vào danh sách KEV ngày 23/10. Tắt app không đủ: nâng lên 26.4.303 trở lên hoặc gỡ hẳn, rồi tìm file PHP lạ trong thư mục app.

Xem nhanh trong 1 phút

Có những lỗ hổng chỉ mở cửa trong vài giây. Lỗi này là một ví dụ: kẻ tấn công chỉ chạy được lệnh trên máy Nextcloud của bạn khi trình soạn tài liệu đi kèm đang không chạy, như lúc container vừa khởi động lại, lúc đang nâng cấp hoặc sau khi nó bị sập. Nghe thì hiếm. Nhưng máy bị dò quét tự động cả ngày lẫn đêm thì sớm muộn gì cũng trúng đúng mấy giây đó.

Robot linh vật chiếu đèn pin vào nắp hầm bí mật dưới đám mây, bóng đen nhỏ chui ra

Lỗi nằm trong app Collabora Online - Built-in CODE Server (tên kỹ thuật richdocumentscode), app cho phép mở và sửa file Word, Excel ngay trong Nextcloud mà không cần dựng máy chủ Collabora riêng. Vì cài một cú bấm là xong nên đây là cách nhiều người chọn khi tự dựng Nextcloud trên VPS cho nhóm, cho gia đình hay cho văn phòng nhỏ.

Chuyện gì đã xảy ra

Theo khuyến cáo của Collabora (mã CVE-2026-110447, CVSS v4 9,2), file proxy.php của app nhận dữ liệu từ request rồi đưa vào câu lệnh hệ thống mà không lọc kỹ. Người lạ không cần tài khoản gửi một request soạn sẵn là chạy được lệnh dưới quyền của web server.

Bản vá 26.4.303 ra ngày 11/9/2026, nhưng ghi chú phát hành không nói gì về bảo mật. Khuyến cáo chính thức tới 14/10 mới công bố. Trong một tháng đó, phần lớn người dùng không biết mình cần nâng cấp gấp.

Trong khi đó, kẻ tấn công đã biết từ trước. Trên GitHub, một quản trị viên dán log cho thấy request khai thác đầu tiên vào máy họ ngày 10/9, một ngày trước khi bản vá ra. Request gọi proxy.php, chứa đoạn $(...) để chèn lệnh và một chuỗi base64 được đẩy thẳng vào sh. Lệnh đó ghi một file PHP một dòng tên dạng shx*.php vào thư mục app. Đó là web shell: ai biết đường dẫn thì gửi lệnh qua tham số trên URL và máy chạy lệnh đó. Trên máy này, kẻ tấn công dùng shell để tìm file .kdbx của trình quản lý mật khẩu và ví tiền mã hóa.

Ở Ý, cơ quan an ninh mạng ACN ghi nhận ngày 16/10 một máy chủ Nextcloud bị cài ba web shell và bị lấy file cấu hình chứa thông tin đăng nhập và các mã bí mật của ứng dụng. Theo ACN, đây là một chiến dịch tự động do nhiều nhóm cùng chạy. CERT Polska nói lỗi đã được dùng trong các vụ ransomware và chiếm máy chủ, nhưng CISA ghi mục “dùng trong ransomware” là chưa rõ. Ngày 23/10, CISA đưa lỗi vào danh sách đang bị khai thác (KEV).

Tắt app là chưa đủ

Đây là điểm dễ làm sai nhất. Thấy cảnh báo, phản xạ đầu tiên là vào trang quản lý app của Nextcloud bấm “Tắt”. Khuyến cáo của Collabora nói rõ cách đó không tránh được lỗi. Chỉ có hai lựa chọn: nâng lên 26.4.303 trở lên, hoặc gỡ hẳn app.

Lý do theo cách mình hiểu: tắt app chỉ khiến Nextcloud không nạp nó nữa, còn file proxy.php vẫn nằm trong thư mục web và web server vẫn trả lời khi có người gọi thẳng vào đường dẫn đó. Trong luồng GitHub cũng có người hỏi vì sao app đã tắt mà proxy.php vẫn nhận request, và chưa ai trả lời.

Người dùng Nextcloud 29 trở xuống gặp khó hơn: bản vá cần Nextcloud 30 trở lên, nên app store chỉ cho bạn tới bản 26.4.104, vẫn còn lỗi. Hoặc nâng Nextcloud, hoặc gỡ app.

Những ai không bị ảnh hưởng, theo Collabora: máy chủ Collabora Online cài riêng, image Docker của Collabora, gói RPM/DEB, và Nextcloud All-in-One. Chỉ cái app “Built-in” nằm trong thư mục apps của Nextcloud mới dính.

Kiểm tra máy của bạn

Các lệnh dưới đây giả định Nextcloud ở /var/www/nextcloud và web server chạy bằng user www-data. Chạy Nextcloud trong Docker thì thêm docker exec -u www-data <tên container> trước lệnh php occ.

Có cài app này không, bản nào:

cd /var/www/nextcloud
sudo -u www-data php occ app:list | grep richdocumentscode

Không thấy dòng nào là bạn không dùng app này. Thấy số phiên bản nhỏ hơn 26.4.303 thì làm tiếp bước dưới. Kể cả app nằm trong mục “Disabled” cũng tính.

Nâng cấp hoặc gỡ:

sudo -u www-data php occ app:update richdocumentscode
# hoặc gỡ hẳn nếu không cần sửa tài liệu trong Nextcloud
sudo -u www-data php occ app:remove richdocumentscode

Có người báo bản 26.4.402 không khởi động được hoặc không mở được tài liệu trên máy họ. Gặp vậy thì lùi về 26.4.303, đừng lùi về bản cũ hơn.

Tìm web shell. Vá xong không xóa được file kẻ tấn công đã ghi vào trước đó:

sudo find /var/www/nextcloud/apps -name 'shx*.php' -ls
sudo find /var/www/nextcloud -name '*.php' -newermt 2026-09-01 -ls | grep -v '/data/'
sudo -u www-data php occ integrity:check-core

Lệnh thứ hai sẽ liệt kê cả file do bạn cập nhật Nextcloud hay app, nên hãy nhìn kỹ những file có tên lạ hoặc nằm lẻ một mình. integrity:check-core báo các file trong lõi Nextcloud bị thêm hoặc bị sửa so với bản gốc.

Soi log web server xem có ai gọi proxy.php với dữ liệu lạ từ ngày 10/9:

sudo zgrep -h "richdocumentscode/proxy.php" /var/log/nginx/access.log* /var/log/apache2/access.log* 2>/dev/null \
  | grep -E '%24%28|\$\(|IFS|base64|%2e%2e' | head

Một dấu hiệu nữa là máy chủ gọi ra webhook.site. Đó là dịch vụ hợp pháp, nhưng kẻ tấn công dùng nó để nhận thông tin máy nạn nhân, mà Nextcloud của bạn thì không có lý do gì để gọi tới đó.

Nếu thấy dấu bị xâm nhập, đừng chỉ xóa file rồi thôi. Chép log và file lạ ra chỗ khác trước. Sau đó đổi mật khẩu database, mật khẩu email gửi thư của Nextcloud, các app password, và giá trị secret trong config/config.php, làm từ một máy khác sạch. Web shell chạy dưới quyền www-data nên đọc được mọi thứ user đó đọc được, gồm cả config.php và file của người dùng trong thư mục data. Mật khẩu nào trong đó từng dùng lại ở chỗ khác thì đổi luôn ở chỗ đó.


Chính Collabora và trang app của Nextcloud đều nói app Built-in hợp để dùng thử và dùng tại nhà, còn dùng thật thì nên dựng máy chủ Collabora riêng. Nextcloud của bạn đang dùng cách nào để mở tài liệu? Vào cộng đồng Vibe Code & Bảo Mật kể cho mọi người cùng biết nhé.

Nguồn

Chia sẻ lên Facebook

Bình luận

Đang tải bình luận…