close

Lỗ hổng bảo mật PHP-FPM chiếm dụng quyền root (CVE-2021-21703) – Hướng dẫn khắc phục trên VPS sử dụng Directadmin

Tác giả: Nguyen Văn Phong Ngày cập nhật: 20/11/2023 Chuyên mục: Hỗ trợ Web hosting
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Lỗ hổng bảo mật PHP-FPM chiếm dụng quyền root (CVE-2021-21703)

PHP-FPM (FastCGI Process Manager) là một chương trình phiên dịch PHP khi chạy trang web cho web server. PHP-FPM  phát triển qua sự mở rộng của CGI . PHP-FPM có chức năng tối ưu quá trình xử lý thông tin của các máy chủ web, hỗ trợ việc xử lý thông tin từ nhiều trang web trong cùng một khoảng thời gian một cách nhanh nhất. Với tốc độ xử lý PHP script nhanh cùng tính năng tối ưu hoá cho những trang web có kích thước lớn, giúp tăng lượng truy cập hiện tại php-fpm đang được sử dụng rất rộng rãi.

php-fpm-phat-trien-qua-su-mo-rong-cua-cgi
PHP-FPM  phát triển qua sự mở rộng của CGI

Tuy nhiên theo công bố mới nhất, PHP-FPM đang có lỗ hổng bảo mật nghiêm trọng, có thể bị khai thác để chiếm dụng quyền root đã tồn tại được hơn 10 năm.

Lỗ hổng này cho phép một tiến trình có đặc quyền thấp có thể đọc và ghi một mảng con trỏ được sử dụng bởi tiến trình main chạy dưới quyền root, thông qua bộ nhớ dùng chung. Kẻ tấn công có thể lợi dụng sự cố này để thay đổi số nguyên 32 bit từ 0 thành 1 trong bộ nhớ của tiến trình main hoặc xóa một vùng bộ nhớ. Bằng cách lợi dụng , khai thác lỗi này hacker có thể tiếp cận và khiến các tiền trình Main thực thi mã và qua đó leo thang đặc quyền.

Theo thông tin từ phía PHP, các phiên bản ảnh hưởng bao gồm PHP 7.2.x, 7.3.x đến PHP 7.4.24 và từ 8.0.x đến 8.0.11. Trang chủ chính thức của PHP đã phát hành phiên bản vá lỗi PHP 7.4.25 và 8.0.12 vào ngày 21/10/2021. Các lỗi này được các nhà nghiên cứu bảo mật báo cáo hồi tháng 05/2021. Sau khi vá lỗi xong cách đây 7 ngày, họ đã công khai lỗi với mã định danh CVE-2021-21703. Tuy nhiên theo thông tin từ các diễn đàn, Twitter  thì hầu như các phiên bản php đều bị ảnh hưởng.

Một số link bài viết về thông tin lỗi này:

https://bugs.php.net/bug.php?id=81026
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-21703
https://security-tracker.debian.org/tracker/CVE-2021-21703


Đối với các VPS sử dụng webserver là nginx và php-fpm bạn có thể cập nhật, build lại phiên bản php mới nhất để khắc phục lỗi này. Tuỳ thuộc vào Control panel , stack script bạn đang sử dụng sẽ có những cách cập nhật chủ động hay thủ công khác nhau.

Bạn chạy lệnh sau để check VPS có hoạt động với php-fpm hay không.

ps aux | grep php-fpm | grep process

Lỗ hổng bảo mật PHP-FPM chiếm dụng quyền root (CVE-2021-21703) - Hướng dẫn khắc phục trên VPS sử dụng Directadmin 1
VPS sử dụng php-fpm

Hướng dẫn khắc phục với VPS sử dụng Directadmin

Đối với VPS sử dụng Directadmin, thông thường mặc định bạn sẽ sử dụng mod_php hoặc nếu như bạn sử dụng openlitespeed bạn không cần cập nhật .
Đối với các VPS sử dụng Directadmin với nginx là webserver và sử dụng php-fpm trên một hoặc nhiều phiên bản, bạn nên build lại php trong custombuild của directadmin.

Cách 1. Chạy lệnh kiểm tra tự động


Bạn copy toàn bộ câu lệnh phía dưới và dán vào terminal VPS, lệnh sẽ kiểm kiểm tra và cập nhật php nếu như VPS directadmin của bạn có sử dụng php-fpm. Nếu không sử dụng php-fpm , câu lệnh sẽ không cập nhật php.
Việc cập nhật php sẽ diễn ra khoảng 30 phút tới 1 tiếng với custombuild trên directadmin bạn vui lòng giữ kết nối SSH tới VPS khi đang cập nhật.
Lưu ý: với custombuild chỉ hoạt động ổn định đối với VPS từ 2GB ram trở lên, đối với VPS dưới 2GB ram, bạn vui lòng nâng cấp ram trước khi chạy lệnh cập nhật.

if systemctl is-active --quiet php-fpm*; then
echo -e "\nPhat hien tien trinh php-fpm, chuan bi cap nhat sau 10s…\n"
sleep 10;
cd /usr/local/directadmin/custombuild
./build update
./build php n
./build rewrite_confs
else
echo "Khong phat hien php-fpm , Thoat chuong trinh"
fi

Lỗ hổng bảo mật PHP-FPM chiếm dụng quyền root (CVE-2021-21703) - Hướng dẫn khắc phục trên VPS sử dụng Directadmin 2
Hình ảnh chạy lệnh.

Cách 2: kiểm tra và cập nhật thủ công Directadmin

Cách Để kiểm tra VPS có chạy php-fpm không bạn sử dụng lệnh sau :
ps aux | grep php-fpm | grep process

Nếu không hiển thị gì có nghĩa là bạn không sử dụng php-fpm và không cần cập nhật, còn nếu có hiển thị có nghĩa VPS bạn có sử dụng php-fpm .

Lỗ hổng bảo mật PHP-FPM chiếm dụng quyền root (CVE-2021-21703) - Hướng dẫn khắc phục trên VPS sử dụng Directadmin 3
VPS directadmin chạy php-fpm


Bạn có thể cập nhật thủ công php-fpm bằng các lệnh sau :

cd /usr/local/directadmin/custombuild ./build update ./build php n ./build rewrite_confs

Chúc các bạn sớm cập nhật lỗi php thành công nhé!


Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886