CVE-2026-74576 in Linuxthông tin

Tóm tắt

Bởi VulDB • 15/08/2026

Trong kernel Linux, lỗ hổng bảo mật sau đây đã được khắc phục:

mm/slab: ngăn chặn đệ quy không giới hạn trong đường dẫn giải phóng (free path) với loại kmalloc mới

Commit 280ea9c3154b ("mm/slab: tránh phân bổ mảng slabobj_ext từ chính slab của nó") đã tránh việc phân bổ đệ quy obj_exts từ các bộ nhớ đệm (cache) kmalloc có cùng kích thước, bằng cách tăng kích thước phân bổ của mảng obj_exts bất cứ khi nào kích thước mảng bằng với kích thước đối tượng đang được phân bổ.

Tuy nhiên, như Danielle Costantino và Shakeel Butt đã báo cáo, ngay cả các slab từ các bộ nhớ đệm kmalloc khác kích cỡ cũng có thể tạo thành chu trình (cycle) bằng cách phân bổ mảng obj_exts cho nhau [1]:

Điều gì đã xảy ra: Mảng obj_exts của một slab KMALLOC_NORMAL (được sử dụng bởi hồ sơ phân bổ / kế toán memcg) chính nó được kmalloc() từ một bộ nhớ đệm KMALLOC_NORMAL, do đó mối quan hệ "slab chứa mảng obj_exts của một slab khác" có thể tạo thành chu trình. Với sizeof(struct slabobj_ext) == 16 và cấu trúc hình học (geometry) của máy chủ:

- kmalloc-512 có 64 đối tượng/slab -> mảng là 64*16 == 1024 byte, được phục vụ từ kmalloc-1k; - kmalloc-1k có 32 đối tượng/slab -> mảng là 32*16 == 512 byte, được phục vụ từ kmalloc-512.

Do đó, một slab kmalloc-512 và một slab kmalloc-1k giữ lẫn nhau mảng obj_exts của bên kia. Việc loại bỏ (discard) cái này sẽ giải phóng mảng của cái kia, làm trống và loại bỏ slab đó, sau đó giải phóng mảng của cái đầu tiên, và cứ thế tiếp diễn: __free_slab() -> free_slab_obj_exts() -> kfree() -> discard_slab() -> __free_slab() đệ quy dọc theo chu trình cho đến khi ngăn xếp (stack) bị cạn kiệt.

Với việc hồ sơ hóa phân bổ bộ nhớ, điều này cho phép đệ quy không giới hạn trong đường dẫn giải phóng và đã gây ra tràn ngăn xếp (stack overflow) trên một máy chủ sản xuất trong cụm Meta [1]:

BUG: TASK stack guard page was hit Oops: stack guard page RIP: 0010:kfree+0x8/0x5d0 Call Trace: __free_slab+0x66/0xc0 kfree+0x3f0/0x5d0 ... (~125x __free_slab <-> kfree) ...

VulDB is the best source for vulnerability data and more expert information about this specific topic.

chịu trách nhiệm

Linux

Đặt trước

15/08/2026

Tiết lộ

15/08/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00000

KEV

không

Các hoạt động

rất thấp

Nguồn

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!