bản phát hành khắc phục của hệ thống kiểm soát nguồn phân tán Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 và 2.14.62.24.1 .XNUMX, sửa các lỗ hổng cho phép kẻ tấn công viết lại các đường dẫn tùy ý trong hệ thống tệp, tổ chức thực thi mã từ xa hoặc ghi đè các tệp trong thư mục “.git/”. Hầu hết các vấn đề được nhân viên xác định
Trung tâm Phản hồi An ninh của Microsoft cho biết, năm trong số tám lỗ hổng bảo mật là lỗ hổng dành riêng cho nền tảng của họ. Windows.
- — lệnh phát trực tiếp “featureexport-marks=path” ghi nhãn vào các thư mục tùy ý, có thể được sử dụng để ghi đè các đường dẫn tùy ý trong hệ thống tệp khi thực hiện thao tác "nhập nhanh git" với dữ liệu đầu vào không được kiểm tra.
- - thoát sai đối số dòng lệnh để thực thi mã kẻ tấn công từ xa trong quá trình sao chép đệ quy bằng URL ssh://. Cụ thể, việc thoát các đối số kết thúc bằng dấu gạch chéo ngược (ví dụ: “test \”) đã được xử lý không chính xác. Trong trường hợp này, khi đóng khung một đối số bằng dấu ngoặc kép, dấu ngoặc kép cuối cùng đã được thoát, điều này giúp bạn có thể tổ chức thay thế các tùy chọn của mình trên dòng lệnh.
- — khi sao chép đệ quy các mô-đun con (“clone —recurse-submodules”) trong môi trường Windows trong những điều kiện nhất định kích hoạt việc sử dụng cùng một thư mục git hai lần (.git, git~1, git~2 và git~N được công nhận là một thư mục trong NTFS, nhưng tình huống này chỉ được thử nghiệm cho git~1), có thể được sử dụng để tổ chức ghi vào thư mục ". git". Ví dụ: để tổ chức thực thi mã của mình, kẻ tấn công có thể thay thế tập lệnh của mình thông qua trình xử lý hậu kiểm tra trong tệp .git/config.
- — trình xử lý tên ký tự ổ đĩa trong đường dẫn Windows Khi dịch các đường dẫn như "C:\", chương trình chỉ được thiết kế để thay thế các định danh Latinh một chữ cái, nhưng không tính đến khả năng tạo ra các ổ đĩa ảo được gán thông qua "chữ cái thay thế:đường dẫn". Các đường dẫn như vậy không được xử lý như đường dẫn tuyệt đối, mà là đường dẫn tương đối, điều này cho phép, khi sao chép một kho lưu trữ độc hại, ghi vào một thư mục tùy ý nằm ngoài cây thư mục làm việc (ví dụ: khi sử dụng số hoặc ký tự Unicode trong tên ổ đĩa - "1:\what\the\hex.txt" hoặc "ä:\tschibät.sch").
- - khi làm việc trên nền tảng Windows Sử dụng các luồng dữ liệu thay thế trong NTFS, được tạo bằng cách thêm cờ ":stream-name:stream-type" vào tên tệp. ghi đè các tệp trong thư mục ".git/" khi sao chép kho lưu trữ độc hại. Ví dụ: tên ".git::$INDEX_ALLOCATION" trong NTFS được coi là liên kết hợp lệ tới thư mục ".git".
- — khi sử dụng Git trong môi trường WSL (Windows Hệ thống con cho Linux) khi truy cập thư mục làm việc bảo vệ chống thao túng tên trong NTFS (có thể xảy ra các cuộc tấn công thông qua dịch tên FAT, ví dụ: “.git” có thể được truy cập thông qua thư mục “git~1”).
- -
các mục trong thư mục ".git/" trên nền tảng Windows khi sao chép các kho lưu trữ độc hại chứa các tệp có ký tự gạch chéo ngược trong tên (ví dụ: "a\b"), điều này được cho phép trong Unix/Linuxnhưng được coi là một phần của con đường dẫn đến Windows. - - việc kiểm tra tên mô-đun con không đầy đủ có thể được sử dụng để tổ chức các cuộc tấn công có mục tiêu, nếu được sao chép đệ quy, có thể có khả năng để thực thi mã của kẻ tấn công. Git không ngăn việc tạo một thư mục mô-đun con trong thư mục của mô-đun con khác, điều này trong hầu hết các trường hợp sẽ chỉ dẫn đến nhầm lẫn, nhưng không có khả năng ngăn nội dung của mô-đun khác bị ghi đè trong quá trình sao chép đệ quy (ví dụ: các thư mục mô-đun con "hippo" và "hippo/hooks" được đặt ở dạng " .git/modules/hippo/" và ".git/modules/hippo/hooks/", đồng thời thư mục hook trong hà mã có thể được sử dụng riêng để lưu trữ các hook được kích hoạt.
Người dùng Windows Bạn nên khẩn trương nâng cấp phiên bản Git của mình và tránh sao chép các kho lưu trữ không đáng tin cậy cho đến khi quá trình nâng cấp hoàn tất. Nếu chưa có bản cập nhật Git khẩn cấp, để giảm nguy cơ bị tấn công, bạn nên tránh chạy lệnh "git clone --recurse-submodules" và "git submodule update" với các kho lưu trữ không đáng tin cậy, không sử dụng "git fast-import" với các luồng đầu vào không đáng tin cậy và không sao chép các kho lưu trữ vào các phân vùng dựa trên NTFS.
Để tăng cường bảo mật, các bản phát hành mới cũng cấm sử dụng cấu trúc có dạng "submodule.{name}.update=!command" trong .gitmodules. Đối với các bản phân phối, bạn có thể theo dõi việc phát hành các bản cập nhật gói trên các trang ,, , , , , , .
Nguồn: opennet.ru
