Phát hiện XNUMX lỗ hổng trong Buildroot cho phép thực thi mã từ xa

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ố

Gần đây Cisco Talos (bộ phận nghiên cứu và phát triển an ninh mạng của Cisco Systems) làm cho nó được biết đến, thông qua một bài đăng trên blog, thông tin về việc phát hiện ra một số lỗ hổng trong hệ thống xây dựng Buildroot.

Cisco Talos Tôi đề cập đến việc phát hiện ra sáu lỗ hổng trong Buildroot cho phép, trong quá trình chặn lưu lượng chuyển tuyến (MITM), thực hiện các thay đổi đối với hình ảnh hệ thống được tạo hoặc sắp xếp việc thực thi mã trong hệ thống xây dựng.

Năm lỗ hổng đầu tiên được liệt kê dưới TALOS-2023-1844 (CVE-2023-45841, CVE-2023-45842, CVE-2023-45838, CVE-2023-45839, CVE-2023-45840) ảnh hưởng đến mã để xác minh tính toàn vẹn của các gói bằng cách sử dụng hàm băm.

Các vấn đề Họ tập trung vào khả năng sử dụng HTTP để tải xuống tệp và thiếu hàm băm xác minh tệp đối với một số gói, cho phép thay thế nội dung của các gói này, có cơ hội can thiệp vào lưu lượng của máy chủ xây dựng (ví dụ: khi người dùng kết nối qua mạng không dây do kẻ tấn công kiểm soát).

Vì các gói có thể bao gồm các tệp vá hoặc Makefiles, bằng cách cung cấp gói nguồn bị xâm phạm, kẻ tấn công có thể thực thi các lệnh tùy ý trong trình biên dịch. Hậu quả trực tiếp là kẻ tấn công cũng có thể thay đổi bất kỳ tệp nào được tạo cho mục tiêu và máy chủ Buildroot.

Đặc biệt, các gói aufs và aufs-util được tải qua HTTP và không được so sánh với các gói băm. Ngoài ra, còn thiếu hàm băm cho các gói riscv64-elf-toolchain, Versal-firmware và mxsldr, được tải qua HTTPS theo mặc định, nhưng quay lại tải xuống không được mã hóa trong trường hợp có sự cố. Nếu không có tệp ".hash", công cụ Buildroot coi việc xác minh thành công và xử lý các gói đã tải xuống, bao gồm áp dụng mọi bản vá có trong gói và chạy tập lệnh xây dựng.

Bằng khả năng giả mạo các gói đã tải xuống, kẻ tấn công có thể thêm các bản vá hoặc Makefile của riêng mình vào chúng, cho phép thực hiện các thay đổi đối với hình ảnh kết quả hoặc tạo tập lệnh hệ thống và thực thi mã của chúng.

Về phía lỗ hổng thứ sáu được phân loại theo TALOS-2023-1845 (CVE-2023-43608) là do lỗi trong quá trình thực hiện chức năng BR_NO_CHECK_HASH_FOR, cho phép bạn vô hiệu hóa việc kiểm tra tính toàn vẹn băm cho các gói được chọn.

Nó được đề cập rằng cho:

Mỗi dòng băm trong tệp .hash được gọi là check_one_hash. Nếu hàm băm không khớp, check_one_hash sẽ thoát với mã lỗi. Ngược lại, nb_checks sẽ tăng lên để biểu thị việc kiểm tra thành công. Nếu không có mục nào trong tệp .hash để kiểm tra tệp đầu vào được chỉ định, việc kiểm tra trong điều kiện IF sẽ trả về lỗi trừ khi BR_NO_CHECK_HASH_FOR[9] chứa tệp cụ thể này, có nghĩa là tệp bị loại khỏi quá trình kiểm tra hàm băm.

Tổng cộng, Có 3 cách để check-hash trả về giá trị 0:

  1. .hash không có tập tin nào tồn tại cho gói
  2. $file hash khớp với định nghĩa của tệp .hash
  3. $file không có trong tệp .hash và BR_NO_CHECK_HASH_FOR chứa tên cơ sở của gói (bỏ qua kiểm tra một cách rõ ràng)

Đối với khái niệm trình diễn lỗ hổng, The các nhà phát triển tập trung vào tùy chọn 3, vì điều này dường như thường được sử dụng để bỏ qua việc kiểm tra tính toàn vẹn đối với các tài nguyên không thể băm dễ dàng (ví dụ: tài nguyên phát triển thay đổi thường xuyên). Nó cũng được sử dụng khi tạo các phiên bản cụ thể của một gói mà hàm băm có thể không có sẵn trong nguồn Buildroot.

Một số gói, chẳng hạn như nhân Linux, U-Boot và Versal-firmware, cho phép tải các phiên bản mới nhất mà hàm băm xác minh chưa được tạo. Đối với các phiên bản này, tùy chọn BR_NO_CHECK_HASH_FOR đã được sử dụng để tắt xác minh hàm băm.

Dữ liệu được tải xuống qua HTTPS, nhưng theo mặc định, nếu tải xuống không thành công, một giải pháp thay thế sẽ được sử dụng để truy cập trang web mà không cần mã hóa bằng giao thức http://. Trong cuộc tấn công MITM, kẻ tấn công có thể chặn kết nối đến máy chủ HTTPS và sau đó quá trình tải xuống bị khôi phục.

Cuối cùng, cần đề cập rằng các lỗ hổng được giải quyết trong các phiên bản Buildroot mới nhất và nếu bạn quan tâm có thể biết thêm về nó, bạn có thể tham khảo chi tiết Trong liên kết sau.


Để 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: Miguel Ángel Gatón
  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.