Google tiết lộ một lỗ hổng bảo mật trên GitHub

Project Zero công bố chi tiết về vi phạm bảo mật nghiêm trọng trên GitHub và báo cáo rằng lỗi ảnh hưởng đến các lệnh quy trình công việc hành động từ GitHub và được mô tả là có mức độ nghiêm trọng cao. (Lỗi này được phát hiện vào tháng 90, nhưng theo thời hạn tiết lộ tiêu chuẩn là XNUMX ngày, các chi tiết hiện tại mới được công khai.)

Lỗ hổng này trở thành một trong số ít lỗ hổng chưa được sửa một cách thích hợp trước khi hết thời hạn 90 ngày tiêu chuẩn do Google Project Zero cấp.

Theo Felix Wilhelm (người đã phát hiện ra nó), thành viên của nhóm Project Zero, lỗ hổng này ảnh hưởng đến chức năng hành động GitHub, một công cụ giúp tự động hóa công việc của các nhà phát triển. Điều này là do các lệnh của quy trình làm việc Hành động “dễ bị tấn công bằng cách tiêm”:

“Hành động Github hỗ trợ một tính năng được gọi là lệnh quy trình làm việc như một kênh liên lạc giữa Trình chạy hành động và hành động được thực thi. Các lệnh quy trình làm việc được triển khai trong Runner/src/Runner.Worker/ActionCommandManager.cs và hoạt động bằng cách phân tích cú pháp STDOUT của tất cả các hành động được thực hiện bằng cách tìm kiếm một trong hai cờ lệnh.

Đề cập đến đó Vấn đề lớn với tính năng này là nó rất dễ bị tấn công bằng tiêm nhiễm. Vì quá trình thực thi quét mọi hàng được in thành STDOUT để tìm các lệnh của quy trình làm việc, nên mọi hành động GitHub chứa nội dung không đáng tin cậy trong quá trình thực thi đều dễ bị tấn công.

Trong hầu hết các trường hợp, khả năng đặt các biến môi trường tùy ý sẽ dẫn đến việc thực thi mã từ xa ngay khi một quy trình làm việc khác được thực thi. Tôi đã dành chút thời gian xem xét các kho lưu trữ GitHub phổ biến và hầu hết mọi dự án sử dụng các hành động GitHub hơi phức tạp đều dễ bị loại lỗi này.

Sau đó đã đưa ra một số ví dụ về cách khai thác lỗi và cũng đề xuất một giải pháp:

“Tôi thực sự không chắc cách tốt nhất để khắc phục nó là gì. Tôi nghĩ cách triển khai các lệnh của quy trình công việc về cơ bản là không an toàn. Việc ngừng sử dụng cú pháp lệnh v1 và tăng cường set-env bằng danh sách cho phép có thể sẽ có tác dụng chống lại các vectơ RCE trực tiếp.

“Tuy nhiên, ngay cả khả năng ghi đè các biến môi trường 'bình thường' được sử dụng trong các bước sau cũng có thể đủ để khai thác các hành động phức tạp hơn. Tôi cũng chưa xem xét tác động bảo mật của các điều khiển khác trong không gian làm việc.

Mặt khác, đề cập rằng một giải pháp lâu dài tốt sẽ là di chuyển các lệnh của quy trình công việc sang một kênh riêng (ví dụ: bộ mô tả tệp mới) để tránh phân tích cú pháp STDOUT, nhưng điều này sẽ phá vỡ nhiều mã hành động hiện có.

Đối với GitHub, các nhà phát triển của nó đã xuất bản một lời khuyên vào ngày 1 tháng 2020 và không dùng các lệnh dễ bị tấn công, nhưng lập luận rằng những gì Wilhelm tìm thấy trên thực tế là một “lỗ hổng bảo mật vừa phải”. GitHub đã gán cho lỗi mã định danh CVE-15228-XNUMX:

“Một lỗ hổng bảo mật vừa phải đã được xác định trong thời gian chạy GitHub Actions có thể cho phép đưa đường dẫn và biến môi trường vào quy trình công việc ghi dữ liệu không đáng tin cậy vào STDOUT. Điều này có thể dẫn đến việc đưa vào hoặc sửa đổi các biến môi trường mà không có ý định của tác giả quy trình làm việc.

“Để giúp chúng tôi giải quyết vấn đề này và cho phép bạn đặt các biến môi trường một cách linh hoạt, chúng tôi đã giới thiệu một bộ tệp mới để xử lý các cập nhật về môi trường và đường dẫn trong quy trình công việc.

“Nếu bạn sử dụng các nhà môi giới tự lưu trữ, hãy đảm bảo rằng chúng được cập nhật lên phiên bản 2.273.1 trở lên.

Theo Wilhelm, vào ngày 12 tháng 14, Project Zero đã liên hệ với GitHub và chủ động đưa ra thời hạn 19 ngày cho họ nếu GitHub muốn có thêm thời gian để vô hiệu hóa các lệnh dễ bị tấn công. Tất nhiên, lời đề nghị đã được chấp nhận và GitHub hy vọng sẽ vô hiệu hóa các lệnh dễ bị tấn công sau ngày 2 tháng XNUMX. Project Zero sau đó ấn định ngày tiết lộ mới là ngày XNUMX tháng XNUMX.

Fuente: https://bugs.chromium.org


Để 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.