Lỗi thoát sandbox Twig trong octobercms October CMS cho phép thực thi PHP tùy ý

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2023-44382 là gì?

Lỗ hổng CVE-2023-44382 là lỗ hổng Improper Control of Generation of Code ('Code Injection') ảnh hưởng tới october (phiên bản bị ảnh hưởng: >= 3.0.0, < 3.4.15). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 9.1. Hiện chưa đủ dữ liệu để xác định lỗ hổng này đã bị khai thác hay chưa.

Giới thiệu chung

Dữ liệu gốc

October là một Content Management System (CMS) và nền tảng web hỗ trợ quy trình phát triển. Người dùng backend đã xác thực có quyền editor.cms_pages, editor.cms_layouts hoặc editor.cms_partials, những quyền mà thông thường không cho phép cung cấp mã PHP để CMS thực thi do cms.safe_mode được bật, có thể viết mã Twig cụ thể để thoát khỏi sandbox Twig và thực thi PHP tùy ý. Vấn đề này đã được khắc phục trong 3.4.15.

Sản phẩm và phạm vi ảnh hưởng

  • October CMS, package october/system: các phiên bản >= 3.0.0, < 3.4.15 bị ảnh hưởng.
  • Bản advisory xác định 3.4.15 là phiên bản đã được vá.
  • Trạng thái của các phiên bản nằm ngoài phạm vi bị ảnh hưởng được hỗ trợ ở trên không được xác lập trong bản ghi; không nên suy ra rằng mọi nhánh phát hành muộn hơn hoặc song song đều đã được kiểm tra.

Chi tiết kỹ thuật

October CMS sử dụng sandbox của Twig và cms.safe_mode để hạn chế người dùng backend không được phép cung cấp PHP cho CMS thực thi. Người dùng backend đã xác thực có một trong các quyền editor.cms_pages, editor.cms_layouts hoặc editor.cms_partials có thể ghi mã Twig cụ thể vào các bề mặt quản trị tương ứng. Mã này thoát khỏi sandbox Twig và khiến CMS thực thi PHP tùy ý, thuộc nhóm lỗi chèn mã được phân loại là CWE-94. Đặc tính tấn công trong bản ghi cho thấy lỗi có thể bị tiếp cận qua mạng, độ phức tạp thấp, yêu cầu quyền cao và không cần tương tác bổ sung từ người dùng. Bằng chứng hiện có không tiết lộ cú pháp Twig cụ thể, đường dẫn mã dễ bị ảnh hưởng hoặc chi tiết triển khai của bản vá.

Khả năng khai thác

Lỗi có thể bị khai thác qua giao diện backend có khả năng tiếp cận qua mạng. Kẻ tấn công phải xác thực và có ít nhất một trong các quyền editor.cms_pages, editor.cms_layouts hoặc editor.cms_partials; đây không phải là điểm vào dành cho người dùng chưa xác thực. Bản ghi đánh giá yêu cầu quyền cao, độ phức tạp thấp và không cần tương tác của nạn nhân. Bản ghi không xác lập rằng lỗi đã bị khai thác thực tế, có public exploit hoặc được sử dụng trong ransomware.

Tác động kỹ thuật

Thực thi PHP tùy ý có thể làm mất tính bảo mật, toàn vẹn và khả dụng của môi trường October CMS. Nếu tiến trình CMS có quyền truy cập cơ sở dữ liệu, filesystem, secret hoặc tài nguyên mạng, các tài nguyên đó có thể bị đọc hoặc thay đổi, nhưng bản ghi không xác định cụ thể những tài nguyên nào có thể tiếp cận. Đánh giá phạm vi thay đổi cho thấy tác động có thể vượt ra ngoài thành phần CMS ban đầu, mặc dù ranh giới cụ thể chưa được mô tả. Vì yêu cầu phải có quyền backend đã xác thực, đây là sự gia tăng quyền năng của một người dùng quản lý nội dung bị giới hạn, không phải một điểm vào chưa xác thực. Bản ghi không xác nhận một vụ lộ dữ liệu hoặc gián đoạn dịch vụ cụ thể.

Tác động đến tổ chức

Khai thác thành công có thể cho phép người dùng backend đã xác thực thực thi PHP tùy ý trong ngữ cảnh của CMS. Điều này có thể dẫn đến sửa đổi nội dung hoặc mã do ứng dụng quản lý, truy cập dữ liệu mà tiến trình CMS được phép đọc, hoặc làm gián đoạn dịch vụ, nhưng phạm vi hậu khai thác cụ thể chưa được công bố. Rủi ro đặc biệt đáng chú ý trong các môi trường dùng cms.safe_mode để tách quyền quản lý nội dung khỏi khả năng thực thi PHP. Điều kiện tiên quyết vẫn đáng kể vì kẻ tấn công phải có tài khoản backend và một trong các quyền được nêu.

Cách khắc phục

  1. Nâng cấp các bản cài đặt October CMS hoặc october/system thuộc phạm vi >= 3.0.0, < 3.4.15 lên 3.4.15, là phiên bản được xác định đã vá lỗi.
  2. Nếu chưa thể vá ngay, gỡ các quyền editor.cms_pages, editor.cms_layouts và editor.cms_partials khỏi những người dùng backend không đáng tin cậy. Đây là biện pháp giảm thiểu tạm thời, không thay thế cho bản vá.
  3. Rà soát lại việc cấp quyền và cấu hình cms.safe_mode. Kịch bản rủi ro của advisory đặc biệt liên quan đến các triển khai dựa vào safe mode để ngăn những người dùng này ghi và thực thi PHP.
  4. Sau khi thay đổi, xác minh phiên bản package trên tất cả instance và kiểm tra lại các quyền backend để tránh còn sót một triển khai bị ảnh hưởng.

Cách phát hiện

  1. Kiểm kê mọi máy chủ chạy October CMS hoặc package october/system, sau đó đối chiếu phiên bản triển khai với phạm vi bị ảnh hưởng.
  2. Kiểm tra cấu hình cms.safe_mode và xác định các môi trường đang dựa vào tùy chọn này để ngăn người dùng backend thực thi PHP.
  3. Liệt kê tài khoản và vai trò có các quyền editor.cms_pages, editor.cms_layouts hoặc editor.cms_partials, đặc biệt là các tài khoản không được phép quản lý PHP.
  4. Rà soát audit record hiện có về việc các tài khoản đó sửa CMS pages, layouts hoặc partials, cùng nội dung Twig bất thường. Đây là biện pháp rà soát thận trọng, không phải IOC đã được xác nhận.
  5. Bằng chứng hiện có không xác định log signature hoặc IOC cụ thể; việc không tìm thấy bản ghi phù hợp không chứng minh hệ thống an toàn.
Nguồn (8)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.