Lỗi libheif CVSS 9.8 Xử Lý Ảnh HEIC: Hướng Dẫn Kiểm Tra Và Vá Server WordPress Từ A Đến Z

Câu trả lời nhanh
Lỗi libheif CVSS 9.8 là heap buffer overflow trong thư viện decode ảnh HEIC của iPhone, do Wordfence Argus phát hiện và được vá ở libheif 1.23.3 ngày 1/9/2026. WordPress không có plugin để update, bạn phải vá system library, restart PHP và rebuild Docker image. Kiểm tra nhanh qua Site Health, Media Handling xem Imagick có hỗ trợ HEIC không.

Hôm 18/9 vừa rồi Wordfence công bố một phát hiện đáng chú ý: đội Threat Intelligence của họ dùng tool AI tên Wordfence Argus tìm ra lỗ hổng heap buffer overflow nghiêm trọng CVSS 9.8 trong libheif, chính là thư viện nằm dưới mui xe xử lý ảnh HEIC mà iPhone chụp ra từ 2017. Mình đã đọc kỹ toàn bộ báo cáo và trong bài này mình sẽ chỉ cho bạn cách kiểm tra server có nằm trong diện ảnh hưởng hay không, và vá đúng chỗ, vì lần này không có plugin nào để update cả.

Lỗ hổng libheif CVSS 9.8 là gì và vì sao WordPress dính hiểu lầm?

Lỗi heap buffer overflow CVSS 9.8 trong thư viện libheif xử lý ảnh HEIC

Đây là lỗi heap buffer overflow trong libheif, cho phép một file HEIC được chế tác specially ghi dữ liệu do kẻ tấn công chọn ra ngoài vùng đệm bộ nhớ. Trên server dễ tổn thương, hậu quả có thể là đọc file nhạy cảm hoặc chạy code với quyền của image worker. Wordfence đã chứng minh được cả hai trên một bộ cài WordPress thật, chạy Debian và glibc, chỉ bằng tài khoản Author thông thường.

Điểm nhiều người hiểu sai ở đây: WordPress không tự decode ảnh. Khi có người upload ảnh, WordPress giao file đó cho image editor. Trên đa số server, PHP Imagick extension gọi ImageMagick, ImageMagick nhận diện HEIF rồi đẩy file xuống libheif, một thư viện C++ nằm trong PHP worker. Nghĩa là một thư viện mà hầu như chủ site nào cũng không cố ý cài, lại đang parse dữ liệu upload trực tiếp từ Internet với quyền của worker đó.

Thời điểm vá cụ thể: libheif maintainer Dirk Farin phát hành bản 1.23.3 ngày 1/9/2026, bốn ngày sau khi Wordfence báo cáo. Bản 1.23.2 và mọi bản từ 1.18.0 trở lên đều còn dính. Bản 1.23.4 là upstream security release mới nhất hiện nay.

Site WordPress của bạn có bị ảnh hưởng không?

Không phải site nào cũng dính. Theo Wordfence, đường xử lý ảnh mặc định của WordPress chỉ bị phơi nhiễm khi đủ cả bốn điều kiện cùng lúc: server có PHP Imagick extension, ImageMagick được build kèm HEIF support, libheif nằm trong khoảng 1.18.0 đến 1.23.2, và libheif được compile bật uncompressed codec.

Điều kiện cuối cùng là cái bẫy lớn nhất: hai distro ship cùng version 1.19.8 nhưng một cái nguy hiểm, một cái an toàn, chỉ vì khác nhau ở build flag. Vì vậy đừng bao giờkết luận chỉ bằng số phiên bản.

Cách kiểm tra nhanh nhất trong wp-admin: vào Tools → Site Health → Info → Media Handling. Danh sách format mà ImageMagick hỗ trợ hiện ra ở đó. Nếu không thấy HEIC trong danh sách, đường Imagick này của bạn không bị phơi nhiễm.

Kiểm tra phiên bản libheif trên server bằng lệnh như thế nào?

Nếu bạn quản lý VPS riêng thì kiểm tra trực tiếp cho chắc. Mình chạy các lệnh sau trên Debian/Ubuntu:

# Xem package libheif đã cài và version
dpkg -l | grep -i libheif

# Xem Imagick có hỗ trợ HEIC không (chạy qua PHP)
php -r "var_dump(in_array('HEIC', Imagick::queryFormats('HEIC')));"

Trên RHEL/AlmaLinux thay dòng đầu bằng rpm -qa | grep -i libheif. Nếu câu lệnh PHP trả về true và libheif của bạn từ 1.18.0 trở lên, bạn cần hành động ngay.

Bảng kiểm chứng của Wordfence ngày 5/9 là tham khảo tốt: Docker image chính thức của WordPress, Debian 13 trixie, Ubuntu 26.04 và Fedora 44 đều vulnerable. Ubuntu 24.04 LTS, Debian 12, Alpine và AlmaLinux 10 lại an toàn. Đáng chú ý nhất: Docker image chính thức của WordPress bị phơi nhiễm out-of-the-box, vì nó build trên Debian 13, có Imagick, báo có HEIC support và libheif decode được format lỗi.

