Lỗ hổng khai thác nghiêm trọng trong chipset Wi‑Fi của MediaTek: lỗ hổng zero-click
(blog.sonicwall.com)Lỗ hổng nghiêm trọng trong chipset Wi‑Fi của MediaTek: lỗ hổng zero-click (CVE-2024-20017) đe dọa router và smartphone
Tổng quan
- Nhóm nghiên cứu mối đe dọa SonicWall Capture Labs đã xác định lỗ hổng CVE-2024-20017, đánh giá tác động của nó và phát triển biện pháp giảm thiểu
- CVE-2024-20017 là một lỗ hổng zero-click nghiêm trọng với điểm CVSS 3.0 là 9.8, ảnh hưởng đến MediaTek Wi‑Fi chipset MT7622/MT7915 và gói driver RTxxxx SoftAP
- MediaTek SDK phiên bản 7.4.0.1 trở về trước, OpenWrt 19.07 và 21.02, được sử dụng trong sản phẩm của nhiều nhà sản xuất như Ubiquiti, Xiaomi và Netgear, đều bị ảnh hưởng
- Lỗ hổng này cho phép thực thi mã từ xa mà không cần tương tác của người dùng, và MediaTek đã phát hành bản vá để giảm thiểu rủi ro
- Lỗ hổng này đã được công bố và vá vào tháng 3, nhưng PoC được công khai gần đây làm tăng khả năng bị khai thác
Tổng quan kỹ thuật
- Lỗ hổng tồn tại trong
wappd, một daemon mạng nằm trong MediaTek MT7622/MT7915 SDK và gói driver RTxxxx SoftAP wappdcó vai trò cấu hình và quản lý giao diện không dây cùng các access point, đặc biệt liên quan đến công nghệ Hotspot 2.0- Kiến trúc của
wappdgồm chính dịch vụ mạng, một tập hợp dịch vụ cục bộ tương tác với giao diện không dây của thiết bị, và kênh giao tiếp giữa các thành phần thông qua Unix domain socket - Lỗ hổng phát sinh do tràn bộ đệm vì một giá trị độ dài lấy trực tiếp từ dữ liệu gói tin do kẻ tấn công kiểm soát được dùng cho thao tác sao chép bộ nhớ
Kích hoạt lỗ hổng
- Lỗ hổng xảy ra trong hàm
IAPP_RcvHandlerSSB, nơi giá trị độ dài do kẻ tấn công kiểm soát được truyền vào macroIAPP_MEM_MOVE - Không có kiểm tra biên nào ngoài việc xác nhận không vượt quá độ dài gói tối đa 1600 byte
- Kẻ tấn công phải gửi gói tin với cấu trúc mong đợi được gắn trước payload tấn công
- Độ dài của cấu trúc
RT_IAPP_HEADERphải nhỏ, và trườngRT_IAPP_HEADER.Commandphải là 50
Khai thác
- Mã khai thác được công bố sử dụng chuỗi ROP để đạt thực thi mã từ xa bằng kỹ thuật ghi đè bảng địa chỉ toàn cục
- Nó tận dụng lời gọi
system()để thực thi lệnh gửi reverse shell về cho kẻ tấn công - Reverse shell được thiết lập bằng các công cụ Bash và Netcat
Bảo vệ của SonicWall
- Các chữ ký sau đã được triển khai để giúp khách hàng SonicWall phòng vệ trước việc khai thác lỗ hổng này
- IPS: 20322 MediaTek MT7915 wlan Service OOB Write 1
- IPS: 20323 MediaTek MT7915 wlan Service OOB Write 2
Khuyến nghị giảm thiểu
- Do mã khai thác đã được công khai, người dùng được khuyến nghị mạnh mẽ nâng cấp lên phiên bản firmware mới nhất cho chipset bị ảnh hưởng
Liên kết liên quan
Tóm tắt của GN⁺
- Bài viết này đề cập đến một lỗ hổng zero-click nghiêm trọng trong chipset Wi‑Fi của MediaTek, cho phép thực thi mã từ xa mà không cần tương tác của người dùng
- Nhóm nghiên cứu của SonicWall đã xác định lỗ hổng này và phát triển biện pháp giảm thiểu, đồng thời khuyến nghị người dùng nâng cấp lên firmware mới nhất
- Lỗ hổng ảnh hưởng đến router và smartphone của nhiều nhà sản xuất, và khả năng bị khai thác tăng cao do PoC mới được công khai gần đây
- Một sản phẩm có chức năng tương tự là chipset Wi‑Fi của Qualcomm, và điều quan trọng là phải kiểm tra các bản cập nhật bảo mật định kỳ
1 bình luận
Ý kiến trên Hacker News
Từ góc nhìn của người từng so sánh mã nguồn driver SDK của vendor MediaTek với mt76, chuyện này không có gì quá bất ngờ. Nói nhẹ thì nó khá lộn xộn
Đáng tiếc là vì thông lượng nhỉnh hơn mt76 một chút, vẫn có một số bản build firmware bên thứ ba dùng driver của vendor
May mắn là ở MediaTek và bộ phận WiSoC có vài kỹ sư tích cực giao tiếp với cộng đồng phần mềm tự do/mã nguồn mở, và họ cũng tự duy trì một fork OpenWrt nhỏ dựa trên mt76: https://git01.mediatek.com/plugins/gitiles/openwrt/feeds/mtk...
Cách đặt tiêu đề hơi dễ gây hiểu nhầm. Nhà tôi có vài router dùng mt76 Wi-Fi, nên tôi bấm vào link vì tưởng là lỗi firmware hoặc silicon; hóa ra là lỗi trong đống mã SDK của vendor nên thấy nhẹ nhõm
Hỗ trợ mt76 trong mainline kernel và hostapd khá tốt, nên tôi không hiểu vì sao lại có người muốn dùng thứ kia
Bài viết nói đó là “gói driver được dùng trong sản phẩm của nhiều nhà sản xuất, gồm Ubiquiti, Xiaomi, Netgear, v.v.”
Tuy vậy cũng có những vendor như Ubiquiti nói rằng họ không dùng gói này trong sản phẩm thực tế: https://community.ui.com/questions/CVE-2024-20017/b3f1a425-d...
Blog gốc: https://blog.coffinsec.com/0day/2024/08/30/exploiting-CVE-20...
Kiến trúc ứng dụng hơi phức tạp, nhưng về bản chất gồm một dịch vụ mạng, các dịch vụ cục bộ tương tác với giao diện không dây của thiết bị, và kênh giao tiếp giữa các thành phần dùng Unix domain socket
Điểm còn may là nghe có vẻ đây không phải lỗi nằm trong firmware baseband, mà là vấn đề ở phía dịch vụ “giá trị gia tăng” không thật sự cần thiết cho hoạt động của chính card mạng không dây
Nó làm tôi nhớ đến cách gói driver của một số thiết bị: driver thật sự thì nhỏ và im lặng, nhưng lại cài kèm bloatware lớn hơn vài bậc độ lớn cho những tính năng mà 99% người dùng không cần và cũng không muốn. Máy in và GPU đặc biệt tệ ở khoản này
Tôi tự hỏi trong quy tắc đặt tên của MediaTek có logic gì không, hay mọi thiết bị chỉ đơn giản là MTxxxx với x là số tăng dần hoặc số ngẫu nhiên
Tôi có một thiết bị dùng chip Wi-Fi mt6631; nó không nằm trong danh sách bị ảnh hưởng nên có thể đoán là ổn, nhưng thật khó biết nó nằm ở đâu trong dòng sản phẩm
Họ nói OpenWrt 19.07 và 21.02 bị ảnh hưởng, nhưng nhìn thì có vẻ các bản build OpenWrt chính thức chỉ dùng driver mt76 chứ không dùng SDK của Mediatek
Họ nói có driver dễ tổn thương cho một số chipset dùng trong phần cứng UBNT, nhưng không có sản phẩm nào dùng driver đó
Không hiểu sao cứ mua laptop dùng CPU AMD là luôn kèm card Wi-Fi MediaTek RZ616
Tôi đã thay tất cả bằng card Wi-Fi Intel, và giờ có cả một đống card RZ616 sẽ trở thành vi nhựa trong tương lai
Model có số cuối là 0 dùng PCIe tiêu chuẩn và bán cho OEM đắt hơn khoảng 10 đô la
AMD đã rebrand MediaTek MT7921 và MT7922 lần lượt thành RZ608, RZ616 để có thứ bán cho OEM ở cùng mức giá với chip xx1 của Intel
Khi thế hệ chipset không còn mới nhất, nguồn lực hỗ trợ phía mainline kernel của Qualcomm trở nên khá mỏng. Muốn thúc Qualcomm làm việc thời nay cần áp lực rất lớn từ vendor
Cá nhân tôi thích softmac hơn. Dạo này không có nhiều lựa chọn tốt, và thời hoàng kim của ath9k đã qua rồi
Tôi lần lượt dùng ThinkPad Intel và ThinkPad AMD cho công việc; Wi-Fi chipset MediaTek ở máy AMD tốt hơn hẳn chipset Intel bên máy Intel
Bên Intel rớt mạng nhiều lần mỗi giờ, và độ trễ tệ đến mức dùng ssh trên 5GHz cũng cảm nhận được ngay. Thiết bị MT7921 tôi đang dùng hiện rất ổn định trên Linux trong 2–3 năm qua
Có vẻ cuối cùng vẫn phụ thuộc khá nhiều vào tổ hợp chipset và laptop
Tôi nhớ điện thoại của mình cũng dùng chipset MediaTek. Và tôi mang máng nhớ lý do nhà sản xuất sau đó rời bỏ MediaTek là vì, ừm, chất lượng của các sản phẩm đó
Tôi không biết Wi-Fi trên điện thoại được cấu hình thế nào. Có cách nào kiểm tra điện thoại này có bị ảnh hưởng không? Tôi gần như không dùng Wi-Fi vì có dữ liệu di động không giới hạn và vùng phủ sóng tốt, nhưng biết vẫn hơn
"sudo su"rồi xemls /sys/modulelà đượcOutput sẽ trông tương tự lsmod
Ngay cả trong thời nay, khi người ta mua bất cứ loại silicon nào có thể kiếm được, tôi vẫn không hiểu vì sao các vendor hạng C như thế này không theo chiến lược PC: mở hoàn toàn firmware và để cộng đồng mã nguồn mở lo
Bài viết nói “các phiên bản bị ảnh hưởng gồm MediaTek SDK 7.4.0.1 trở xuống và OpenWrt 19.07, 21.02”, “lỗ hổng nằm trong network daemon wappd có trong MediaTek MT7622/MT7915 SDK và gói driver RTxxxx SoftAP”, nhưng thực ra có vẻ OpenWRT không dùng wappd
Vì vậy chúng ta cần firmware tự do. Tôi chán Broadcom và Ralink lắm rồi