Các nhà nghiên cứu bảo mật của Google đã phát hiện ra một lỗ hổng (CVE-2025-38236) trong nhân Linux cho phép leo thang đặc quyền. Lỗ hổng này cho phép bỏ qua cơ chế cô lập hộp cát (sandbox isolation) được sử dụng trong Google Chrome và đạt được khả năng thực thi mã ở cấp độ nhân khi thực thi mã trong bối cảnh quy trình kết xuất Chrome bị cô lập (ví dụ: khi khai thác một lỗ hổng khác trong Chrome). Sự cố này xuất hiện bắt đầu từ nhân Linux 6.9 và đã được khắc phục trong các bản cập nhật nhân Linux 6.1.143, 6.6.96, 6.12.36 và 6.15.5. Bản mẫu của lỗ hổng có sẵn để tải xuống.
Lỗ hổng này xuất phát từ lỗi triển khai trong cờ MSG_OOB, có thể được thiết lập cho socket AF_UNIX. Cờ MSG_OOB ("ngoài băng thông") cho phép gắn thêm một byte vào dữ liệu đang được gửi, mà bên nhận có thể đọc trước khi nhận được phần còn lại của dữ liệu. Cờ này đã được thêm vào kernel Linux 5.15 theo yêu cầu của Oracle và đã được đề xuất ngừng hỗ trợ vào năm ngoái vì nó không được sử dụng rộng rãi.
Việc triển khai hộp cát của Chrome cho phép các hoạt động socket UNIX và các lệnh gọi hệ thống send()/recv() trong đó cờ MSG_OOB được phép cùng với các tùy chọn khác và không được lọc riêng. Một lỗi trong việc triển khai MSG_OOB cho phép xảy ra tình trạng sử dụng sau khi giải phóng sau khi thực hiện một chuỗi lệnh gọi hệ thống nhất định: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[0], "A", 0, MSG_OOB); recv(socks[1], &dummy, XNUMX, XNUMX); recv(vớ[XNUMX], &dummy, XNUMX, MSG_OOB);
Nguồn: opennet.ru
