CVE-2026-49400 in Octoberthông tin

Tóm tắt

Bởi VulDB • 14/09/2026

October System cung cấp mô-đun hệ thống cho Hệ thống Quản trị Nội dung (CMS) October. Trước các phiên bản 3.7.17 và 4.2.21, trait `SessionMaker` trong phần backend đã lưu trữ trạng thái session của widget dưới dạng `base64(serialize(...))` và xử lý nó bằng hàm `unserialize()` mà không có hạn chế về `allowed_classes`. Bất kỳ đường dẫn mã nào cho phép ghi vào khóa session `widget.*` với các byte do kẻ tấn công kiểm soát đều có thể kích hoạt lỗi tiêm đối tượng PHP (PHP Object Injection) trong lần tiếp theo widget đọc trạng thái session của nó, cho phép khởi tạo các lớp tùy ý và truy cập vào các chuỗi gadget PHP. Vấn đề này chỉ ảnh hưởng đến các cài đặt đang chạy với `cms.safe_mode` được bật. Safe Mode là một tính năng chọn tham gia hiếm khi dùng, chủ yếu dành cho các cài đặt demo hoặc các kịch bản đa thuê (multi-tenant) / chia sẻ biên tập viên nơi người dùng không đáng tin cậy được cấp quyền truy cập vào trình soạn thảo markup CMS một cách có chủ đích. Trong các triển khai sản xuất tiêu chuẩn, Safe Mode bị tắt, việc truy cập backend bị hạn chế cho những quản trị viên đáng tin cậy và trình soạn thảo markup đã có thể thực thi PHP tùy ý ngay lập tức. Đường dẫn ghi session đạt đến điểm tiếp nhận (sink) này được bảo vệ bởi sandbox của Safe Mode, do đó các cài đặt không bật Safe Mode sẽ không bị phơi nhiễm. Phạm vi tác động rất hẹp ngay cả khi Safe Mode được bật. Các đường dẫn mã backend tiêu chuẩn điền trạng thái session cho widget (từ khóa tìm kiếm, tùy chọn sắp xếp, ID đã chọn, giá trị bộ lọc) bao bọc đầu vào trong một cấu trúc mảng xác định trước khi serialize hóa, vì vậy các giá trị do người dùng cung cấp không bao giờ đạt đến `unserialize()` dưới dạng payload serialized có thể kiểm soát được. Việc khai thác yêu cầu đường dẫn ghi session Safe Mode kết hợp với một chuỗi gadget PHP phù hợp có thể truy cập được từ tập phụ thuộc đã cài đặt. Bản tăng cường bảo mật bên dưới loại bỏ điểm tiếp nhận tiêm đối tượng cơ bản, do đó đóng lớp vấn đề này bất kể các yếu tố khác. Lỗi đã được vá trong v3.7.17 và v4.2.21. Hai thay đổi đã được áp dụng. `Backend\Traits\SessionMaker` hiện lưu trữ trạng thái session của widget dưới dạng JSON thuần túy thay vì `base64(serialize(...))`, loại bỏ hoàn toàn điểm tiếp nhận tiêm đối tượng cho các bản ghi mới. Các lần đọc sẽ tự động chuyển sang định dạng cũ trong một chu kỳ nâng cấp để duy trì trạng thái widget đã lưu của các session hiện có. Đường dẫn dự phòng `unserialize()` của định dạng cũ giờ đây đặt `allowed_classes => false`, do đó ngay cả các giá trị được viết trước khi nâng cấp cũng không thể khởi tạo đối tượng. Để khắc phục tạm thời, hãy hạn chế quyền chỉnh sửa markup CMS chỉ dành cho những quản trị viên hoàn toàn đáng tin cậy; đây là khuyến nghị tiêu chuẩn của October CMS cho mọi triển khai.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

chịu trách nhiệm

GitHub M

Đặt trước

29/05/2026

Tiết lộ

14/09/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to know what is going to be exploited?

We predict KEV entries!