Stack Clash là một khai thác dựa trên một kỹ thuật khá cũ. Bộ nhớ được sử dụng bởi một quá trình được chia thành hai vùng - ngăn xếp và đống . Người ta thường tưởng tượng ngăn xếp tăng dần xuống và đống khi tăng dần lên. Điều gì xảy ra khi một trong hai phát triển đủ để đụng độ với nhau? Tổng quát hơn, điều gì xảy ra khi ngăn xếp phát triển đủ để xâm lấn vào các không gian bộ nhớ không liên quan? Lỗ hổng ban đầu đã 12 tuổi và các nhà phát triển nhân Linux đã sửa nó tạm thời bằng cách sử dụng trang bảo vệ . Tuy nhiên, các nhà nghiên cứu tại Qualys đã tìm cách khai thác điều này mặc dù trang bảo vệ.
Báo cáo của Ars Technica :
Các lỗ hổng Stack Clash đã dần nhận được sự nhận thức rộng rãi, lần đầu tiên vào năm 2005 với phát hiện của nhà nghiên cứu bảo mật Gaël Delalleau và năm năm sau với việc phát hành lỗ hổng Linux của nhà nghiên cứu Rafal Wojtczuk. Các nhà phát triển Linux đã
giới thiệu một biện pháp bảo vệ nhằm ngăn chặn các xung đột ngăn xếp, nhưng nghiên cứu ngày nay chứng minh rằng những kẻ tấn công có thể dễ dàng vượt qua biện pháp đó.
Cuộc tấn công bằng chứng khái niệm chính được phát triển bởi Qualys khai thác một lỗ hổng được lập chỉ mục là CVE-2017-1000364. Các nhà nghiên cứu của Qualys cũng đã phát triển các cuộc tấn công sử dụng Stack Clash để khai thác các lỗ hổng riêng biệt, bao gồm CVE-2017-1000365 và CVE-2017-1000367. Ví dụ: khi kết hợp với CVE-2017-1000367, một lỗ hổng cố định gần đây trong Sudo cũng được Qualys phát hiện, người dùng địa phương có thể khai thác Sudo để có được quyền root đầy đủ trên phạm vi rộng hơn nhiều hệ điều hành. Qualys cho đến nay không thể thực hiện mã khai thác từ xa. Ứng dụng từ xa duy nhất mà họ điều tra là máy chủ thư Exim, tình cờ hóa ra là không thể mở rộng. Qualys cho biết họ không thể loại trừ khả năng các khai thác thực thi mã từ xa như vậy tồn tại. Qualys cho biết họ sẽ phát hành các khai thác bằng chứng về khái niệm vào một ngày sau đó,
[...] Nhiều thông tin hơn có sẵn trong tư vấn kỹ thuật chi tiết này từ Qualys và phân tích kỹ thuật này từ bảo mật .
Trích dẫn bài viết của LWN về bản sửa lỗi gốc từ năm 2010:
Vì Linux không tách rời các trang stack và heap, nên việc ghi đè trang stack vào một trang heap liền kề là có thể. Điều đó có nghĩa là một ngăn xếp đủ sâu (ví dụ từ một cuộc gọi đệ quy) có thể kết thúc bằng cách sử dụng bộ nhớ trong heap. Một chương trình có thể ghi vào trang heap đó (ví dụ: máy khách X) sau đó có thể thao tác địa chỉ trả về của một trong các cuộc gọi để chuyển đến địa điểm mà nó chọn. Điều đó có nghĩa là máy khách có thể khiến máy chủ chạy mã của việc lựa chọn mã thực thi mã tùy chọn của nó, có thể được tận dụng để giành quyền root.
Mô tả trên áp dụng cho các nhân giống như Unix.
Mặc dù Ars Technica lưu ý một cách giải quyết tạm thời được đề cập trong báo cáo Qualys ("đặt RLIMIT STACK và RLIMIT_AS cứng của người dùng địa phương và các dịch vụ từ xa thành giá trị thấp"), cần lưu ý rằng điều này không nhất thiết phải bảo vệ chống lại việc khai thác này . Cách duy nhất an toàn hiện nay là nâng cấp. Theo phân tích bảo mật:
Cần phải rõ ràng rằng các nỗ lực chỉ sử dụng kernel để giải quyết vấn đề này nhất thiết sẽ luôn luôn không đầy đủ, vì vấn đề thực sự nằm ở việc thiếu thăm dò ngăn xếp. Vì giải pháp thực tế thay thế phụ thuộc vào việc xây dựng lại tất cả vùng người dùng, đây có thể là giải pháp khả thi duy nhất cho tương lai gần.
Điều tốt nhất chúng ta có thể làm bây giờ là nâng cấp kernel lên phiên bản vá.
Khai thác năm 2010 đã sử dụng máy chủ X, cái này sử dụng sudo, cái tiếp theo có thể là bất kỳ chương trình vô số người dùng nào, tại một số điểm, chạy theo các đặc quyền nâng cao.
Qualys chưa công bố bất kỳ mã bằng chứng khái niệm nào cho việc khai thác (họ dự định sẽ làm như vậy vào một ngày sau đó).
Có nhiều Thông báo bảo mật Ubuntu được liên kết với CVE-2017-1000364:
Cũng lưu ý rằng trình theo dõi CVE liệt kê một số kết hợp phát hành / kernel là các bản sửa lỗi đang chờ xử lý.
Nói chung, cách khắc phục đơn giản nhất là cập nhật hệ thống của bạn lên gói kernel mới nhất càng sớm càng tốt.
Các phiên bản kernel có liên quan từ USNs (loại bỏ bằng cách sử dụng for i in {24..35}; curl -s https://www.ubuntu.com/usn/usn-33$i-1/ | pup 'dl:nth-last-of-type(1)'
):
-
Ubuntu 17.04:
-
linux-image-4.10.0-24-lowflency
4.10.0-24.28
-
linux-image-generic-lpae
4.10.0.24.26
-
linux-image-generic
4.10.0.24.26
-
linux-image-4.10.0-24-generic-lpae
4.10.0-24.28
-
linux-image-4.10.0-24-generic
4.10.0-24.28
-
linux-image-lowlatency
4.10.0.24.26
-
Ubuntu 17.04:
-
linux-image-4.10.0-1008-raspi2
4.10.0-1008.11
-
linux-image-raspi2
4.10.0.1008.10
-
Ubuntu 16.10:
-
linux-image-powerpc-smp
4.8.0.56,69
-
linux-image-powerpc-e500mc
4.8.0.56,69
-
linux-image-4.8.0-56-powerpc-smp
4.8.0-56.61
-
linux-image-4.8.0-56-powerpc-e500mc
4.8.0-56.61
-
linux-image-4.8.0-56-lowflency
4.8.0-56.61
-
linux-image-generic
4.8.0.56,69
-
linux-image-4.8.0-56-generic
4.8.0-56.61
-
linux-image-powerpc64-emb
4.8.0.56,69
-
linux-image-virtual
4.8.0.56,69
-
linux-image-powerpc64-smp
4.8.0.56,69
-
linux-image-4.8.0-56-generic-lpae
4.8.0-56.61
-
linux-image-generic-lpae
4.8.0.56,69
-
linux-image-lowlatency
4.8.0.56,69
-
linux-image-4.8.0-56-powerpc64-emb
4.8.0-56.61
-
Ubuntu 16.10:
-
linux-image-4.8.0-1040-raspi2
4.8.0-1040.44
-
linux-image-raspi2
4.8.0.1040.44
-
Ubuntu 16.04 LTS:
-
linux-image-powerpc64-smp-
lts -utopic
4.4.0.81.87
-
linux-image-generic-
lts -
wily 4.4.0.81.87
-
linux-image-generic-
lts -utopic
4.4.0.81.87
-
linux-image-4.4.0-81-generic-lpae
4.4.0-81.104
-
linux-image-powerpc64-emb-
lts -sinh động
4.4.0.81.87
-
linux-image-powerpc-e500mc
4.4.0.81.87
-
linux-image-generic-lpae-lts-xenial
4.4.0.81.87
-
linux-image-generic-lpae-lts-utopic
4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-emb
4.4.0-81.104
-
linux-image-powerpc-e500mc-lts-
wily 4.4.0.81.87
-
linux-image-4.4.0-81-powerpc-e500mc
4.4.0-81.104
-
linux-image-generic-lpae-lts-
wily 4.4.0.81.87
-
linux-image-virtual-
lts -sinh động
4.4.0.81.87
-
linux-image-virtual-
lts -utopic
4.4.0.81.87
-
linux-image-virtual
4.4.0.81.87
-
linux-image-powerpc64-emb-
lts -
wily 4.4.0.81.87
-
linux-image-lowlatency-lts-sinh động
4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-sinh động
4.4.0.81.87
-
linux-image-powerpc64-emb
4.4.0.81.87
-
linux-image-powerpc-smp-lts-xenial
4.4.0.81.87
-
linux-image-4.4.0-81-generic
4.4.0-81.104
-
linux-image-powerpc64-smp-
lts -sinh động
4.4.0.81.87
-
linux-image-lowlatency-lts-
wily 4.4.0.81.87
-
linux-image-4.4.0-81-lowflency
4.4.0-81.104
-
linux-image-generic
4.4.0.81.87
-
linux-image-lowlatency-lts-xenial
4.4.0.81.87
-
linux-image-powerpc64-smp-lts-xenial
4.4.0.81.87
-
linux-image-powerpc64-emb-
lts -utopic
4.4.0.81.87
-
linux-image-generic-lts-xenial
4.4.0.81.87
-
linux-image-generic-
lts -sinh động
4.4.0.81.87
-
linux-image-powerpc-e500mc-lts-utopic
4.4.0.81.87
-
linux-image-powerpc-smp
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc-smp
4.4.0-81.104
-
linux-image-generic-lpae-lts-sinh động
4.4.0.81.87
-
linux-image-generic-lpae
4.4.0.81.87
-
linux-image-powerpc64-smp-
lts -
wily 4.4.0.81.87
-
linux-image-powerpc64-emb-lts-xenial
4.4.0.81.87
-
linux-image-powerpc-smp-
lts -
wily 4.4.0.81.87
-
linux-image-virtual-
lts -
wily 4.4.0.81.87
-
linux-image-powerpc64-smp
4.4.0.81.87
-
linux-image-4.4.0-81-powerpc64-smp
4.4.0-81.104
-
linux-image-powerpc-smp-
lts -utopic
4.4.0.81.87
-
linux-image-powerpc-smp-
lts -sinh động
4.4.0.81.87
-
linux-image-lowlatency
4.4.0.81.87
-
linux-image-virtual-lts-xenial
4.4.0.81.87
-
linux-image-lowlatency-lts-utopic
4.4.0.81.87
-
Ubuntu 16.04 LTS:
-
linux-image-4.4.0-1016-gke
4.4.0-1016.16
-
Ubuntu 16.04 LTS:
-
linux-image-snapdragon
4.4.0.1061.54
-
linux-image-4.4.0-1061-snapdragon
4.4.0-1061.66
-
Ubuntu 16.04 LTS:
-
linux-image-4.4.0-1020-
aws 4.4.0-1020,29
-
Ubuntu 16.04 LTS:
-
linux-image-raspi2
4.4.0.1059.60
-
linux-image-4.4.0-1059-raspi2
4.4.0-1059.67
-
Ubuntu 16.04 LTS:
-
linux-image-4.8.0-56-powerpc-smp
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-powerpc-e500mc
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-lowflency
4.8.0-56.61 ~ 16.04.1
-
linux-image-4.8.0-56-generic
4.8.0-56.61 ~ 16.04.1
-
linux-image-generic-hwe-16.04
4.8.0.56.27
-
linux-image-lowlatency-hwe-16.04
4.8.0.56.27
-
linux-image-4.8.0-56-generic-lpae
4.8.0-56.61 ~ 16.04.1
-
linux-image-virtual-hwe-16.04
4.8.0.56.27
-
linux-image-generic-lpae-hwe-16.04
4.8.0.56.27
-
linux-image-4.8.0-56-powerpc64-emb
4.8.0-56.61 ~ 16.04.1
-
Ubuntu 14.04 LTS:
-
linux-image-powerpc-smp-lts-xenial
4.4.0.81.66
-
linux-image-lowlatency-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-powerpc-smp
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-powerpc-e500mc
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-lowflency
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-generic-lpae
4.4.0-81.104 ~ 14.04.1
-
linux-image-generic-lpae-lts-xenial
4.4.0.81.66
-
linux-image-powerpc64-smp-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-generic
4.4.0-81.104 ~ 14.04.1
-
linux-image-4.4.0-81-powerpc64-smp
4.4.0-81.104 ~ 14.04.1
-
linux-image-generic-lts-xenial
4.4.0.81.66
-
linux-image-powerpc64-emb-lts-xenial
4.4.0.81.66
-
linux-image-powerpc-e500mc-lts-xenial
4.4.0.81.66
-
linux-image-virtual-lts-xenial
4.4.0.81.66
-
linux-image-4.4.0-81-powerpc64-emb
4.4.0-81.104 ~ 14.04.1
-
Ubuntu 14.04 LTS:
-
linux-image-powerpc-e500mc
3.13.0.121.131
-
linux-image-lowlatency-pae
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc64-emb
3.13.0-121.170
-
linux-image-generic-pae
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc-smp
3.13.0-121.170
-
linux-image-3.13.0-121-powerpc-e500mc
3.13.0-121.170
-
linux-image-3.13.0-121-powerpc-
e500 3.13.0-121.170
-
linux-image-3.13.0-121-generic-lpae
3.13.0-121.170
-
linux-image-generic-
lts -
quantal 3.13.0.121.131
-
linux-image-virtual
3.13.0.121.131
-
linux-image-powerpc-
e500 3.13.0.121.131
-
linux-image-generic-
lts -trusty
3.13.0.121.131
-
linux-image-3.13.0-121-generic
3.13.0-121.170
-
linux-image-omap
3.13.0.121.131
-
linux-image-powerpc64-emb
3.13.0.121.131
-
linux-image-3.13.0-121-powerpc64-smp
3.13.0-121.170
-
linux-image-generic
3.13.0.121.131
-
linux-image-highbank
3.13.0.121.131
-
linux-image-generic-
lts -saucy
3.13.0.121.131
-
linux-image-powerpc-smp
3.13.0.121.131
-
linux-image-3.13.0-121-lowflency
3.13.0-121.170
-
linux-image-generic-lpae-lts-saucy
3.13.0.121.131
-
linux-image-generic-
lts -raring
3.13.0.121.131
-
linux-image-powerpc64-smp
3.13.0.121.131
-
linux-image-generic-lpae-lts-trusty
3.13.0.121.131
-
linux-image-generic-lpae
3.13.0.121.131
-
linux-image-lowlatency
3.13.0.121.131
-
Ubuntu 12.04 ESM:
-
linux-image-powerpc-smp
3.2.0.128.142
-
linux-image-3.2.0-128-ảo
3.2.0-128.173
-
linux-image-3.2.0-128-generic-pae
3.2.0-128.173
-
linux-image-generic
3.2.0.128.142
-
linux-image-generic-pae
3.2.0.128.142
-
linux-image-highbank
3.2.0.128.142
-
linux-image-3.2.0-128-highbank
3.2.0-128.173
-
linux-image-3.2.0-128-powerpc-smp
3.2.0-128.173
-
linux-image-virtual
3.2.0.128.142
-
linux-image-powerpc64-smp
3.2.0.128.142
-
linux-image-3.2.0-128-omap
3.2.0-128.173
-
linux-image-3.2.0-128-powerpc64-smp
3.2.0-128.173
-
linux-image-omap
3.2.0.128.142
-
linux-image-3.2.0-128-generic
3.2.0-128.173
-
Ubuntu 12.04 LTS:
-
linux-image-3.13.0-121-generic
3.13.0-121.170 ~ precision1
-
linux-image-generic-lpae-lts-trusty
3.13.0.121.112
-
linux-image-generic-
lts -trusty
3.13.0.121.112
-
linux-image-3.13.0-121-generic-lpae
3.13.0-121.170 ~ precision1
Sudo
Lỗi sudo nói trên được bảo vệ bởi USN-3304-1 , từ ngày 30 tháng 5 năm 2017:
-
Ubuntu 17.04:
-
sudo-ldap
1.8.19p1-1ubfox1.1
-
sudo
1.8.19p1-1ubfox1.1
-
Ubuntu 16.10:
-
sudo-ldap
1.8.16-0ubfox3.2
-
sudo
1.8.16-0ubfox3.2
-
Ubuntu 16.04 LTS:
-
sudo-ldap
1.8.16-0ubfox1.4
-
sudo
1.8.16-0ubfox1.4
-
Ubuntu 14.04 LTS:
-
sudo-ldap
1.8.9p5-1ubfox1.4
-
sudo
1.8.9p5-1ubfox1.4