CVE-2024-48924 in MessagePack-CSharpthông tin

Tóm tắt

Bởi VulDB • 06/06/2026

### Tác động

Khi thư viện này được sử dụng để giải serialize (deserialize) dữ liệu MessagePack từ một nguồn không đáng tin cậy, sẽ có nguy cơ xảy ra cuộc tấn công làm gián đoạn dịch vụ (DoS) bởi kẻ gửi dữ liệu được tạo ra nhằm gây ra va chạm băm (hash collisions), dẫn đến việc tiêu thụ CPU lớn bất thường so với kích thước của dữ liệu đang được giải serialize.

Sự cố này tương tự như [lời cảnh báo trước đây](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf), vốn đã cung cấp một bản sửa lỗi không đầy đủ cho phần va chạm băm của lỗ hổng.

### Bản vá (Patches)

Các bước sau đây là bắt buộc để giảm thiểu rủi ro này.

1. Nâng cấp lên phiên bản thư viện có sẵn bản sửa lỗi. 2. Xem lại các bước trong [lời cảnh báo trước đó](https://github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-7q36-4xx7-xcxf) để đảm bảo ứng dụng của bạn đã được cấu hình để xử lý dữ liệu không đáng tin cậy.

### Giải pháp tạm thời (Workarounds)

Nếu việc nâng cấp MessagePack lên phiên bản có bản vá không phải là lựa chọn khả thi cho bạn, bạn có thể áp dụng giải pháp tạm thời thủ công như sau:

1. Khai báo một lớp dẫn xuất từ `MessagePackSecurity`. 2. Ghi đè phương thức `GetHashCollisionResistantEqualityComparer` để cung cấp hàm băm chống va chạm do chính bạn định nghĩa và tránh gọi `base.GetHashCollisionResistantEqualityComparer()`. 3. Cấu hình đối tượng `MessagePackSerializerOptions` với một thể hiện của lớp dẫn xuất bằng cách gọi `WithSecurity` trên một đối tượng options đã tồn tại. 4. Sử dụng đối tượng tùy chỉnh này cho tất cả các thao tác giải serialize (deserialization). Điều này có thể thực hiện bằng cách đặt thuộc tính tĩnh `MessagePackSerializer.DefaultOptions`, nếu bạn sử dụng các phương thức dựa vào mặc định này, và/hoặc bằng cách truyền rõ ràng đối tượng options vào bất kỳ phương thức `Deserialize` nào.

### Tài liệu tham khảo

- Tìm hiểu thêm về các biện pháp bảo mật tốt nhất khi đọc dữ liệu không đáng tin cậy với [MessagePack 1.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp/tree/v1.x#security) hoặc [MessagePack 2.x](https://github.com/MessagePack-CSharp/MessagePack-CSharp#security).
- Thảo luận của nhóm .NET về [các lỗ hổng va chạm băm trong cấu trúc `HashCode` của họ](https://github.com/GrabYourPitchforks/runtime/blob/threat_models/docs/design/security/System.HashCode.md).

### Thông tin thêm

Nếu bạn có bất kỳ câu hỏi hoặc nhận xét nào về lời cảnh báo này:

* [Bắt đầu thảo luận công khai](https://github.com/MessagePack-CSharp/MessagePack-CSharp/discussions)
* [Gửi email cho chúng tôi một cách riêng tư](mailto:[email protected])

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

chịu trách nhiệm

GitHub M

Đặt trước

10/10/2024

Tiết lộ

18/10/2024

Kiểm duyệt

được chấp nhận

EPSS

0.00371

KEV

không

Các hoạt động

rất thấp

Nguồn

Do you know our Splunk app?

Download it now for free!