Lỗ hổng nghiêm trọng trong Axios có thể chiếm quyền toàn bộ hệ thống cloud

WhiteHat Team

Administrators
Thành viên BQT
09/04/2020
128
1.798 bài viết
Lỗ hổng nghiêm trọng trong Axios có thể chiếm quyền toàn bộ hệ thống cloud
Một lỗ hổng nghiêm trọng vừa được công bố trong thư viện HTTP phổ biến Axios, mang mã CVE-2026-40175, có điểm CVSS tối đa 10/10, cho phép kẻ tấn công leo thang từ một điểm yếu nhỏ trong hệ thống thành thực thi mã từ xa, thậm chí kiểm soát toàn bộ hạ tầng cloud.

Điểm đáng chú ý là lỗ hổng này không cần bất kỳ dữ liệu đầu vào trực tiếp nào từ người dùng. Thay vào đó, Axios bị lợi dụng như một “mắt xích trung gian” trong chuỗi tấn công. Kẻ tấn công trước tiên khai thác lỗi Prototype Pollution trong các thư viện phổ biến như qs, minimist hoặc body-parser. Những dữ liệu bị “đầu độc” này sau đó được Axios tự động trộn vào cấu hình request nội bộ.
1776065814334.png

Vấn đề nằm ở chỗ Axios không kiểm tra các ký tự đặc biệt như CRLF (\r\n) trong giá trị header. Điều này khiến dữ liệu bị biến đổi thành payload kiểu Request Smuggling, mở đường cho kỹ thuật Header Injection Chain. Từ đây, kẻ tấn công có thể vượt qua nhiều lớp kiểm soát bảo mật và mở rộng phạm vi xâm nhập.

Trong môi trường cloud-native, tác động của lỗ hổng CVE-2026-40175 đặc biệt nghiêm trọng. Kẻ tấn công có thể vượt qua cơ chế bảo vệ metadata như AWS IMDSv2 để đánh cắp thông tin nhạy cảm, chèn header xác thực nhằm truy cập trái phép vào hệ thống nội bộ, hoặc đầu độc cache dùng chung để ảnh hưởng đến nhiều người dùng khác. Do Axios hoạt động cả trên Node.js và trình duyệt, phạm vi ảnh hưởng của lỗ hổng này là rất rộng.

Theo khuyến nghị, tất cả các phiên bản Axios trước 1.13.2 đều bị ảnh hưởng và cần được nâng cấp lên tối thiểu 1.15.0. Bản vá chính thức đã bổ sung cơ chế kiểm tra và loại bỏ các giá trị header chứa ký tự không hợp lệ, qua đó chặn đứng chuỗi khai thác.

Trong trường hợp chưa thể cập nhật ngay, giải pháp tạm thời là chỉnh sửa trực tiếp mã nguồn Axios. Đoạn mã dưới đây thực chất là một lớp kiểm tra bổ sung: Trước khi gửi request, hệ thống sẽ rà soát toàn bộ giá trị header, nếu phát hiện có ký tự xuống dòng (\r hoặc \n) vốn là dấu hiệu của tấn công chèn header thì sẽ lập tức dừng và trả lỗi.

// In lib/adapters/http.js
utils.forEach(requestHeaders, function setRequestHeader(val, key) {
if (/[\r\n]/.test(val)) {
throw new Error('Security: Header value contains invalid characters');
}
// ... proceed to set header
});

Hiểu đơn giản, đây là một “chốt chặn” thủ công nhằm ngăn không cho dữ liệu độc hại đi sâu vào quá trình gửi HTTP request. Tuy nhiên, đây chỉ là giải pháp tình thế, không thay thế cho việc cập nhật phiên bản chính thức, bởi nó không xử lý triệt để toàn bộ bề mặt tấn công.
Theo Security Online
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
axios vulnerability cloud takeover cve-2026-40175 prototype pollution request smuggling
Bên trên