Họ đã phát hiện ra một lỗ hổng trong hệ thống con eBPF của Linux

Gần đây tin tức đã phá vỡ rằng một lỗ hổng đã được xác định (CVE-2021-29154) trong hệ thống con eBPF, mà pCho phép chạy theo dõi, phân tích hệ thống con và bộ điều khiển kiểm soát lưu lượng chạy bên trong nhân Linux trong một máy ảo JIT đặc biệt cho phép người dùng cục bộ chạy mã của bạn ở cấp nhân.

Theo các nhà nghiên cứu đã xác định được lỗ hổng này, họ có thể phát triển một nguyên mẫu khai thác cho các hệ thống x86 32 bit và 64 bit có thể được sử dụng bởi một người dùng không có đặc quyền.

Đồng thời Red Hat lưu ý rằng mức độ nghiêm trọng của vấn đề phụ thuộc vào tính khả dụng của lệnh gọi hệ thống eBPF. cho người dùng. Ví dụ: trên RHEL và hầu hết các bản phân phối Linux khác theo mặc định, lỗ hổng bảo mật có thể bị khai thác khi BPF JIT được kích hoạt và người dùng có quyền CAP_SYS_ADMIN.

Một vấn đề đã được phát hiện trong nhân Linux mà chúng có thể lạm dụng
người dùng cục bộ không có đặc quyền để nâng cao đặc quyền.

Vấn đề là cách các trình biên dịch BPF JIT tính toán cho một số kiến ​​trúc
Các hiệu số rẽ nhánh khi tạo mã máy. Điều này có thể bị lạm dụng
để tạo mã máy bất thường và chạy nó ở chế độ hạt nhân,
trong đó luồng điều khiển bị xâm nhập để thực thi mã không an toàn.

Và chính là họ trình bày chi tiết rằng vấn đề là do lỗi được tạo ra khi tính toán độ lệch của hướng dẫn phân nhánh trong trình biên dịch JIT tạo mã máy.

Đặc biệt có đề cập đến việc khi tạo ra các lệnh rẽ nhánh không tính đến việc chuyển vị có thể thay đổi sau khi qua giai đoạn tối ưu hóa, do đó lỗi này có thể được sử dụng để tạo ra mã máy dị thường và thực thi nó ở cấp độ nhân. .

Cần lưu ý rằng Đây không phải là lỗ hổng duy nhất trong hệ thống con eBPF đã được biết đến trong những năm gần đây, kể từ cuối tháng XNUMX, hai lỗ hổng khác đã được xác định trong nhân (CVE-2020-27170, CVE-2020-27171), cung cấp khả năng sử dụng eBPF để bỏ qua bảo vệ chống lại các lỗ hổng lớp Spectre, cho phép xác định nội dung của bộ nhớ hạt nhân và dẫn đến việc tạo ra các điều kiện để thực thi một số hoạt động nhất định.

Cuộc tấn công Spectre yêu cầu sự hiện diện của một chuỗi lệnh cụ thể trong mã đặc quyền, dẫn đến việc thực thi các lệnh có tính chất suy đoán. Trong eBPF, một số cách đã được tìm thấy để tạo ra các lệnh như vậy thông qua các thao tác với các chương trình BPF được truyền để thực thi chúng.

  • Lỗ hổng CVE-2020-27170 gây ra bởi các thao tác con trỏ trong trình kiểm tra BPF, khiến các hoạt động đầu cơ truy cập vào một khu vực bên ngoài bộ đệm.
  • Lỗ hổng CVE-2020-27171 có liên quan đến lỗi dòng số nguyên khi làm việc với con trỏ, dẫn đến truy cập đầu cơ vào dữ liệu ngoài bộ đệm.

Các vấn đề này đã được khắc phục trong các phiên bản hạt nhân 5.11.8, 5.10.25, 5.4.107, 4.19.182 và 4.14.227 và đã được bao gồm trong các bản cập nhật hạt nhân cho hầu hết các bản phân phối Linux. Các nhà nghiên cứu đã chuẩn bị một nguyên mẫu khai thác cho phép người dùng không có đặc quyền truy xuất dữ liệu từ bộ nhớ nhân.

Đối với một trong những giải pháp mà được đề xuất trong Red Hat là:

Giảm nhẹ:

Sự cố này không ảnh hưởng đến hầu hết các hệ thống theo mặc định. Quản trị viên sẽ phải kích hoạt BPF JIT để bị ảnh hưởng.

Nó có thể bị vô hiệu hóa ngay lập tức bằng lệnh:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Hoặc nó có thể bị vô hiệu hóa cho tất cả các lần khởi động hệ thống tiếp theo bằng cách đặt giá trị trong /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

Cuối cùng nếu bạn muốn biết thêm về nó về lỗ hổng này, bạn có thể kiểm tra chi tiết trong liên kết sau.

Điều đáng nói là vấn đề vẫn tồn tại cho đến phiên bản 5.11.12 (bao gồm) và vẫn chưa được giải quyết trong hầu hết các bản phân phối, mặc dù bản sửa lỗi đã được thực hiện. có sẵn như một bản vá.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.