Tìm thấy 21 lỗ hổng Zero-Day nghiêm trọng trong phần mềm FFmpeg

Phần mềm12 tháng 6, 2026·5 phút đọc

Một tác nhân bảo mật tự động của Depthfirst đã phát hiện 21 lỗ hổng zero-day trong FFmpeg, bao gồm các lỗi cho phép thực thi mã từ xa (RCE). Nhiều lỗi này đã tồn tại tiềm ẩn trong suốt 15 đến 20 năm, bất chấp quá trình kiểm tra mã nguồn khắt khe trước đó. Quá trình này chứng minh khả năng của AI trong việc tìm kiếm lỗ hổng bảo mật với chi phí thấp hơn nhiều so với các phương pháp truyền thống.

Tìm thấy 21 lỗ hổng Zero-Day nghiêm trọng trong phần mềm FFmpeg

FFmpeg là một trong những phần mềm được triển khai rộng rãi nhất thế giới, âm thầm vận hành từ các trình duyệt web chúng ta dùng hàng ngày đến hạ tầng nền tảng của các dịch vụ phát trực tuyến lớn. Với tư cách là một thư viện thường xuyên xử lý các tệp phương tiện phức tạp và không đáng tin cậy, FFmpeg vốn dĩ luôn là mục tiêu quan trọng của các cuộc tấn công bảo mật, đặc biệt là các cuộc tấn công zero-click (không cần tương tác).

Gần đây, Depthfirst đã công bố kết quả nghiên cứu đáng báo động của mình: một tác nhân bảo mật tự động (autonomous security agent) đã phát hiện tổng cộng 21 lỗ hổng zero-day trong FFmpeg. Điều đáng nói là nhiều lỗi này đã tồn tại tiềm ẩn trong mã nguồn suốt 15 đến 20 năm, vượt qua nhiều đợt kiểm toán mã thủ công và fuzzing (kiểm thử tự động) trước đó.

Thách thức trong việc bảo mật FFmpeg

FFmpeg là một dự án khổng lồ với khoảng 1,5 triệu dòng code C được tối ưu hóa cao độ, dành cho việc phân tích cú pháp hàng trăm định dạng phương tiện phức tạp. Trước đây, đội ngũ Big Sleep của Google đã công bố 13 lỗ hổng, và Anthropic cũng sử dụng mô hình Mythos của mình để quét tìm các vấn đề bảo mật.

Tuy nhiên, việc tìm ra lỗi mới đang ngày càng khó khăn hơn. Depthfirst đã xây dựng một hệ thống tác nhân chuyên biệt có khả năng quét sâu trên các cơ sở mã lớn. Mục tiêu không chỉ là tái phát hiện những gì Big Sleep và Mythos đã tìm thấy, mà còn là tìm ra các lỗi nghiêm trọng mới mà các hệ thống khác đã bỏ sót.

Tác nhân bảo mật hoạt động khác biệt như thế nào?

Khác với các trợ lý lập trình (coding agent) thường chỉ viết code ứng dụng, tác nhân bảo mật của Depthfirst có mục tiêu hẹp hơn và nhắm đến các trường hợp ngoại lệ (edge cases). Quy trình hoạt động của nó bao gồm:

  • Mô hình hóa mối đe dọa: Hiểu kiến trúc, xác định các trình phân tích cú pháp (parser) và trình xử lý giao thức bị phơi bày.
  • Kiểm tra luồng dữ liệu: Theo dõi dữ liệu đầu vào do kẻ tấn công kiểm soát qua các thành phần liên quan thay vì xem kho mã nguồn một cách phẳng.
  • Xác thực thực tế: Tác nhân không chỉ đưa ra cảnh báo lý thuyết mà còn tạo ra các đầu vào kiểm chứng (PoC - Proof of Concept) cụ thể để tái tạo lỗi. Nó kiểm tra xem kẻ tấn công có thực sự kiểm soát đầu vào đúng cách hay không và xem đường dẫn lỗi có thể khai thác được hay không.

Các phát hiện chính: 21 Zero-Day và chi phí thấp

Tổng chi phí để tìm ra 21 lỗ hổng này chỉ khoảng 1.000 USD, chỉ bằng 10% so với mức chi tiêu mà Anthropic đã sử dụng cho mô hình Mythos. Tám trong số các vấn đề đã được cấp mã CVE chính thức, bao gồm:

  • CVE-2026-39214 (Stack Buffer Overflow): Một lỗi viết các mục dịch vụ mà không theo dõi không gian còn lại, tồn tại từ năm 2003 (lưu tiềm tàng 23 năm).
  • CVE-2026-39210 (Heap Buffer Overflow): Thiếu kiểm tra giới hạn độ dài trước khi đọc hai byte, được giới thiệu năm 2010.
  • CVE-2026-39212 (Stack Overflow): Một lỗi hồi quy gần đây cho phép tệp preset kích hoạt phân tích cú pháp đệ quy mà không có giới hạn độ sâu.

Ngoài ra, còn có 13 lỗ hổng khác đang được sửa chữa và chờ cấp mã CVE, bao gồm lỗi tràn bộ đệm heap trong bộ giải gói RTP AV1 (DFVULN-127) và lỗi tràn số nguyên trong bộ giải gói RTP LATM (DFVULN-123).

Phân tích sâu: Khai thác lỗi thực thi mã từ xa (RCE)

Một trong những phát hiện nguy hiểm nhất là lỗ hổng DFVULN-127 trong bộ giải gói RTP AV1 (rtpdec_av1.c). Đây là một lỗi tràn bộ đệm heap cho phép kẻ tấn công thực thi mã từ xa (RCE).

Cơ chế lỗi

Lỗi xảy ra khi hàm av1_handle_packet() xử lý một OBU (Open Bitstream Unit) Temporal Delimiter. Khi bỏ qua OBU này, con trỏ vị trí ghi (pktpos) được tăng lên bởi obu_size do kẻ tấn công khai báo, nhưng không có bộ nhớ nào được cấp phát tương ứng để hỗ trợ việc tăng này.

Hệ quả là con trỏ ghi bị "nhiễm độc". Vòng lặp tiếp theo sẽ ghi dữ liệu vào một vị trí bộ nhớ nằm xa vùng đã cấp phát. Kẻ tấn công có thể kiểm soát hoàn toàn nội dung được ghi tại vị trí này.

Tác động

Lỗi này cho phép ghi đè con trỏ hàm free trong cấu trúc AVBuffer nằm ngay sau vùng đệm dữ liệu. Khi gói tin được giải phóng, con trỏ hàm bị chỉnh sửa này sẽ được gọi, chuyển quyền điều khiển luồng thực thi (instruction pointer) sang tay kẻ tấn công.

Bất kỳ hệ thống nào sử dụng FFmpeg để lấy luồng RTSP từ nguồn không đáng tin cậy đều bị ảnh hưởng, bao gồm các đường ống nhập liệu phương tiện, hệ thống camera giám sát (CCTV) và các dịch vụ chuyển đổi mã video xử lý nguồn AV1 qua RTP từ xa. Không cần xác thực hay tương tác người dùng, lỗ hổng này kích hoạt trong giai đoạn RTSP PLAY bình thường.

Kết luận

Việc phát hiện ra 21 lỗ hổng zero-day, trong đó có những lỗi tồn tại hơn hai thập kỷ, cho thấy sức mạnh ngày càng tăng của các tác nhân AI trong lĩnh vực an ninh mạng. Nó cũng là lời nhắc nhở đáng báo động về các rủi ro bảo mật tiềm ẩn trong các thư viện phần mềm cốt lõi mà chúng ta tin dùng hàng ngày.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