Tràn số nguyên trong IOBuf dẫn đến ghi vượt heap trong Facebook folly và HHVM

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

Lỗ hổng CVE-2021-24036 là gì?

Lỗ hổng CVE-2021-24036 là lỗ hổng Heap-based Buffer Overflow ảnh hưởng tới folly (phiên bản bị ảnh hưởng: < v2021.07.22.00) và HHVM (phiên bản bị ảnh hưởng: 4.118.0, 4.117.0 và các phiên bản bị ảnh hưởng khác). Lỗ hổng này được xếp hạng ở mức Nghiêm trọng, với điểm CVSS 9.8. Hiện chưa đủ dữ liệu để xác định lỗ hổng này đã bị khai thác hay chưa.

Giới thiệu chung

Dữ liệu gốc

Việc truyền một kích thước do attacker kiểm soát khi tạo IOBuf có thể gây tràn số nguyên, dẫn đến ghi vượt giới hạn trên heap và có khả năng thực thi mã từ xa. Vấn đề này ảnh hưởng đến các phiên bản folly trước v2021.07.22.00. Vấn đề này ảnh hưởng đến các phiên bản HHVM trước 4.80.5, tất cả các phiên bản từ 4.81.0 đến 4.102.1, tất cả các phiên bản từ 4.103.0 đến 4.113.0, và các phiên bản 4.114.0, 4.115.0, 4.116.0, 4.117.0 và 4.118.1.

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

  • Facebook folly: Các phiên bản trước v2021.07.22.00 bị ảnh hưởng. Bản sửa được xác định là v2021.07.22.00.
  • Facebook HHVM: Các phiên bản trước 4.80.5 bị ảnh hưởng; nhánh này được sửa ở 4.80.5.
  • Facebook HHVM: Tất cả phiên bản từ 4.81.0 đến 4.102.1 bị ảnh hưởng; bản sửa của nhánh này là 4.102.2.
  • Facebook HHVM: Tất cả phiên bản từ 4.103.0 đến 4.113.0 bị ảnh hưởng; bản sửa của nhánh này là 4.113.1.
  • Facebook HHVM: 4.114.0, 4.115.0, 4.116.0 và 4.117.0 bị ảnh hưởng; các bản sửa tương ứng là 4.114.1, 4.115.1, 4.116.1 và 4.117.1.
  • Facebook HHVM: 4.118.0 và 4.118.1 bị ảnh hưởng; bản sửa của nhánh này là 4.118.2.

Tình trạng của các nhánh HHVM không được liệt kê không được xác định từ hồ sơ này.

Chi tiết kỹ thuật

Lỗ hổng nằm trong quá trình xử lý kích thước khi tạo đối tượng IOBuf, trong đó giá trị kích thước do attacker kiểm soát có thể gây tràn số nguyên. Phép tính kích thước sai có thể dẫn đến ghi dữ liệu ra ngoài vùng heap dự kiến, phù hợp với CWE-122. Giá trị đầu vào do attacker kiểm soát là kích thước được truyền vào đường dẫn tạo IOBuf. Đặc tính tấn công đã chuẩn hóa cho thấy lỗ hổng có thể bị tiếp cận qua mạng, không yêu cầu xác thực hoặc tương tác người dùng và có độ phức tạp thấp, nhưng bằng chứng hiện có không xác định giao thức, endpoint hoặc hàm gọi cụ thể. Trong HHVM, mã dễ bị lỗi nằm ở lớp IOBuf của Folly; đường dẫn request cụ thể cung cấp giá trị kích thước vẫn chưa được xác định.

Khả năng khai thác

  • Khả năng tiếp cận: Có thể tấn công qua mạng khi attacker có thể khiến hệ thống tạo IOBuf bằng kích thước do họ kiểm soát.
  • Xác thực và tương tác: Đặc tính tấn công đã chuẩn hóa không yêu cầu xác thực hoặc tương tác của người dùng.
  • Độ phức tạp: Được đánh giá là thấp, nhưng điều kiện cụ thể để đi đến đường dẫn tạo IOBuf phụ thuộc vào cách ứng dụng sử dụng Folly hoặc HHVM.
  • Trạng thái khai thác: Bằng chứng được cung cấp không xác lập việc khai thác trong thực tế, exploit công khai hoặc chiến dịch ransomware. Đây là giới hạn của bằng chứng hiện có, không phải khẳng định rằng các hoạt động đó không tồn tại.

