curl vá lỗ hổng upload HTTP/2 nghiêm trọng sau khi xuất hiện mã khai thác PoC thực thi mã phía client
Dự án cURL vừa phát hành phiên bản cập nhật vá lỗi logic nghiêm trọng trong quá trình upload dữ liệu qua giao thức HTTP/2, ngăn chặn nguy cơ thực thi mã độc trên máy client khi kết nối tới máy chủ độc hại.

Chuyện gì vừa xảy ra
Daniel Stenberg cùng đội ngũ phát triển cURL vừa chính thức tung ra phiên bản mới của thư viện libcurl và công cụ dòng lệnh curl. Bản vá giải quyết một lỗ hổng nghiêm trọng phát sinh trong quá trình truyền tải dữ liệu tải lên (upload stream) qua giao thức HTTP/2.
Lỗ hổng bắt nguồn từ việc quản lý trạng thái luồng (stream state handling) sai sót khi máy chủ từ chối hoặc gửi cờ điều khiển dòng dữ liệu một cách bất thường. Một máy chủ HTTP/2 độc hại có thể khai thác điều này để gây tràn bộ đệm (heap buffer overflow) hoặc use-after-free, từ đó dẫn đến thực thi mã tùy ý ngay trên máy khách (Client-side Code Execution) hoặc làm sập tiến trình gọi curl.
Ai cần chú ý và phạm vi ảnh hưởng
- Hầu như toàn bộ hệ sinh thái phần mềm:
libcurlđược nhúng trong hàng tỷ thiết bị, từ hệ điều hành máy chủ Linux, container, ứng dụng backend (Python, PHP, Node.js, Go, Rust), cho đến các công cụ tự động hóa hạ tầng (Terraform, Ansible, scripts). - Hạ tầng CI/CD và Automation: Các runner tự động chạy curl để tải artifact, gửi dữ liệu hoặc tương tác với webhook bên thứ ba.
- Microservices tích hợp API ngoài: Các ứng dụng backend thường xuyên gửi HTTP POST/PUT sang các đối tác hoặc dịch vụ SaaS.
Tác động vận hành
- Tấn công ngược từ Server sang Client: Thông thường chúng ta quen với việc bảo vệ server trước client, nhưng lỗ hổng này cho phép một máy chủ đối tác (hoặc bị hack) tấn công ngược lại chính máy chủ backend nội bộ của bạn khi backend thực hiện gọi API ra ngoài.
- Rủi ro sập các pipeline tự động: Lỗi có thể làm crash đột ngột các tiến trình truyền tải file dung lượng lớn trong doanh nghiệp.
Điểm sysadmin cần theo dõi và hành động ngay
- Kiểm tra phiên bản curl đang cài đặt: Chạy
curl --versiontrên các máy chủ và container base images. - Cập nhật gói hệ điều hành: Chạy
apt update && apt upgrade curl libcurl4(trên Debian/Ubuntu) hoặcyum/dnf update curl libcurl(trên RHEL/CentOS/Rocky). - Cập nhật các container image cơ sở: Re-build các Docker base image (như
alpine,ubuntu,debian) để đảm bảo các container mới xuất xưởng mang theo phiên bảnlibcurlan toàn.
Kết luận
cURL là viên gạch nền móng của thế giới kết nối mạng Internet. Bất kỳ lỗ hổng nào trong cURL đều cần được quản trị viên xử lý khẩn trương trên diện rộng.