Tóm tắt nhanh
- AutoMapper có lỗ hổng tràn ngăn xếp CVE-2026-128082 khi đệ quy qua tham số constructor.
- Dữ liệu lồng sâu do kẻ tấn công kiểm soát có thể làm tiến trình ứng dụng kết thúc.
- AutoMapper từ 16.0.0 đến trước 16.3.0 và các phiên bản dưới 15.1.4 bị ảnh hưởng.
- Ưu tiên nâng cấp lên 16.3.0 hoặc 15.1.4 theo nhánh đang sử dụng.
AutoMapper: lỗ hổng tràn ngăn xếp, kiểm tra phiên bản và nâng cấp bản vá
AutoMapper bị ảnh hưởng bởi CVE-2026-128082: đệ quy qua tham số constructor có thể vượt giới hạn độ sâu và làm tiến trình ứng dụng kết thúc. Kiểm tra cả gói trực tiếp lẫn gián tiếp; nâng cấp lên 16.3.0 hoặc 15.1.4 theo nhánh.
Nội dung bài viết
GitHub Advisories công bố lỗ hổng trong AutoMapper, thư viện .NET dùng để ánh xạ dữ liệu giữa các đối tượng. Dưới đây là phạm vi phiên bản, cơ chế ảnh hưởng và các bước kiểm tra, khắc phục theo advisory.
Tổng quan và thông tin kỹ thuật
CVE-2026-128082 là lỗi đệ quy không được kiểm soát khi ánh xạ qua tham số constructor. Advisory phân loại lỗi là CWE-674 và ghi nhận điểm CVSS 7.5 theo CVSS 3.1.
| Thông tin | Chi tiết |
|---|---|
| Sản phẩm | AutoMapper, thư viện .NET ánh xạ dữ liệu giữa các đối tượng |
| CVE / GHSA | CVE-2026-128082 / GHSA-6vhm-j9h7-f9gh |
| CWE | CWE-674 (Uncontrolled Recursion) |
| CVSS | 7.5 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) |
| Mã liên quan | CVE-2026-32933 (GHSA-rvv3-g6hj-g44x) |
| Nguồn | GitHub Advisories |
Phạm vi ảnh hưởng
| Sản phẩm | Phiên bản ảnh hưởng | Phiên bản đã vá |
|---|---|---|
| nuget:AutoMapper | >= 16.0.0, < 16.3.0 | 16.3.0 |
| nuget:AutoMapper | < 15.1.4 | 15.1.4 |
Cơ chế và tác động
Khi ánh xạ qua tham số constructor, MaxDepth không được tính trước khi tạo đối tượng đích. Do đó, cả giới hạn được đặt rõ ràng lẫn giới hạn mặc định 64 đều có thể bị vượt qua. Dữ liệu lồng sâu do kẻ tấn công kiểm soát có thể gây StackOverflowException không thể bắt và làm tiến trình ứng dụng kết thúc.
Lỗi cũng ảnh hưởng đến ConstructUsing khi ánh xạ đệ quy qua context.Mapper.
Kiểm tra hệ thống
Kiểm tra phiên bản AutoMapper được khai báo trực tiếp trong dự án .NET:
dotnet list packageNếu phiên bản nằm trong khoảng bị ảnh hưởng, nâng cấp lên 16.3.0 hoặc 15.1.4 tương ứng.
Kiểm tra cả các gói NuGet phụ thuộc được đưa vào gián tiếp:
dotnet list package --include-transitiveNếu AutoMapper xuất hiện với phiên bản bị ảnh hưởng, cập nhật phụ thuộc lên bản đã vá.
Khắc phục và giảm thiểu
Ưu tiên nâng cấp: chuyển AutoMapper lên 16.3.0 hoặc 15.1.4 theo nhánh phiên bản đang sử dụng.
Nếu chưa thể nâng cấp: giới hạn độ sâu đầu vào trước khi ánh xạ.
Với kiểu đích có constructor không tham số và thuộc tính có thể gán, có thể tạm dùng
cfg.DisableConstructorMapping()để ánh xạ qua thuộc tính, nơiMaxDepthđược thực thi.Với positional record, hồ sơ nêu giới hạn độ sâu đầu vào trước khi ánh xạ hoặc nâng cấp; không có workaround khác.