Giới thiệu chung
Dữ liệu gốcGNU Bash đến 4.3 bash43-025 xử lý các chuỗi đứng sau một số định nghĩa hàm bị sai định dạng trong giá trị của các biến môi trường, cho phép kẻ tấn công từ xa ghi vào tệp hoặc có thể gây ra tác động khác chưa rõ thông qua một môi trường được tạo đặc biệt, như đã được chứng minh bằng các vector liên quan đến tính năng ForceCommand trong OpenSSH sshd, các module mod_cgi và mod_cgid trong Apache HTTP Server, các script do những DHCP client không được chỉ rõ thực thi, và các tình huống khác trong đó việc thiết lập môi trường diễn ra qua một ranh giới đặc quyền từ quá trình thực thi Bash. LƯU Ý: lỗ hổng này tồn tại do một bản sửa không hoàn chỉnh cho CVE-2014-6271.
Sản phẩm và phạm vi ảnh hưởng
Bản ghi chuẩn hóa đánh dấu các sản phẩm sau bị ảnh hưởng:
- GNU Bash: bị ảnh hưởng đến và bao gồm
4.3 bash43-025. - Arista EOS: bị ảnh hưởng, nhưng bản ghi không cung cấp ranh giới phiên bản cụ thể.
- Oracle Linux: phiên bản
4,5và6. - QNAP QTS: một nhánh không nêu phiên bản và các mục
4.1.1, gồm cả build0927. - Mageia:
3.0và4.0. - Red Hat: Gluster Storage Server for On-Premise
2.1; Virtualization3.4; Enterprise Linux4.0,5.0,6.0,7.0; Enterprise Linux Desktop5.0,6.0,7.0; các nhánh EUS5.9,6.4,6.5,7.3đến7.7; các biến thể IBM Z, Power Big Endian, Power Big Endian EUS, Scientific Computing, Server, Server AUS, Server from RHUI, Server TUS và Workstation theo các phiên bản được liệt kê trong bản ghi. - SUSE và openSUSE: Studio Onsite
1.3; openSUSE12.3,13.1,13.2; Linux Enterprise Desktop11,12; Linux Enterprise Server10 SP3,10 SP4,11 SP1,11 SP2,11 SP3,12; Linux Enterprise Software Development Kit11,12. - Debian Linux:
7.0. - IBM: InfoSphere Guardium Database Activity Monitoring
8.2,9.0,9.1; PureApplication System với các mục không nêu phiên bản và2.0.0.0; QRadar Risk Manager7.1.0; QRadar Security Information and Event Manager7.1.0,7.1.1,7.1.2; QRadar Vulnerability Manager7.2.0,7.2.1,7.2.2,7.2.3,7.2.4,7.2.6,7.2.8.
Đối với nhiều sản phẩm downstream, bản ghi chỉ nêu sản phẩm hoặc nhánh bị ảnh hưởng mà không cung cấp ranh giới bản sửa tương ứng. Không suy luận rằng các phiên bản hoặc nhánh song song không được liệt kê là an toàn.
Chi tiết kỹ thuật
GNU Bash nhập các định nghĩa hàm từ giá trị của biến môi trường và trong trường hợp này xử lý sai phần chuỗi đứng sau một số định nghĩa hàm bị lỗi định dạng. Lỗi phân tích cú pháp này là phần còn sót lại của bản sửa trước đó, khiến dữ liệu do kẻ tấn công kiểm soát có thể được xử lý khi môi trường được chuyển sang một tiến trình Bash. Điều kiện khai thác quan trọng là kẻ tấn công phải đưa được môi trường đã tạo đặc biệt qua ranh giới đặc quyền hoặc vào một luồng thực thi có gọi Bash. Các vector được mô tả gồm ForceCommand trong OpenSSH sshd, các module mod_cgi và mod_cgid của Apache HTTP Server, script do DHCP client thực thi, cùng các tình huống tương tự. Tác động trực tiếp được xác nhận là ghi tệp; tệp đích, payload cụ thể và tác động bổ sung ngoài việc ghi tệp không được xác định trong dữ liệu hiện có.
Khả năng khai thác
Lỗ hổng có thể bị khai thác từ xa trong những triển khai cho phép dữ liệu bên ngoài ảnh hưởng đến biến môi trường trước khi Bash được thực thi. Bản ghi cấu trúc cho biết không yêu cầu đặc quyền trước hoặc tương tác của người dùng, nhưng việc kẻ tấn công có thể kiểm soát môi trường vẫn là điều kiện triển khai thực tế. Các đường tấn công được nêu gồm OpenSSH ForceCommand, Apache mod_cgi và mod_cgid, script DHCP, và những luồng khác vượt qua ranh giới đặc quyền khi gọi Bash. Bản ghi đánh dấu lỗ hổng đã bị khai thác và có exploit công khai. Dữ liệu cung cấp không nêu tên chiến dịch, nạn nhân hoặc IOC cụ thể.
Tác động kỹ thuật
Kết quả kỹ thuật được xác nhận là ghi tệp thông qua quá trình Bash xử lý environment đã bị tạo đặc biệt. Nếu tiến trình Bash có quyền cao, tệp bị ghi có thể thuộc về cấu hình, script hoặc dữ liệu quan trọng, nhưng tác động thực tế phụ thuộc vào quyền của tiến trình và vị trí mà nó có thể ghi.
- Phạm vi có thể vượt ra ngoài một shell tương tác khi Bash được gọi bởi daemon, CGI handler, DHCP client hoặc automation đặc quyền.
- Việc vượt qua ranh giới đặc quyền có thể làm tăng mức độ ảnh hưởng đến tính toàn vẹn của dịch vụ hoặc hệ thống.
- Bản ghi không xác định một tác động bổ sung cụ thể cho mọi môi trường, vì vậy không nên tự động kết luận rằng mọi cài đặt Bash đều dẫn đến cùng một kết quả.
Tác động đến tổ chức
Tác động đã được xác nhận là kẻ tấn công từ xa có thể khiến tiến trình Bash ghi vào tệp. Nếu Bash chạy dưới tài khoản dịch vụ hoặc quyền cao hơn, việc ghi tệp có thể làm thay đổi script, cấu hình hoặc dữ liệu mà dịch vụ đó có quyền truy cập, từ đó ảnh hưởng đến tính toàn vẹn hoặc tính sẵn sàng của dịch vụ.
- Rủi ro tập trung ở các hệ thống nhận dữ liệu bên ngoài vào environment trước khi gọi Bash.
- OpenSSH
ForceCommand, Apache CGI, DHCP client script và automation đặc quyền có thể mở rộng phạm vi ảnh hưởng tùy cách triển khai. - Tác động tiếp theo như thực thi mã, tiết lộ dữ liệu hoặc chiếm quyền dịch vụ không được bản ghi xác nhận một cách phổ quát.
Cách khắc phục
- Cài bản cập nhật bảo mật được nhà cung cấp hỗ trợ cho từng sản phẩm và nhánh bị ảnh hưởng. Không chỉ cập nhật gói Bash độc lập nếu sản phẩm là appliance, nền tảng tích hợp hoặc bản phân phối có backport riêng.
- Đối với upstream GNU Bash, thông tin follow-up xác định bản sửa cho Bash 4.3 là
bash43-026và cho Bash 3.2 làbash32-053. Một bản sửa hardening upstream khác được xác định làbash43-027cùng các bản tương ứng, nhưng nên ưu tiên gói do nhà cung cấp phân phối và hỗ trợ. - Với Ubuntu 14.04 LTS, advisory follow-up xác định gói đã sửa là
bashphiên bản4.3-7ubuntu1.3. Đây là ranh giới cho nhánh Ubuntu được nêu, không phải bằng chứng cho các nhánh hoặc sản phẩm khác. - Kiểm tra lại revision thực tế sau cập nhật. Một advisory Ubuntu ghi nhận bản sửa trước đó không được áp dụng đúng do lỗi build, vì vậy chỉ thấy bản cập nhật trước đây không đủ để kết luận đã khắc phục.
- Ưu tiên các máy chủ và appliance có OpenSSH
ForceCommand, Apachemod_cgihoặcmod_cgid, DHCP client script, wrapper đặc quyền hoặc automation có thể đưa dữ liệu bên ngoài vào environment. Nếu chưa thể cập nhật, chỉ sử dụng biện pháp giảm thiểu cụ thể do nhà cung cấp sản phẩm đó hướng dẫn; bằng chứng hiện có không thiết lập một workaround chung cho mọi triển khai.
Cách phát hiện
- Kiểm kê mọi hệ thống, appliance và image có cài hoặc nhúng gói
bash, sau đó đối chiếu revision của gói với bản sửa bảo mật do nhà cung cấp phát hành. - Xác định các luồng có thể đưa dữ liệu bên ngoài vào environment trước khi gọi Bash, đặc biệt là
ForceCommandtrong OpenSSH, Apachemod_cgivàmod_cgid, hook của DHCP client, cùng các wrapper hoặc tác vụ chạy qua ranh giới đặc quyền. - Kiểm tra xem hệ thống có nhận bản cập nhật follow-up sau bản sửa chưa hoàn chỉnh hay không. Không coi trạng thái đã cài bản cập nhật trước đó là bằng chứng an toàn nếu nhà cung cấp từng cảnh báo lỗi build hoặc lỗi đóng gói.
- Rà soát audit log và file-integrity telemetry để tìm việc tạo hoặc sửa tệp bất thường bởi các dịch vụ có gọi Bash. Đây là biện pháp giám sát phòng ngừa, không phải IOC đã được xác nhận cho lỗ hổng này.
- Việc không thấy log đáng ngờ không chứng minh hệ thống không bị ảnh hưởng; cần xác nhận revision gói và đường thực thi thực tế.