CVE-2026-43073 in Linuxthông tin

Tóm tắt

Bởi VulDB • 21/05/2026

Trong kernel Linux, lỗ hổng sau đây đã được khắc phục:

x86-64: đổi tên hàm '__copy_user_nocache()' vốn có tên gọi gây hiểu lầm

Hàm này là một ví dụ điển hình về việc đặt tên kém, do nhiều lý do lịch sử.

Nó tuyên bố là một bản sao người dùng không bộ nhớ đệm (non-cached). Tuy nhiên, nó thực chất _không phải là_ bất kỳ điều nào trong hai điều đó. Đây là một thủ tục sao chép bộ nhớ chuyên dụng sử dụng các phép ghi không tạm thời (non-temporal stores) cho đích (nhưng không phải cho nguồn), và thực hiện xử lý ngoại lệ cho cả các truy cập vào nguồn và đích.

Cũng cần lưu ý rằng mặc dù nó hoạt động với các đích không căn chỉnh (unaligned), bất kỳ phần nào không căn chỉnh (dù ở đầu hay cuối) sẽ không sử dụng các phép ghi không tạm thời, vì chỉ các từ (words) và từ kép (quadwords) mới có thể là không tạm thời trên kiến trúc x86.

Việc xử lý ngoại lệ có nghĩa là nó _có thể_ được sử dụng cho các truy cập không gian người dùng (user space), nhưng không thể sử dụng độc lập - nó cần tất cả logic "bắt đầu truy cập không gian người dùng" thông thường bao quanh nó.

Tuy nhiên, thông thường, truy cập không gian người dùng sẽ là nguồn, chứ không phải là đích không tạm thời. Đó là ý định ban đầu của hàm này, trong đó đích là một mục tiêu bộ nhớ bền vững mong manh, cần các phép ghi không tạm thời để bắt các ngoại lệ kiểm tra máy (machine check exceptions) một cách đồng bộ và xử lý chúng một cách thanh thản.

Do đó, cái tên không mô tả đúng: một trường hợp sử dụng là sao chép từ không gian người dùng vào bộ đệm kernel không bộ nhớ đệm. Tuy nhiên, những người dùng hiện tại là sự kết hợp giữa trường hợp sử dụng dự định đó và một vài trình điều khiển ngẫu nhiên chỉ thực hiện điều này như một cách tinh chỉnh hiệu suất.

Một số trình điều khiển ngẫu nhiên đó sau đó đã lạm dụng phiên bản sao chép người dùng (với STAC/CLAC và tất cả) để thực hiện các bản sao kernel mà thậm chí không hề quan tâm đến việc xử lý ngoại lệ, _chỉ_ vì đích không tạm thời.

Đổi tên nó như một bước nhỏ đầu tiên để thực sự làm cho nó hợp lý hơn một nửa, và thay đổi nguyên mẫu (prototype) để trở nên bình thường hơn: nó không nhận con trỏ người dùng trừ khi người gọi đã thực hiện chuyển đổi thích hợp, và kích thước đối số là kiểu size_t đầy đủ (nó vẫn sẽ không thực sự sao chép nhiều hơn 4GB trong một lần, nhưng cũng không có lý do gì để âm thầm cắt ngắn đối số kích thước trong người gọi).

Cuối cùng, sử dụng hàm nay đã được đặt tên hợp lý này trong mã NTB, vốn đã lạm dụng phiên bản sao chép người dùng (với STAC/CLAC và tất cả) của giao diện này mặc dù nó thực sự không phải là một bản sao người dùng.

Once again VulDB remains the best source for vulnerability data.

chịu trách nhiệm

Linux

Đặt trước

01/05/2026

Tiết lộ

05/05/2026

Kiểm duyệt

được chấp nhận

EPSS

0.00013

KEV

không

Các hoạt động

rất thấp

Nguồn

Want to know what is going to be exploited?

We predict KEV entries!