Lỗ hổng lập trình R mới khiến các dự án bị tấn công chuỗi cung ứng


 Một lỗ hổng bảo mật đã được phát hiện trong ngôn ngữ lập trình R có thể bị khai thác bởi tác nhân đe dọa để tạo tệp RDS (R Data Serialization) độc hại sao cho nó dẫn đến thực thi mã khi được tải và tham chiếu.

Lỗ hổng, được gán định danh CVE CVE-2024-27322, "liên quan đến việc sử dụng các đối tượng hứa hẹn và đánh giá lười biếng trong R", công ty bảo mật ứng dụng AI HiddenLayer cho biết trong mộtbáo cáo được chia sẻ với The Hacker News.

RDS, giống như pickle trong Python, là một định dạng được sử dụng để tuần tự hóa và lưu trạng thái của các cấu trúc dữ liệu hoặc các đối tượng trong R, một ngôn ngữ lập trình mã nguồn mở được sử dụng trong tính toán thống kê, trực quan hóa dữ liệu và học máy.

Quá trình tuần tự hóa này – serialize() hoặc saveRDS() – và deserialization – unserialize() và readRDS() – cũng được tận dụng khi lưu và tải các gói R.

Nguyên nhân sâu xa đằng sau CVE-2024-27322 nằm ở chỗ nó có thể dẫn đến việc thực thi mã tùy ý khi loại bỏ dữ liệu không đáng tin cậy, do đó khiến người dùng phải đối mặt với các cuộc tấn công chuỗi cung ứng thông qua các gói R được chế tạo đặc biệt.

Do đó, kẻ tấn công đang tìm cách vũ khí hóa lỗ hổng có thể lợi dụng thực tế là các gói R tận dụng định dạng RDS để lưu và tải dữ liệu, gây ra việc thực thi mã tự động khi gói được giải nén và khử tuần tự.

"Kẻ tấn công có thể khai thác lỗ hổng này bằng cách tạo một tệp ở định dạng RDS có chứa hướng dẫn hứa hẹn đặt giá trị thành unbound_value và biểu thức chứa mã tùy ý", HiddenLayer nói. "Do đánh giá lười biếng, biểu thức sẽ chỉ được đánh giá và chạy khi biểu tượng được liên kết với tệp RDS được truy cập."

"Do đó, nếu đây chỉ đơn giản là một tệp RDS, khi người dùng gán cho nó một ký hiệu (biến) để làm việc với nó, mã tùy ý sẽ được thực thi khi người dùng tham chiếu đến ký hiệu đó. Nếu đối tượng được biên dịch trong gói R, gói có thể được thêm vào kho lưu trữ R như CRAN, và biểu thức sẽ được đánh giá và mã tùy ý chạy khi người dùng tải gói đó.

"Các gói R dễ bị khai thác này và do đó, có thể được sử dụng như một phần của cuộc tấn công chuỗi cung ứng thông qua các kho lưu trữ gói", công ty cho biết. "Để kẻ tấn công chiếm quyền kiểm soát gói R, tất cả những gì chúng cần làm là ghi đè lên tệp rdx bằng tệp được tạo độc hại và khi gói được tải, nó sẽ tự động thực thi mã."

Lỗi bảo mật đã được giải quyết trong phiên bản 4.4.0 được phát hành vào ngày 24 tháng 4 năm 2024, sau khi tiết lộ có trách nhiệm.

Mới hơn Cũ hơn