Cảnh báo khẩn cấp: 2 lỗ hổng CVE nghiêm trọng trong Django

Đội ngũ phát triển đã chính thức phát hành các bản cập nhật bảo mật thiết yếu nhằm khắc phục hai lỗ hổng CVE nghiêm trọng được phát hiện trong framework web phổ biến. Các vấn đề này có mức độ nghiêm trọng từ cao đến trung bình. Chúng có khả năng cho phép những kẻ tấn công xâm phạm tính toàn vẹn của cơ sở dữ liệu hoặc làm sập máy chủ thông qua việc cạn kiệt tài nguyên.
Phân tích CVE-2025-13372: Lỗ hổng SQL Injection nghiêm trọng
Lỗ hổng nghiêm trọng nhất, được theo dõi với mã định danh CVE-2025-13372, là một lỗ hổng CVE có mức độ nghiêm trọng cao thuộc dạng SQL Injection. Lỗ hổng này ảnh hưởng đến các dự án sử dụng PostgreSQL làm hệ quản trị cơ sở dữ liệu.
Cơ chế khai thác SQL Injection
Vấn đề cốt lõi nằm trong lớp FilteredRelation, một thành phần quan trọng của Django được sử dụng để lọc các đối tượng liên quan trong các truy vấn cơ sở dữ liệu. Cụ thể, sự cố phát sinh từ cách lớp này xử lý các bí danh cột (column aliases) trong quá trình tạo truy vấn.
Những kẻ tấn công có thể khai thác lỗ hổng CVE này bằng cách tạo ra một từ điển (dictionary) đặc biệt, sử dụng tính năng mở rộng từ điển (dictionary expansion), và truyền nó tới các phương thức QuerySet.annotate() hoặc QuerySet.alias().
Các phương thức này trong Django ORM cho phép thêm các chú thích hoặc bí danh vào các đối tượng truy vấn. Khi được truyền một từ điển được thiết kế riêng, cơ chế xử lý bí danh cột không an toàn của FilteredRelation có thể bị lợi dụng.
Nếu quá trình thao túng thành công, mã SQL độc hại có thể được tiêm trực tiếp vào truy vấn cơ sở dữ liệu đang được thực thi. Điều này dẫn đến nguy cơ xâm phạm tính toàn vẹn dữ liệu, bao gồm khả năng truy xuất, sửa đổi, hoặc xóa dữ liệu trái phép.
CVE-2025-64460: Lỗ hổng DoS trong XML Serializer
Lỗ hổng thứ hai, được định danh là CVE-2025-64460, là một vấn đề có mức độ nghiêm trọng trung bình liên quan đến bộ chuyển đổi XML (XML serializer) của Django. lỗ hổng CVE này có thể dẫn đến một cuộc tấn công mạng từ chối dịch vụ (Denial of Service – DoS).
Vấn đề phức tạp thuật toán và cạn kiệt tài nguyên
Django đã phát hiện rằng phương thức django.core.serializers.xml_serializer.getInnerText() gặp phải các vấn đề về độ phức tạp thuật toán (algorithmic complexity issues). Phương thức này chịu trách nhiệm thu thập và xử lý các nút văn bản (text nodes) trong một tài liệu XML.
Khi một ứng dụng xử lý dữ liệu đầu vào XML được tạo tác đặc biệt, bộ chuyển đổi XML sẽ liên tục nối chuỗi (concatenates strings) trong khi thu thập các nút văn bản. Quá trình nối chuỗi lặp đi lặp lại này không hiệu quả, đặc biệt với các chuỗi lớn, và có thể dẫn đến thời gian tính toán “siêu tuyến tính” (superlinear computation time).
Hiện tượng này gây ra sự tăng đột biến đáng kể trong việc sử dụng CPU và bộ nhớ của máy chủ. Một kẻ tấn công từ xa có thể lợi dụng điểm yếu này để kích hoạt một cuộc tấn công mạng DoS, khiến dịch vụ bị sập hoặc trở nên không phản hồi.
Việc cạn kiệt tài nguyên do xử lý XML độc hại có thể làm tê liệt hoạt động của ứng dụng, gây gián đoạn dịch vụ và ảnh hưởng đến trải nghiệm người dùng.
Phiên bản bị ảnh hưởng và bản vá bảo mật
Cả hai lỗ hổng CVE này đều ảnh hưởng đến tất cả các phiên bản Django được hỗ trợ, bao gồm nhánh chính (main branch) và phiên bản Django 6.0 sắp tới (hiện đang ở trạng thái release candidate).
Để khắc phục các vấn đề bảo mật này, đội ngũ Django đã phát hành các bản vá bảo mật quan trọng. Các phiên bản cập nhật bao gồm:
- Django 5.2.9
- Django 5.1.15
- Django 4.2.27
Khuyến nghị cập nhật khẩn cấp
Các nhà phát triển được khuyến cáo mạnh mẽ nên nâng cấp ngay lập tức lên các phiên bản mới nhất để tránh các cuộc tấn công mạng tiềm tàng và bảo vệ hệ thống của mình. Việc trì hoãn cập nhật có thể để lại cửa sau cho kẻ tấn công khai thác những lỗ hổng CVE này.
Đối với các nhà phát triển đang sử dụng nhánh chính hoặc phiên bản Django 6.0 release candidate, cần thực hiện pull các commit mới nhất từ kho lưu trữ chính thức để đảm bảo dự án của họ được bảo mật.
Chi tiết về các bản vá bảo mật và quá trình cập nhật có thể được tìm thấy trong thông báo chính thức của Django: Django Security Releases.
Tầm quan trọng của việc cập nhật bản vá
Các bản vá bảo mật không chỉ giải quyết các lỗi cụ thể mà còn tăng cường khả năng phục hồi tổng thể của hệ thống. Trong môi trường đe dọa mạng ngày càng phức tạp, việc duy trì các phiên bản phần mềm được cập nhật là nền tảng của chiến lược an ninh mạng hiệu quả.
Việc không áp dụng kịp thời các bản vá bảo mật có thể dẫn đến những hậu quả nghiêm trọng, từ mất dữ liệu đến thiệt hại về danh tiếng và tài chính. Do đó, các tổ chức và nhà phát triển cần ưu tiên quy trình cập nhật và vá lỗi như một phần không thể thiếu trong hoạt động phát triển và triển khai.









