Server-side template injection dẫn đến thực thi mã từ xa trong Frappe ERPNext

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-65974 là gì?

Lỗ hổng CVE-2026-65974 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.111.0 và >= 16.0.0, < 16.22.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.111.0 và 16.22.0, người dùng đã xác thực với quyền hạn chế có thể vượt qua ranh giới quyền trong cơ chế thực thi an toàn của Frappe vì frappe.render_template được cung cấp mà không buộc restrict_globals, cho phép server-side template injection và thực thi mã từ xa. Vấn đề này được khắc phục trong các phiên bản 15.111.0 và 16.22.0.

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

  • Frappe ERPNext: bị ảnh hưởng ở các bản < 15.111.0.
  • Frappe ERPNext: bị ảnh hưởng ở nhánh >= 16.0.0, < 16.22.0.
  • Bản sửa lỗi được xác nhận là 15.111.0 cho nhánh 15 và 16.22.0 cho nhánh 16.
  • Các nhánh hoặc bản phát hành song song không được bao phủ rõ ràng bởi những phạm vi trên cần được xác minh riêng trước khi kết luận là không bị ảnh hưởng.

Chi tiết kỹ thuật

Lỗi nằm trong cơ chế thực thi an toàn của Frappe, nơi frappe.render_template được cung cấp cho môi trường hạn chế nhưng không buộc tham số restrict_globals. Điều này làm suy yếu ranh giới quyền giữa safe execution và khả năng render template, cho phép dữ liệu template do người dùng kiểm soát được xử lý như biểu thức phía máy chủ. Chuỗi tác động ở mức khái quát là: người dùng đã xác thực với quyền hạn chế truy cập chức năng safe execution, đưa dữ liệu template có khả năng được diễn giải, vượt qua ranh giới quyền và đạt thực thi mã từ xa trên máy chủ. Bản sửa đổi thêm safe_render_template, loại bỏ tham số restrict_globals do người gọi cung cấp và luôn gọi frappe.render_template với restrict_globals=True; các global an toàn được chuyển sang wrapper này. Chi tiết về endpoint hoặc yêu cầu cụ thể để đưa dữ liệu template vào hệ thống không được nguồn công khai xác định.

Khả năng khai thác

Lỗi có thể bị khai thác qua mạng bởi người dùng đã xác thực với quyền hạn chế. Vector được cung cấp cho thấy không cần tương tác của người dùng khác và độ phức tạp khai thác thấp. Phạm vi tác động thay đổi, nghĩa là việc vượt ranh giới trong thành phần bị ảnh hưởng có thể tác động đến tài nguyên bên ngoài phạm vi quyền dự kiến của thành phần đó. Hồ sơ được cung cấp đánh dấu không có public exploit; bằng chứng hiện có không xác nhận một chiến dịch khai thác thực tế, nhưng trạng thái này không chứng minh rằng việc khai thác là không thể.

Tác động kỹ thuật

Lỗi cho phép người dùng đã xác thực với quyền hạn chế chuyển từ khả năng sử dụng safe execution sang server-side template injection và thực thi mã từ xa. Kết quả kỹ thuật được mô tả là có thể tác động đến tính bí mật, tính toàn vẹn và tính sẵn sàng của hệ thống, đồng thời có thể vượt ra ngoài phạm vi quyền dự kiến của thành phần ban đầu. Hậu quả tổ chức có thể gồm truy cập hoặc thay đổi dữ liệu ERP, chiếm quyền máy chủ và gián đoạn các quy trình nghiệp vụ. Điều kiện giới hạn là kẻ tấn công vẫn cần một tài khoản hợp lệ có quyền truy cập phù hợp; nguồn công khai không xác định mọi endpoint hoặc cấu hình bị ảnh hưởng.

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

  • Kẻ tấn công có tài khoản hợp lệ nhưng quyền hạn chế có thể vượt qua ranh giới permission boundary của safe execution.
  • Thực thi mã từ xa trên máy chủ có thể dẫn đến toàn bộ hệ thống ERPNext bị xâm nhập, theo đánh giá của advisory.
  • Tác động có thể bao gồm đọc dữ liệu ERP trái phép, sửa đổi dữ liệu hoặc làm gián đoạn dịch vụ, nhưng hồ sơ không mô tả một vụ rò rỉ, nạn nhân hoặc chiến dịch cụ thể.
  • Do yêu cầu ban đầu là tài khoản đã xác thực, việc đánh giá rủi ro cần tập trung vào mọi tài khoản hạn chế có thể truy cập chức năng safe execution.

Cách khắc phục

  1. Nâng cấp ERPNext lên 15.111.0 đối với nhánh 15 hoặc 16.22.0 đối với nhánh 16, tùy nhánh đang triển khai.
  2. Kiểm kê tất cả site, worker và máy chủ chạy ERPNext để bảo đảm không còn instance nằm trong các phạm vi bị ảnh hưởng.
  3. Xác nhận sau nâng cấp rằng safe execution sử dụng wrapper giới hạn với restrict_globals=True, thay vì để frappe.render_template được gọi trực tiếp mà không ép giới hạn global.
  4. Advisory của nhà phát triển nêu rõ không có workaround; nếu chưa thể nâng cấp, không nên coi việc thay đổi cấu hình không được xác nhận là biện pháp khắc phục tương đương bản vá.
  5. Rà soát các tài khoản có quyền hạn chế nhưng có thể truy cập safe execution và điều tra hoạt động bất thường liên quan trong thời gian trước khi vá.

Cách phát hiện

  • Kiểm kê mọi triển khai ERPNext và phiên bản Frappe đi kèm, sau đó đối chiếu với các nhánh bị ảnh hưởng trong affected_summary.
  • Xác nhận bản triển khai đã sử dụng cơ chế sửa lỗi trong đó các global an toàn gọi wrapper giới hạn thay vì trực tiếp cung cấp frappe.render_template.
  • Rà soát log xác thực và log ứng dụng để tìm việc sử dụng bất thường safe execution hoặc hoạt động render template từ các tài khoản có quyền hạn chế. Đây là biện pháp giám sát phòng ngừa, không phải IOC đã được xác nhận.
  • Không xem việc không có sự kiện đáng ngờ trong log là bằng chứng hệ thống an toàn; cần xác nhận bằng inventory và phiên bản đã vá.
Nguồn (12)
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