Newfold WP Module Data và các plugin WordPress đi kèm bị bypass xác thực, có thể chiếm quyền quản trị

Lưu ý: Dữ liệu này chỉ có tính chất tham khảo, phục vụ nghiên cứu an ninh mạng.CyStack khuyến nghị người dùng không sử dụng các thông tin này nhằm các mục đích bất hợp pháp

Lỗ hổng CVE-2026-80099 là gì?

Lỗ hổng CVE-2026-80099 là lỗ hổng Improper Authentication ảnh hưởng tới WP Plugin Web (phiên bản bị ảnh hưởng: ≤ 2.3.5), WP Plugin Crazy Domains (phiên bản bị ảnh hưởng: ≤ 2.5.2), WP Module Data (phiên bản bị ảnh hưởng: ≤ 2.9.7) và 2 sản phẩm khác. Lỗ hổng này được xếp hạng ở mức Cao, với điểm CVSS 8.8. Các nguồn hiện có chưa ghi nhận lỗ hổng này bị khai thác.

Giới thiệu chung

Dữ liệu gốc

Một số plugin Newfold dễ bị Authentication Bypass. Lỗ hổng tồn tại vì các plugin này đóng gói module wp-module-data. Trong module, phương thức authenticate(), được đăng ký trên filter rest_authentication_errors nên được đánh giá cho mọi yêu cầu REST API chưa xác thực, thực hiện so sánh Bearer token kiểu HMAC nhưng bị suy biến khi HiiveConnection::get_auth_token() trả về false: PHP ép kiểu strrev(false) thành strrev(''), làm salt bí mật co lại thành hằng số công khai hash('sha256', '') = e3b0c44..., trong khi mọi đầu vào hash còn lại, gồm HTTP method, request URL, raw request body và header X-Timestamp, đều hoàn toàn do kẻ tấn công kiểm soát. Điều này cho phép kẻ tấn công chưa xác thực tính một Bearer token hợp lệ hoàn toàn offline, vượt qua kiểm tra bằng token, và khiến wp_set_current_user() được gọi với administrator đầu tiên do get_users(['role' => 'administrator']) trả về, cấp quyền đầy đủ ở mức administrator và cho phép các thao tác REST API tùy ý, chẳng hạn tạo tài khoản administrator mới và chiếm toàn bộ site. Các phiên bản dễ bị ảnh hưởng là WP Plugin Crazy Domains (<= 2.5.2), WP Plugin Web (<= 2.3.4), WP Plugin Hostgator (<= 3.1.0), WP Plugin Bluehost (<= 4.17.1). Module bị ảnh hưởng dễ bị tấn công ở các phiên bản đến và bao gồm 2.9.4.

Sản phẩm và phạm vi ảnh hưởng

Danh sách affected hiện tại do CNA cung cấp rộng hơn các ranh giới hẹp hơn trong mô tả ban đầu. Dùng các ranh giới dưới đây để kiểm kê:

  • WP Module Data: các phiên bản <= 2.9.7 bị ảnh hưởng; bản sửa được liệt kê là 2.9.8.
  • WP Plugin Bluehost: các phiên bản <= 4.19.0 bị ảnh hưởng; bản sửa được liệt kê là 4.19.1.
  • WP Plugin Crazy Domains: các phiên bản <= 2.5.2 bị ảnh hưởng; bản sửa được liệt kê là 2.5.3.
  • WP Plugin Hostgator: các phiên bản <= 3.2.0 bị ảnh hưởng; bản sửa được liệt kê là 3.2.1.
  • WP Plugin Web: các phiên bản <= 2.3.5 bị ảnh hưởng; bản sửa được liệt kê là 2.3.6.

Các sản phẩm có default_status là unaffected ngoài các phạm vi trên, nhưng bằng chứng hiện có không xác nhận tình trạng của mọi nhánh song song hoặc nhánh không được liệt kê.

Chi tiết kỹ thuật

Module wp-module-data đăng ký phương thức authenticate() trên filter rest_authentication_errors, vì vậy phương thức này được gọi khi xử lý các yêu cầu REST API chưa xác thực. Logic tạo và so sánh Bearer token sử dụng HTTP method, request URL, raw request body, header X-Timestamp và một salt được tạo từ token kết nối của site.

Khi HiiveConnection::get_auth_token() trả về false, PHP ép kiểu giá trị này thành chuỗi rỗng khi xử lý strrev(false). Salt sau đó trở nên có thể dự đoán, trong khi các đầu vào còn lại vẫn do kẻ tấn công kiểm soát, cho phép tính token hợp lệ offline mà không cần biết bí mật kết nối thực tế.

Nếu phép so sánh token thành công, code gọi get_users(['role' => 'administrator']) và truyền administrator đầu tiên cho wp_set_current_user(). Kết quả là yêu cầu có thể được xử lý với quyền administrator và thực hiện các thao tác REST API tùy ý. Bản ghi không xác định chính xác mọi trạng thái triển khai khiến get_auth_token() trả về false, ngoài điều kiện này.

Khả năng khai thác

