Đọc vượt giới hạn trong UVC driver của Android kernel có thể làm lộ thông tin cục bộ

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Giới thiệu chung

Dữ liệu gốc

Trong hàm uvc_parse_standard_control của tệp uvc_driver.c, có khả năng xảy ra việc đọc vượt ngoài giới hạn do kiểm tra đầu vào không đúng. Điều này có thể dẫn đến việc tiết lộ thông tin cục bộ mà không cần thêm quyền thực thi. Không cần tương tác của người dùng để khai thác. Sản phẩm: Android. Phiên bản: Android kernel. Android ID: A-111760968.

Sản phẩm và phạm vi ảnh hưởng

  • Android kernel: Được bản ghi đánh dấu là affected. Thành phần liên quan là UVC driver, nhưng bản ghi không nêu các Android release branch hoặc kernel branch cụ thể.
  • Android security patch level: Android bulletin đưa vấn đề này vào nhóm lỗ hổng của security patch level 2019-06-05. Bulletin nêu rằng security patch levels 2019-06-05 hoặc cao hơn xử lý các vấn đề thuộc nhóm đó.
  • Thiết bị và OEM: Android bulletin đánh dấu Android bug ID bằng dấu *, cho biết vấn đề không được công khai trong phần bug detail tương ứng. Bulletin nói rằng bản cập nhật thường nằm trong binary drivers mới nhất dành cho Pixel, nhưng điều này không xác nhận phạm vi hỗ trợ cho các thiết bị không phải Pixel.
  • Không có bằng chứng đủ để lập một danh sách đầy đủ các model, kernel branch hoặc bản build Android bị ảnh hưởng.

Chi tiết kỹ thuật

Thành phần bị ảnh hưởng là UVC driver, cụ thể là hàm uvc_parse_standard_control trong tệp uvc_driver.c. Bản ghi xác định nguyên nhân là kiểm tra dữ liệu đầu vào không đúng khi parser xử lý dữ liệu điều khiển UVC. Dữ liệu điều khiển không hợp lệ có thể khiến parser đọc vượt ra ngoài ranh giới bộ đệm dự kiến, dẫn đến out-of-bounds read. Kết quả kỹ thuật được xác nhận là khả năng đọc và làm lộ dữ liệu trong kernel memory, không phải sửa đổi dữ liệu hoặc thực thi mã. Bằng chứng hiện có không xác định cấu trúc dữ liệu bất thường cụ thể, endpoint hoặc ioctl liên quan, số byte có thể bị đọc, hay mọi nhánh kernel Android bị ảnh hưởng.

Khả năng khai thác

  • Khả năng tiếp cận: Khai thác được thực hiện cục bộ trên thiết bị, không phải qua mạng.
  • Quyền cần có: Cần quyền cục bộ ở mức thấp theo đặc tính tấn công trong bản ghi; không cần thêm execution privileges.
  • Tương tác người dùng: Không cần người dùng tương tác.
  • Độ phức tạp: Đặc tính tấn công được cung cấp mô tả độ phức tạp thấp.
  • Tình trạng khai thác: Bản ghi không xác nhận public exploit hoặc việc khai thác đang diễn ra. Android bulletin cho biết tại thời điểm phát hành bulletin chưa có báo cáo về active customer exploitation hoặc abuse đối với các vấn đề mới được công bố; nhận định này chỉ có phạm vi thời gian đó và không chứng minh rằng việc khai thác không thể xảy ra về sau.

Tác động kỹ thuật

Lỗi này có thể cho phép một ứng dụng cục bộ đọc dữ liệu ngoài vùng bộ đệm dự kiến trong quá trình xử lý UVC control data. Hậu quả kỹ thuật là information disclosure từ kernel memory, có thể làm suy yếu ranh giới cô lập dữ liệu giữa các ứng dụng. Bản ghi không cho thấy lỗ hổng trực tiếp cung cấp integrity impact, availability impact hoặc code execution. Khai thác yêu cầu khả năng chạy mã cục bộ với quyền thấp nhưng không cần user interaction và không cần thêm execution privileges. Phạm vi dữ liệu bị lộ và khả năng chuyển từ information disclosure sang tác động khác vẫn chưa được bằng chứng hiện có xác định.

Tác động đến tổ chức

Một thiết bị bị ảnh hưởng có thể làm lộ dữ liệu nhạy cảm trong kernel memory cho một ứng dụng cục bộ. Android bulletin mô tả hậu quả ở mức phá vỡ các cơ chế bảo vệ hệ điều hành dùng để cô lập dữ liệu ứng dụng giữa các ứng dụng khác nhau. Bằng chứng hiện có xác nhận tác động information disclosure, nhưng không xác nhận thay đổi dữ liệu, thực thi mã hoặc gián đoạn dịch vụ. Mức phơi nhiễm thực tế phụ thuộc vào kernel được nhà sản xuất đưa vào thiết bị và việc bản cập nhật tương ứng đã được tích hợp hay chưa.

Cách khắc phục

  1. Cập nhật thiết bị Android lên bản cập nhật OEM có security patch level 2019-06-05 hoặc cao hơn. Đây là biện pháp được Android bulletin xác nhận để xử lý các vấn đề thuộc security patch level đó.
  2. Sau khi cập nhật, kiểm tra thuộc tính ro.build.version.security_patch và đối chiếu với mức patch mà OEM xác nhận đã bao gồm bản sửa cho UVC driver.
  3. Với thiết bị Pixel, kiểm tra và cài đặt binary driver hoặc firmware update tương ứng nếu OEM phân phối bản sửa theo kênh này.
  4. Nếu thiết bị không có bản cập nhật hoặc OEM không xác nhận trạng thái sửa lỗi, hãy coi kernel là có khả năng bị ảnh hưởng và ưu tiên thay thế, cô lập hoặc nâng cấp thiết bị theo chính sách quản lý endpoint. Bằng chứng hiện có không xác định một workaround cấu hình độc lập.
  5. Không có exact fixed Android kernel release nào được cung cấp trong bản ghi. Không nên suy ra trạng thái của các nhánh Android song song chỉ từ việc một patch level đã được công bố.

Cách phát hiện

  • Lập danh sách các thiết bị Android đang sử dụng và xác định kernel build, đặc biệt là những build có tích hợp UVC driver.
  • Kiểm tra giá trị của thuộc tính ro.build.version.security_patch trên thiết bị và đối chiếu với bản cập nhật bảo mật do OEM cung cấp.
  • Trên thiết bị Pixel, kiểm tra trạng thái cập nhật binary driver hoặc firmware do nhà cung cấp phát hành, vì Android bulletin cho biết bản cập nhật cho vấn đề được đánh dấu riêng có thể nằm trong các binary driver mới nhất.
  • Xem xét log hoặc telemetry cho các lỗi kernel bất thường xảy ra khi xử lý thiết bị UVC, nhưng coi đây chỉ là biện pháp theo dõi phòng ngừa, không phải IOC đã được xác nhận.
  • Không có log event, IOC hoặc mẫu dữ liệu cụ thể nào được cung cấp. Việc không thấy dấu hiệu trong log không chứng minh thiết bị an toàn.
Nguồn (22)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.