Frappe ERPNext: Chèn template phía máy chủ cho phép thực thi mã 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-2026-72911 là gì?

Lỗ hổng CVE-2026-72911 là lỗ hổng Improper Neutralization of Special Elements Used in a Template Engine ảnh hưởng tới erpnext (phiên bản bị ảnh hưởng: < 15.118.0 và >= 16.0.0, < 16.29.0). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 9.9. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

ERPNext là một công cụ Hoạch định Nguồn lực Doanh nghiệp miễn phí và mã nguồn mở. Trước 15.118.0 và 16.29.0, các lời gọi validate_template và render_template trong erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py render các trường subject, body và pdf_name với các globals không bị giới hạn, bao gồm frappe.utils, cho phép người dùng đã xác thực với một vai trò vận hành phổ biến chèn các biểu thức template, thực thi mã tùy ý phía máy chủ và đọc dữ liệu trên toàn ứng dụng. Vấn đề này được khắc phục trong các phiên bản 15.118.0 và 16.29.0.

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

  • Frappe ERPNext nhánh 15: bị ảnh hưởng ở các bản phát hành < 15.118.0.
  • Frappe ERPNext nhánh 16: bị ảnh hưởng ở các bản phát hành >= 16.0.0, < 16.29.0.
  • Bản sửa cho nhánh 15 là 15.118.0; bản sửa cho nhánh 16 là 16.29.0.
  • Trạng thái của các nhánh hoặc bản phát hành không được liệt kê trong dữ liệu hỗ trợ chưa được xác nhận.

Chi tiết kỹ thuật

Frappe ERPNext xử lý các trường subject, body và pdf_name trong erpnext/accounts/doctype/process_statement_of_accounts/process_statement_of_accounts.py bằng các lời gọi validate_template và render_template. Trước khi được sửa, các lời gọi này sử dụng execution context không bị giới hạn, bao gồm namespace frappe.utils. Người dùng đã xác thực với một vai trò vận hành phổ biến có thể đưa các biểu thức template do họ kiểm soát vào những trường này; engine phía máy chủ sau đó có thể đánh giá biểu thức và thực thi mã tùy ý trên máy chủ, đồng thời đọc dữ liệu trên toàn ứng dụng. Đây là lỗi CWE-1336, do các phần tử đặc biệt trong template không được trung hòa phù hợp. Bằng chứng hiện có chưa xác định tên chính xác của vai trò, endpoint hoặc chuỗi request được dùng để tác động đến các trường này.

Khả năng khai thác

Lỗ hổng có thể bị tiếp cận qua mạng thông qua ứng dụng ERPNext và yêu cầu người tấn công phải có tài khoản đã xác thực. Quyền cần thiết được mô tả là thấp, tương ứng với một vai trò vận hành phổ biến; không cần người dùng khác tương tác và điều kiện khai thác được đánh giá là đơn giản. Bản ghi được cung cấp không xác định public exploit và không thiết lập rằng lỗ hổng đã bị khai thác trong thực tế. Không có mã khai thác, chiến dịch, nạn nhân hoặc chỉ dấu xâm nhập cụ thể nào được nguồn hiện có xác định.

Tác động kỹ thuật

Lỗi này cho phép một người dùng đã xác thực vượt ra ngoài mục đích hiển thị template để thực thi mã tùy ý trên máy chủ. Hậu quả kỹ thuật có thể gồm đọc dữ liệu ứng dụng, thay đổi dữ liệu hoặc cấu hình, và làm gián đoạn dịch vụ nếu mã thực thi có đủ quyền. Vì ảnh hưởng có thể lan sang các tài nguyên ngoài component template, phạm vi tác động có thể lớn hơn chức năng Process Statement of Accounts. Khả năng thực tế phụ thuộc vào quyền của tiến trình ERPNext và các tài nguyên mà máy chủ có thể truy cập; nguồn hiện có không xác định chi tiết giới hạn đó.

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

Khai thác thành công có thể làm lộ dữ liệu mà tiến trình máy chủ ERPNext có thể truy cập, bao gồm dữ liệu ngoài phạm vi nghiệp vụ trực tiếp của người dùng. Mã tùy ý chạy phía máy chủ cũng có thể cho phép thay đổi dữ liệu hoặc trạng thái ứng dụng, tùy theo quyền của tiến trình và các dịch vụ liên quan. Tác động có thể mở rộng từ chức năng tạo statement sang các tài nguyên ứng dụng khác vì nguồn template sử dụng execution context không bị giới hạn. Việc nguồn hiện có không nêu breach, nạn nhân hoặc chiến dịch cụ thể không loại trừ khả năng triển khai đã bị truy cập.

Cách khắc phục

  1. Nâng cấp ERPNext nhánh 15 lên đúng bản 15.118.0, hoặc nâng cấp ERPNext nhánh 16 lên đúng bản 16.29.0, tùy nhánh đang được triển khai.
  2. Không có workaround được vendor xác nhận; advisory nêu rõ rằng cần nâng cấp.
  3. Sau khi nâng cấp, xác nhận bản sửa đã giới hạn globals khi kiểm tra và render template, đồng thời không còn đưa frappe.utils vào context của Process Statement of Accounts.
  4. Rà soát các template và thay đổi cấu hình liên quan đến subject, body và pdf_name, sau đó điều tra mọi thay đổi trái phép, lỗi render bất thường hoặc hoạt động tạo email và PDF không mong đợi.
  5. Nếu phát hiện dấu hiệu khai thác, điều tra quyền truy cập dữ liệu và thay đổi phía máy chủ trong phạm vi mà tiến trình ERPNext có thể thực hiện. Không nên coi việc thiếu log hoặc thiếu IOC là bằng chứng hệ thống chưa từng bị truy cập.

Cách phát hiện

  1. Kiểm kê mọi triển khai ERPNext và đối chiếu phiên bản với các nhánh bị ảnh hưởng trong affected_summary.
  2. Rà soát các bản ghi Process Statement of Accounts, đặc biệt là nội dung subject, body và pdf_name, để phát hiện thay đổi trái phép hoặc biểu thức template bất thường.
  3. Trong quá trình kiểm tra mã hoặc package đã triển khai, xác nhận rằng các lời gọi validate_template và render_template cho các trường này sử dụng restrict_globals=True.
  4. Xác nhận context của template không còn đưa namespace frappe.utils vào biến frappe.
  5. Rà soát log và audit record liên quan đến việc chỉnh sửa template, kiểm tra template và tạo email hoặc PDF như một biện pháp thận trọng. Không có IOC cụ thể đã được xác nhận, và việc không thấy log bất thường không chứng minh hệ thống an toàn.
Nguồn (17)
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.

Khám phá các giải pháp khác liên quan