Theo mô tả, đường tấn công đi qua các yêu cầu REST API qua mạng, không cần người dùng tương tác và có thể tạo Bearer token hoàn toàn offline khi token kết nối được lưu là false.

Mô tả CNA nêu điều kiện là chưa xác thực, nhưng dữ liệu đánh giá có cấu trúc trong bản ghi lại ghi nhận yêu cầu quyền ở mức thấp. Đây là điểm không nhất quán cần giữ lại khi triage, thay vì giả định điều kiện đặc quyền giống nhau trên mọi triển khai.

Bản ghi chuẩn hóa đánh dấu public exploit là false. Tuy nhiên, bằng chứng được cung cấp không xác lập việc khai thác thành công hoặc một chiến dịch cụ thể.

Tác động kỹ thuật

Kết quả kỹ thuật được mô tả là nâng quyền từ một yêu cầu không có danh tính WordPress đã xác thực lên quyền administrator trong site bị ảnh hưởng. Quyền này có thể cho phép đọc và sửa dữ liệu, thay đổi nội dung và cài đặt, tạo administrator mới, cũng như thực hiện các thao tác REST API ảnh hưởng đến tính sẵn sàng của site.

Tác động được hỗ trợ bởi bản ghi là ở phạm vi toàn site WordPress, với khả năng ảnh hưởng đến tính bí mật, toàn vẹn và sẵn sàng của site. Bản ghi không xác lập việc thực thi mã ở cấp hệ điều hành, xâm phạm các site khác trên cùng máy chủ hoặc tác động vượt ra ngoài cài đặt WordPress bị ảnh hưởng.

Tác động đến tổ chức

Bypass thành công có thể cấp quyền administrator WordPress cho kẻ tấn công mà không cần xác thực hợp lệ.

  • Kẻ tấn công có thể đọc hoặc thay đổi dữ liệu, nội dung và cấu hình site thông qua các REST API được phép với quyền administrator.
  • Kẻ tấn công có thể tạo tài khoản administrator mới, duy trì quyền truy cập và thay đổi cơ chế quản trị của site.
  • Các thao tác REST API có thể làm gián đoạn dịch vụ hoặc làm mất tính toàn vẹn của site.
  • Bản ghi hỗ trợ kết luận về tác động trong phạm vi site WordPress bị ảnh hưởng, nhưng không xác lập việc thực thi mã ở cấp máy chủ hoặc ảnh hưởng đến các site khác.

Cách khắc phục

  1. Cập nhật WP Module Data lên đúng bản đã sửa 2.9.8.
  2. Cập nhật từng plugin Newfold lên bản sửa tương ứng: WP Plugin Bluehost lên 4.19.1, WP Plugin Crazy Domains lên 2.5.3, WP Plugin Hostgator lên 3.2.1, và WP Plugin Web lên 2.3.6.
  3. Sau khi cập nhật, xác nhận gói thực tế được nạp trên site đã chứa bản sửa của module, vì các plugin có thể đóng gói hoặc cung cấp module dùng chung theo cách khác nhau.
  4. Kiểm tra lại các site có token kết nối rỗng hoặc không được lưu, đồng thời rà soát administrator và thay đổi đặc quyền sau khi khắc phục.
  5. Không coi các phiên bản hoặc nhánh không xuất hiện trong danh sách trên là đã được sửa. Nếu không thể xác nhận đúng bản sửa cho một triển khai, cần đối chiếu với thông tin phát hành của Newfold trước khi đánh dấu site là đã khắc phục.

Cách phát hiện

  1. Kiểm kê các plugin Newfold đang hoạt động và mọi bản sao hoặc gói tích hợp của module wp-module-data trong các site WordPress.
  2. Đối chiếu phiên bản triển khai với các nhánh bị ảnh hưởng và bản sửa lỗi được liệt kê trong affected_summary. Không coi một nhánh chưa được liệt kê là an toàn.
  3. Kiểm tra mã nguồn triển khai để xác nhận authenticate() được gắn vào rest_authentication_errors và có guard xử lý token kết nối rỗng trước khi kiểm tra chữ ký, cụ thể là logic kiểm tra empty( HiiveConnection::get_auth_token() ) và trả về sớm.
  4. Rà soát log REST API để tìm các yêu cầu chưa xác thực có header Authorization chứa Bearer token cùng header X-Timestamp, sau đó kiểm tra các thay đổi administrator, tạo tài khoản mới và thay đổi đặc quyền trong cùng khoảng thời gian. Đây là tín hiệu rà soát phòng ngừa, không phải IOC được vendor xác nhận.
  5. Kiểm tra danh sách administrator hiện tại và lịch sử thay đổi tài khoản. Không có log phù hợp không chứng minh site không bị ảnh hưởng.
Nguồn (28)
Tìm hiểu thêm

Kiểm tra chuyên sâu cùng giải pháp quản lý rủi ro Web toàn diện

Giải pháp CyStack VulnScan liên tục phát hiện tài sản, xác minh lỗ hổng và giúp đội ngũ bảo mật ưu tiên khắc phục cho toàn bộ doanh nghiệp.