Lỗ hổng nghiêm trọng trên GitHub khiến hơn 4.000 kho lưu trữ bị tấn công Repojacking


 Một phát hiện mới cho thấy một lỗ hổng mới được tiết lộ trong GitHub có thể khiến hàng nghìn kho lưu trữ có nguy cơ bị tấn công lại.

Nhà nghiên cứu bảo mật Elad Rapoport của Checkmarx cho biết trong một báo cáo kỹ thuật được chia sẻ với The Hacker News: Lỗ hổng “có thể cho phép kẻ tấn công khai thác tình trạng chạy đua trong quá trình tạo kho lưu trữ và đổi tên tên người dùng của GitHub” .

“Việc khai thác thành công lỗ hổng này sẽ tác động đến cộng đồng nguồn mở bằng cách cho phép chiếm quyền điều khiển hơn 4.000 gói mã bằng các ngôn ngữ như Go, PHP và Swift, cũng như các hành động GitHub”.

Sau khi tiết lộ có trách nhiệm vào ngày 1 tháng 3 năm 2023, nền tảng lưu trữ mã thuộc sở hữu của Microsoft đã giải quyết vấn đề này kể từ ngày 1 tháng 9 năm 2023.

Repojacking , viết tắt của chiếm quyền điều khiển kho lưu trữ , là một kỹ thuật trong đó tác nhân đe dọa có thể vượt qua cơ chế bảo mật được gọi là rút lui không gian tên kho lưu trữ phổ biến và cuối cùng là kiểm soát kho lưu trữ.

Biện pháp bảo vệ này thực hiện là ngăn người dùng khác tạo kho lưu trữ có cùng tên với kho lưu trữ có hơn 100 bản sao tại thời điểm tài khoản người dùng của nó được đổi tên. Nói cách khác, sự kết hợp giữa tên người dùng và tên kho lưu trữ được coi là "đã ngừng hoạt động".

Nếu biện pháp bảo vệ này bị phá vỡ một cách tầm thường, nó có thể cho phép các tác nhân đe dọa tạo tài khoản mới có cùng tên người dùng và tải lên các kho lưu trữ độc hại, có khả năng dẫn đến các cuộc tấn công chuỗi cung ứng phần mềm.

Phương pháp mới do Checkmarx vạch ra tận dụng điều kiện chạy đua tiềm năng giữa việc tạo kho lưu trữ và đổi tên tên người dùng để đạt được khả năng tái kích hoạt. Cụ thể, nó đòi hỏi các bước sau -

  1. Nạn nhân sở hữu không gian tên "victim_user/repo"
  2. Nạn nhân đổi tên "victim_user" thành "renamed_user"
  3. Kho lưu trữ "victim_user/repo" hiện đã ngừng hoạt động
  4. Kẻ đe dọa có tên người dùng "Attack_user" đồng thời tạo một kho lưu trữ có tên "repo" và đổi tên tên người dùng "Attack_user" thành "victim_user"

Bước cuối cùng được thực hiện bằng cách sử dụng yêu cầu API để tạo kho lưu trữ và chặn yêu cầu được đổi tên đối với việc thay đổi tên người dùng. Sự phát triển này diễn ra gần chín tháng sau khi GitHub vá một lỗ hổng vượt qua tương tự có thể mở ra cơ hội cho các cuộc tấn công rejacking .

Rapoport cho biết: “Việc phát hiện ra lỗ hổng mới này trong hoạt động tạo kho lưu trữ và đổi tên tên người dùng của GitHub cho thấy những rủi ro dai dẳng liên quan đến cơ chế ‘nghỉ hưu không gian tên kho lưu trữ phổ biến’”.

Mới hơn Cũ hơn