Lỗ hổng CVE-1999-1471 trong lệnh passwd trên BSD 4.3 và cũ hơn cho phép người dùng nội bộ khai thác tràn bộ đệm để leo thang quyền root.
Đội ngũ chuyên gia bảo mật của Bitech phát hành cảnh báo về lỗ hổng bảo mật nghiêm trọng liên quan đến tiện ích passwd trên các hệ điều hành dựa trên nền tảng BSD phiên bản 4.3 trở về trước. Lỗ hổng này được theo dõi dưới mã hiệu CVE-1999-1471, cho phép kẻ tấn công cục bộ chiếm toàn quyền kiểm soát hệ thống.
Tổng quan về lỗ hổng CVE-1999-1471
CVE-1999-1471 là một lỗ hổng tràn bộ đệm (Buffer Overflow) tồn tại trong công cụ quản lý mật khẩu passwd trên các hệ thống BSD cổ điển. Do việc xử lý bộ nhớ không an toàn, khi người dùng truyền một chuỗi ký tự quá dài vào trường vỏ lệnh (shell) hoặc trường thông tin cá nhân GECOS, chương trình sẽ không kiểm soát được độ dài dữ liệu và gây ra hiện tượng tràn bộ đệm trên bộ nhớ đệm (stack).
Chi tiết kỹ thuật và cơ chế khai thác
Trong các hệ điều hành Unix/BSD, tiện ích passwd chạy với đặc quyền của người dùng tối cao (SUID root) nhằm cho phép người dùng thông thường có thể tự cập nhật thông tin tài khoản của mình vào các tệp hệ thống như /etc/passwd hoặc /etc/master.passwd.
Kẻ tấn công có tài khoản người dùng thông thường trên máy chủ có thể cố tình nhập một chuỗi ký tự cực dài vào trường GECOS (chứa thông tin như tên đầy đủ, số điện thoại, văn phòng) hoặc đường dẫn shell tùy chỉnh. Việc thiếu cơ chế kiểm tra giới hạn đầu vào khiến dữ liệu bị tràn, ghi đè lên địa chỉ trả về (return address) của hàm trong bộ nhớ. Qua đó, kẻ tấn công có thể thực thi mã máy tùy chỉnh dưới ngữ cảnh quyền hạn root.
Mức độ nghiêm trọng và đối tượng bị ảnh hưởng
- Mức độ nghiêm trọng: Cao (High). Mặc dù yêu cầu quyền truy cập cục bộ (local user), tác động của lỗ hổng là tối đa vì nó cho phép leo thang đặc quyền hoàn toàn từ người dùng thường lên root.
- Đối tượng bị ảnh hưởng: Các hệ điều hành dựa trên BSD phiên bản 4.3 và các phiên bản cũ hơn (bao gồm cả các bản phân phối Unix di sản sử dụng codebase này).
Tác động bảo mật
Nếu lỗ hổng CVE-1999-1471 bị khai thác thành công, kẻ tấn công sẽ có thể:
- Bỏ qua mọi cơ chế phân quyền và kiểm soát truy cập của hệ thống.
- Đọc, chỉnh sửa, hoặc xóa toàn bộ tệp tin và dữ liệu nhạy cảm trên máy chủ.
- Cài đặt phần mềm độc hại, backdoor hoặc tạo các tài khoản quản trị ẩn để duy trì quyền truy cập lâu dài.
Khuyến nghị khắc phục
Để đảm bảo an toàn cho các hệ thống máy chủ, Bitech khuyến nghị quản trị viên thực hiện các giải pháp sau:
- Nâng cấp hệ điều hành: Chuyển đổi và nâng cấp lên các phiên bản hệ điều hành BSD hiện đại hơn (như FreeBSD, NetBSD, OpenBSD phiên bản mới) - nơi các tiện ích hệ thống như
passwdđã được gia cố an toàn và tích hợp các công nghệ bảo vệ bộ nhớ tiên tiến (ASLR, Stack Canaries). - Vá mã nguồn (đối với hệ thống di sản): Nếu bắt buộc phải duy trì các hệ thống cũ, quản trị viên cần chỉnh sửa mã nguồn của
passwd, thay thế các hàm xử lý chuỗi không an toàn (nhưstrcpy) bằng các hàm kiểm tra độ dài an toàn (nhưstrncpyhoặcstrlcpy), sau đó biên dịch lại tiện ích. - Thắt chặt quyền truy cập: Giới hạn quyền đăng nhập SSH hoặc truy cập dòng lệnh đối với những người dùng không đáng tin cậy trên các hệ thống di sản chưa được vá lỗi.