Đệ quy vô hạn qua symlink trong kho phar của PHP Group PHP có thể làm sập tiến trình

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-7260 là gì?

Lỗ hổng CVE-2026-7260 là lỗ hổng Stack-based Buffer Overflow ảnh hưởng tới PHP (phiên bản bị ảnh hưởng: 8.2.* – < 8.2.33, 8.3.* – < 8.3.33 và các phiên bản bị ảnh hưởng khác). Lỗ hổng này được xếp hạng ở mức Trung bình, với điểm CVSS 5.4. 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

Các symbolic link vòng trong phar archive có thể dẫn đến đệ quy không giới hạn, làm cạn C stack và khiến tiến trình PHP bị crash, trong các phiên bản PHP từ 8.2.* trước 8.2.33, từ 8.3.* trước 8.3.33, từ 8.4.* trước 8.4.24 và từ 8.5.* trước 8.5.9.

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

PHP Group PHP package ext-phar có default status là unaffected, với các nhánh bị ảnh hưởng cụ thể sau:

  • Nhánh 8.2.*: affected trước 8.2.33; bản sửa được xác nhận là 8.2.33.
  • Nhánh 8.3.*: affected trước 8.3.33; bản sửa được xác nhận là 8.3.33.
  • Nhánh 8.4.*: affected trước 8.4.24; bản sửa được xác nhận là 8.4.24.
  • Nhánh 8.5.*: affected trước 8.5.9; bản sửa được xác nhận là 8.5.9.

Các nhánh hoặc sản phẩm khác không được liệt kê không được suy luận là bị ảnh hưởng hoặc không bị ảnh hưởng nếu không có bằng chứng riêng.

Chi tiết kỹ thuật

Lỗ hổng nằm trong phar_get_link_source() của ext/phar/util.c, nơi PHP đệ quy theo các symbolic link trong phar archive mà không giới hạn độ sâu hoặc phát hiện chu trình. Một phar archive dạng tar được tạo специально với các symlink vòng có thể khiến quá trình theo liên kết tiếp tục vô hạn, làm cạn C stack và khiến tiến trình PHP bị crash. Đầu vào do kẻ tấn công kiểm soát là archive chứa các symbolic link vòng. Bản ghi phân loại khả năng khai thác là local, không yêu cầu privilege nhưng cần active user interaction. Advisory không xác định workflow hoặc API ứng dụng cụ thể khiến archive được xử lý, vì vậy khả năng tiếp cận từ mạng không được chứng minh.

Khả năng khai thác

Bản ghi mô tả khả năng khai thác local, attack complexity thấp, không yêu cầu quyền và cần người dùng chủ động tương tác với dữ liệu hoặc archive được tạo đặc biệt. Vendor advisory xác định archive dạng tar chứa circular symbolic links là điều kiện cần để kích hoạt lỗi. Không có đường phân phối từ xa hoặc endpoint cụ thể nào được xác nhận trong bằng chứng hiện có. Bản ghi được cung cấp không xác định public exploit hoặc known exploitation; một enrichment được trả về ghi nhận exploitation là none tại thời điểm đánh giá đó, nhưng điều này không chứng minh rằng không có hoạt động khai thác về sau.

Tác động kỹ thuật

Kết quả kỹ thuật được xác nhận là unbounded recursion làm cạn C stack và crash PHP process. Tác động chính là availability của tiến trình hoặc dịch vụ phụ thuộc vào tiến trình đó; bản ghi không xác nhận confidentiality hoặc integrity impact. Phạm vi được đánh giá là không thay đổi, nên không có bằng chứng cho thấy lỗi tự động lan sang một security authority khác. Việc khai thác cần local reachability và active user interaction, do đó khả năng ảnh hưởng trực tiếp từ xa phụ thuộc vào một workflow ứng dụng cụ thể xử lý archive do kẻ tấn công cung cấp, nhưng workflow đó chưa được xác định. Mức gián đoạn thực tế phụ thuộc vào cơ chế supervisor, restart và phân vùng worker của hệ thống.

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

Lỗi có thể làm crash PHP process đang xử lý archive, gây gián đoạn chức năng của ứng dụng hoặc worker phụ thuộc vào tiến trình đó. Nếu tiến trình được tự động khởi động lại, tác động có thể biểu hiện thành lỗi request, worker churn hoặc suy giảm dịch vụ thay vì mất dịch vụ kéo dài, nhưng mức độ thực tế phụ thuộc vào kiến trúc triển khai. Rủi ro vận hành cao hơn trong các hệ thống cho phép upload, nhập hoặc kiểm tra phar archive không tin cậy. Bản ghi không mô tả việc tiết lộ dữ liệu, sửa dữ liệu hoặc một sự cố breach.

Cách khắc phục

  1. Nâng cấp PHP theo đúng nhánh đang triển khai: nhánh 8.2.* lên 8.2.33, nhánh 8.3.* lên 8.3.33, nhánh 8.4.* lên 8.4.24, hoặc nhánh 8.5.* lên 8.5.9.
  2. Kiểm tra lại inventory sau nâng cấp để bảo đảm mọi PHP runtime có sử dụng ext-phar, gồm web workers, CLI jobs, container images và máy chủ xử lý nền, đều đã đạt bản sửa tương ứng.
  3. Rà soát các pipeline xử lý phar archive do nguồn không tin cậy cung cấp và hạn chế việc xử lý các archive này cho đến khi cập nhật hoàn tất. Đây là biện pháp phòng ngừa, không phải mitigation được vendor xác nhận.
  4. Bản ghi và advisory không cung cấp một workaround riêng, nên không nên coi việc thay đổi cấu hình hoặc chỉ giám sát log là biện pháp thay thế cho cập nhật.

Cách phát hiện

  1. Kiểm kê các runtime PHP và xác định phiên bản của package hoặc module ext-phar trên máy chủ, worker, CLI job và container.
  2. Đối chiếu từng phiên bản với các nhánh bị ảnh hưởng trong affected_summary, không suy luận trạng thái an toàn từ việc ứng dụng không thường xuyên sử dụng phar.
  3. Rà soát các workflow nhận, giải nén, kiểm tra hoặc xử lý phar archive, đặc biệt khi archive có thể do người dùng hoặc nguồn không tin cậy cung cấp.
  4. Kiểm tra các sự kiện PHP process crash hoặc restart xảy ra đồng thời với việc xử lý phar archive. Đây là tín hiệu điều tra mang tính phòng ngừa, không phải IOC đã được vendor xác nhận.
  5. Xác minh sau cập nhật rằng mọi nhánh PHP đang triển khai đã đạt đúng bản sửa tương ứng. Việc không thấy crash hoặc log liên quan không chứng minh hệ thống không bị ảnh hưởng.
Nguồn (18)
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.

Khám phá các giải pháp khác liên quan