Họ đã phát hiện ra một lỗ hổng trong ksmbd trong Linux Kernel

dễ bị tổn thương

Nếu bị khai thác, những lỗ hổng này có thể cho phép kẻ tấn công truy cập trái phép vào thông tin nhạy cảm hoặc thường gây ra sự cố

Thông tin được công bố gần đây rằng một lỗ hổng nhân Linux đã được phát hiện với điểm CVSS là 10 trên máy chủ SMB, cung cấp cho người dùng chưa được xác thực khả năng thực thi mã từ xa.

Lỗi được tìm thấy cho phép kẻ tấn công từ xa thực thi mã tùy ý trên các cài đặt bị ảnh hưởng. Xác thực không bắt buộc để khai thác lỗ hổng này nhưng chỉ những hệ thống có bật ksmbd mới dễ bị tấn công.

Lỗ hổng cụ thể tồn tại trong quá trình xử lý các lệnh SMB2_TREE_DISCONNECT. Sự cố xảy ra do không xác thực rằng một đối tượng tồn tại trước khi thực hiện các thao tác trên đối tượng đó. Kẻ tấn công có thể khai thác lỗ hổng này để thực thi mã trong ngữ cảnh của kernel.

CHI TIẾT TỔN THƯƠNG
Lỗ hổng này cho phép kẻ tấn công từ xa thực thi mã tùy ý trên các bản cài đặt Nhân Linux bị ảnh hưởng. Xác thực không bắt buộc để khai thác lỗ hổng này nhưng chỉ những hệ thống có bật ksmbd mới dễ bị tấn công.

Lỗ hổng cụ thể tồn tại trong quá trình xử lý các lệnh SMB2_TREE_DISCONNECT. Vấn đề là do thiếu xác nhận sự tồn tại của một đối tượng trước khi thực hiện các thao tác trên đối tượng. Kẻ tấn công có thể khai thác lỗ hổng này để thực thi mã trong ngữ cảnh của kernel.

Người ta đề cập rằng tùy thuộc vào loại yêu cầu SMB, mỗi luồng mới có thể quyết định chuyển lệnh tới không gian người dùng (ksmbd.mountd); hiện tại, các lệnh DCE/RPC được xác định là do không gian người dùng xử lý. Để sử dụng tốt hơn nhân Linux, người ta đã quyết định coi các lệnh là mục công việc và thực thi chúng trong trình xử lý luồng ksmbd -io kworker.

Điều này cho phép các trình quản lý ghép kênh vì hạt nhân đảm nhiệm việc bắt đầu các luồng công nhân bổ sung nếu tải tăng và ngược lại, nếu tải giảm, nó sẽ giết các luồng công nhân bổ sung.

Khi daemon máy chủ khởi động, nó sẽ bắt đầu một luồng rẽ nhánh (ksmbd/tên giao diện) khi khởi động và mở một cổng chuyên dụng 445 để lắng nghe các yêu cầu SMB. Mỗi khi khách hàng mới đưa ra yêu cầu, luồng rẽ nhánh sẽ chấp nhận kết nối của khách hàng và tạo một luồng mới cho kênh liên lạc chuyên dụng giữa máy khách và máy chủ. Điều này cho phép các yêu cầu (lệnh) SMB từ máy khách được xử lý song song và cho phép máy khách mới thiết lập kết nối mới.

ksmbd đã treo cờ đỏ giữa một số người dùng người đã thảo luận về việc sáp nhập của họ vào năm ngoái. SerNet, một công ty máy tính của Đức cung cấp phiên bản Samba của riêng mình, cho biết trong một bài đăng trên blog rằng ksmbd thật tuyệt vời, nhưng có vẻ hơi non nớt. Ngoài ra, nhóm Samba+ của SerNet đã tuyên bố trong một bài đăng trên blog rằng giá trị của việc thêm máy chủ SMB vào không gian nhân có thể không đáng để mạo hiểm "vắt kiệt hiệu suất cuối cùng ra khỏi nội dung có sẵn."

May mắn thay, nếu bạn không chạy mô-đun ksmbd "thử nghiệm" của Samsung, như mô tả của nhà nghiên cứu bảo mật Shir Tamari trên Twitter, và đã giữ Samba, thì bạn hoàn toàn an toàn. “ksmbd là mới; hầu hết người dùng vẫn sử dụng Samba và không bị ảnh hưởng. Về cơ bản, nếu bạn không chạy các máy chủ SMB với ksmbd, hãy tận hưởng ngày cuối tuần của bạn," Tamari đã tweet.

Theo Sáng kiến ​​Zero-Day, đã tiết lộ lỗ hổng ksmbd, lỗ hổng sử dụng sau khi miễn phí tồn tại trong quá trình xử lý các lệnh SMB2_TREE_DISCONNECT. Theo ZDI, vấn đề là do ksmbd không xác thực sự tồn tại của các đối tượng trước khi thực hiện các thao tác trên chúng.

Đối với những người sử dụng ksmbd, có một giải pháp thay thế ngoài việc chuyển sang Samba: nâng cấp lên nhân Linux phiên bản 5.15.61, được phát hành vào tháng 2 hoặc mới hơn. Bản cập nhật kernel này cũng khắc phục một số vấn đề khác trong ksmbd: lỗi đọc vượt quá giới hạn cho SMB2_TREE_CONNECT, theo ghi chú bản vá có thể cho phép các yêu cầu không hợp lệ không gửi được tin nhắn và rò rỉ bộ nhớ trong smbXNUMX_handle_negotiate gây ra lỗi miễn phí. kỉ niệm.

cuối cùng nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết Trong liên kết sau đây.