Tác động kỹ thuật

Ghi vượt giới hạn trên heap có thể làm hỏng dữ liệu quản lý bộ nhớ, khiến tiến trình crash hoặc làm thay đổi dữ liệu trong vùng nhớ của dịch vụ. Hồ sơ xác định khả năng thực thi mã từ xa; nếu đạt được, attacker có thể thực thi mã với quyền của tiến trình HHVM hoặc ứng dụng sử dụng Folly. Tác động kỹ thuật có thể bao gồm mất tính bí mật, tính toàn vẹn và tính sẵn sàng trong phạm vi quyền của tiến trình bị xâm phạm. Mức độ tác động thực tế phụ thuộc vào việc attacker có thể đưa dữ liệu vào đường dẫn tạo IOBuf hay không và có thể kiểm soát memory corruption đến mức nào; bằng chứng hiện có không cung cấp exploit steps đáng tin cậy.

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

  • Dịch vụ HHVM hoặc ứng dụng tích hợp Folly có thể bị crash, làm gián đoạn xử lý request hoặc gây mất khả dụng của dịch vụ.
  • Nếu memory corruption được khai thác thành công, attacker có thể thực thi mã với quyền của tiến trình HHVM hoặc dịch vụ sử dụng thư viện.
  • Việc thực thi mã đó có thể dẫn đến truy cập trái phép vào dữ liệu, thay đổi dữ liệu hoặc ảnh hưởng đến hệ thống mà tiến trình có quyền truy cập.
  • Không có bằng chứng trong hồ sơ cho thấy một tổ chức cụ thể đã bị xâm phạm; tác động thực tế phụ thuộc vào việc triển khai có expose đường dẫn tạo IOBuf cho dữ liệu từ mạng hay không.

Cách khắc phục

  1. Nâng cấp Folly lên v2021.07.22.00 hoặc bản sửa khác được vendor xác nhận, đồng thời rebuild và triển khai lại mọi ứng dụng vendored hoặc bundled Folly.
  2. Với HHVM, nâng cấp theo đúng nhánh được hỗ trợ: 4.80.5 cho các bản trước 4.80.5; 4.102.2 cho nhánh từ 4.81.0 đến 4.102.1; 4.113.1 cho nhánh từ 4.103.0 đến 4.113.0; 4.114.1, 4.115.1, 4.116.1, 4.117.1 và 4.118.2 tương ứng cho các nhánh bị ảnh hưởng.
  3. Đối với Debian 10 Buster và Ubuntu 18.04 Bionic, advisory của HHVM cũng nêu 4.80.6 và 4.102.3 là các bản phát hành có bản cập nhật bảo mật cùng các thay đổi tương thích hệ thống build.
  4. Xác minh artifact sau nâng cấp để bảo đảm tiến trình đang chạy thực sự sử dụng bản Folly hoặc HHVM đã sửa, không phải thư viện cũ còn nằm trong image, bundle hoặc cache build.
  5. Bằng chứng được cung cấp không ghi nhận workaround chính thức. Các biện pháp hạn chế tạm thời đối với request không đáng tin cậy có thể giảm phơi nhiễm, nhưng không được xem là bản sửa đã được vendor xác nhận.

Cách phát hiện

  1. Kiểm kê các máy chủ chạy HHVM và mọi bản sao Folly được vendored, bundled hoặc biên dịch tĩnh vào ứng dụng.
  2. Đối chiếu phiên bản runtime, package metadata, manifest và build artifact để xác định nhánh phát hành thực tế đang được triển khai.
  3. Rà soát các đường dẫn xử lý request từ mạng có thể truyền kích thước do người dùng kiểm soát vào quá trình tạo IOBuf; bằng chứng hiện có không nêu endpoint cụ thể.
  4. Kiểm tra log khởi động lại tiến trình, crash dump và chẩn đoán memory-corruption sau các request bất thường như một biện pháp cảnh báo bổ sung. Không có IOC hoặc mẫu log cụ thể nào được xác lập, và việc không có log như vậy không chứng minh hệ thống an toàn.
Nguồn (11)
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.