Vá libheif cho WordPress đúng cách ra sao?

Vì đây là system library chứ không phải plugin, không có nút Update trong wp-admin. Tùy từng loại môi trường, mình làm như sau.

Server truyền thống hoặc shared hosting: cài bản security update từ hệ điều hành hoặc chờ nhà cung cấp patch. Vì distro thường backport fix về version cũ, đừng hoảng khi thấy số version thấp hơn 1.23.3, miễn đó là bản đã vá từ repository chính thức. Xong rồi khởi động lại PHP và web server để chúng ngừng dùng thư viện cũ trong bộ nhớ:

sudo apt update && sudo apt install --only-upgrade libheif1
sudo systemctl restart php8.3-fpm apache2  # hoặc nginx

Server cài libheif trực tiếp từ source: nâng lên tối thiểu 1.23.3, nhưng mình khuyên lên thẳng 1.23.4 vì nó chứa thêm các security fix khác.

Container: đây là phần mình muốn nhấn mạnh. Đừng chỉ restart container cũ, vì library nằm trong image layer. Bạn phải pull base image mới, rebuild không dựa vào cached layer, rồi redeploy:

docker pull wordpress:latest
docker compose build --no-cache
docker compose up -d

Mức độ nguy hiểm thực tế của lỗ hổng này đến đâu?

Điểm 9.8 nghe rất đáng sợ, nhưng mình đánh giá cho các bạn cần bức tranh thực tế hơn. Khai thác thành công phụ thuộc nhiều vào từng môi trường cụ thể: build flag của libheif, cách server quản lý bộ nhớ, và việc request có chạm đúng worker đang ở trạng thái phù hợp không. Wordfence cũng xác nhận đây không phải universal exploit, một file độc hại không thể đánh sập mọi server WordPress trên Internet.

Nhưng đừng vì thế mà chủ quan. Chương trình nghiên cứu HEIF Heist của Hacktron đã chứng minh Discourse bị code execution qua image upload, Vercel bị unauthenticated code execution qua file AVIF chế tác trên Next.js, và việc adapt exploit sang target mới chỉ tốn khoảng một đến hai ngày. Hơn nữa, nếu hàng trăm site cùng dùng một hosting image giống hệt nhau, công sức dành cho một site sẽ áp dụng cho các site còn lại.

Kịch bản tấn công đáng tin nhất hiện nay nhắm vào mục tiêu đã biết trước hoặc nhóm server build giống nhau. Trên WordPress chuẩn, vai Author là vai thấp nhất được phép upload media. Cảnh báo riêng: nếu site bạn có plugin cho subscriber hay khách vãng lai upload HEIC, mức độ rủi ro tăng lên đáng kể.

Câu hỏi thường gặp

Tôi không cho ai upload ảnh ngoài Administrator, có cần lo không?

Rủi ro của bạn thấp hơn đáng kể vì đường tấn công thực tế nhất cần tài khoản Author trở lên. Tuy nhiên mình vẫn khuyên vá, vì một plugin upload form bất kỳ nào đó trong tương lai có thể mở lại đường này mà bạn không để ý.

Không dùng iPhone để upload ảnh thì có an toàn không?

Bạn không kiểm soát được định dạng file mà người khác upload. File HEIC chế tác có thể được gửi qua bất kỳ form upload nào chạy qua Imagick, nên cách duy nhất an toàn là cập nhật library.

Wordfence plugin có chặn được lỗ hổng này không?

Firewall application layer không vá được lỗi nằm trong system library. Việc vá phải diễn ra ở mức hệ điều hành hoặc Docker base image, rồi restart service. Đây chính là lý do mình hay nhắc rằng bảo mật WordPress phải bắt đầu từ hosting, tương tự những gì mình phân tích trong bài về tối ưu tốc độ WordPress từ tầng server.

Tóm lại

Lỗ hổng libheif CVSS 9.8 là lời nhắc rõ ràng nhất năm nay rằng mặt tấn công của WordPress không dừng ở plugin và theme. Một thư viện hệ thống mà bạn không bao giờ chủ động cài đặt vẫn có thể trở thành cửa ngõ vào server nếu đường pipeline ảnh của bạn đi qua nó. Kiểm tra Media Handling trong Site Health, đối chiếu phiên bản libheif, vá ở đúng tầng rồi restart service. Mười phút kiểm tra hôm nay rẻ hơn nhiều so với một lần server bị đọc trộm file cấu hình.

Thanh Tùng

Mình là Thanh Tùng. Bạn bè gọi mình là "bác sĩ máy tính" vì hễ máy nào có vấn đề là mình muốn mò vào xem sao. Mình viết hướng dẫn theo cách mà mình mong người khác đã viết cho mình ngày xưa — từng bước rõ ràng, không bỏ sót, và nói luôn cái gì hay bị lỗi. Ngoài giờ làm mình chơi guitar, nuôi mèo, và có một con VPS riêng dành riêng cho việc cài thử đủ thứ linh tinh.

Xem tất cả bài viết →

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *