Tràn bộ đệm ngăn xếp khi phân tích CMS trong OpenSSL có thể gây từ chối dịch vụ hoặc thực thi mã từ xa

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

Lỗ hổng CVE-2025-15467 là lỗ hổng Out-of-bounds Write ảnh hưởng tới OpenSSL (phiên bản bị ảnh hưởng: 3.6.0 – < 3.6.1, 3.5.0 – < 3.5.5 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 Nghiêm trọng, với điểm CVSS 9.8. Lỗ hổng này đã có mã hoặc bằng chứng khai thác công khai, nhưng điều đó chưa xác nhận việc khai thác trong thực tế.

Giới thiệu chung

Dữ liệu gốc

Tóm tắt vấn đề: Việc phân tích thông điệp CMS AuthEnvelopedData hoặc EnvelopedData với các tham số AEAD được tạo thủ công một cách độc hại có thể kích hoạt lỗi tràn bộ đệm trên stack. Tóm tắt tác động: Lỗi tràn bộ đệm trên stack có thể dẫn đến crash, gây Từ chối dịch vụ hoặc có khả năng thực thi mã từ xa. Khi phân tích các cấu trúc CMS (Auth)EnvelopedData sử dụng các cipher AEAD như AES-GCM, IV (Initialization Vector) được mã hóa trong các tham số ASN.1 được sao chép vào một bộ đệm cố định trên stack mà không xác minh rằng độ dài của nó phù hợp với đích. Kẻ tấn công có thể cung cấp một thông điệp CMS được tạo thủ công với IV có kích thước quá lớn, gây ra thao tác ghi ngoài giới hạn trên stack trước khi bất kỳ quá trình xác thực hoặc kiểm tra tag nào diễn ra. Các ứng dụng và dịch vụ phân tích nội dung CMS hoặc PKCS#7 không đáng tin cậy bằng các cipher AEAD, ví dụ S/MIME (Auth)EnvelopedData với AES-GCM, đều dễ bị ảnh hưởng. Vì lỗi tràn xảy ra trước quá trình xác thực, không cần material khóa hợp lệ để kích hoạt lỗi. Mặc dù khả năng khai thác để thực thi mã từ xa phụ thuộc vào các biện pháp giảm thiểu của nền tảng và toolchain, primitive ghi trên stack này vẫn tạo ra rủi ro nghiêm trọng. Các FIPS module trong 3.6, 3.5, 3.4, 3.3 và 3.0 không bị ảnh hưởng bởi vấn đề này vì triển khai CMS nằm ngoài ranh giới OpenSSL FIPS module. OpenSSL 3.6, 3.5, 3.4, 3.3 và 3.0 dễ bị ảnh hưởng bởi vấn đề này. OpenSSL 1.1.1 và 1.0.2 không bị ảnh hưởng bởi vấn đề này.

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

  • OpenSSL từ 3.6.0 đến trước 3.6.1 bị ảnh hưởng. OpenSSL 3.6.1 là bản sửa được xác nhận cho nhánh này.
  • OpenSSL từ 3.5.0 đến trước 3.5.5 bị ảnh hưởng. OpenSSL 3.5.5 là bản sửa được xác nhận cho nhánh này.
  • OpenSSL từ 3.4.0 đến trước 3.4.4 bị ảnh hưởng. OpenSSL 3.4.4 là bản sửa được xác nhận cho nhánh này.
  • OpenSSL từ 3.3.0 đến trước 3.3.6 bị ảnh hưởng. OpenSSL 3.3.6 là bản sửa được xác nhận cho nhánh này.
  • OpenSSL từ 3.0.0 đến trước 3.0.19 bị ảnh hưởng. OpenSSL 3.0.19 là bản sửa được xác nhận cho nhánh này.
  • OpenSSL 1.1.1 và 1.0.2 không bị ảnh hưởng theo advisory. Các FIPS module trong 3.6, 3.5, 3.4, 3.3 và 3.0 không bị ảnh hưởng vì triển khai CMS nằm ngoài ranh giới FIPS module.
  • Bản ghi được cung cấp không xác lập trạng thái cho những nhánh khác ngoài các nhánh nêu trên.

Chi tiết kỹ thuật

Khi phân tích cấu trúc CMS AuthEnvelopedData hoặc EnvelopedData sử dụng cipher AEAD như AES-GCM, OpenSSL sao chép IV được mã hóa trong tham số ASN.1 vào một bộ đệm cố định trên stack mà không kiểm tra độ dài. IV vượt quá kích thước đích có thể gây ghi vượt giới hạn trên stack trước khi xảy ra xác thực hoặc kiểm tra authentication tag. Kẻ tấn công chỉ cần đưa một thông điệp CMS hoặc PKCS#7 được tạo thủ công đến ứng dụng xử lý nó; không cần khóa hợp lệ để kích hoạt lỗi. Khả năng tiếp cận qua mạng hay cục bộ phụ thuộc vào việc ứng dụng nào nhận và phân tích nội dung này. Việc biến primitive ghi trên stack thành thực thi mã từ xa phụ thuộc vào nền tảng và các biện pháp bảo vệ của toolchain, nên không thể khẳng định RCE xảy ra trong mọi môi trường. CMS nằm ngoài ranh giới của các FIPS module được nêu trong advisory, vì vậy trạng thái không bị ảnh hưởng của FIPS module không thay thế cho việc kiểm tra ứng dụng sử dụng CMS bên ngoài module.

Khả năng khai thác

  • Lỗi có thể bị kích hoạt khi ứng dụng hoặc dịch vụ phân tích nội dung CMS hay PKCS#7 không đáng tin cậy với cipher AEAD, chẳng hạn S/MIME AuthEnvelopedData dùng AES-GCM.
  • Việc ghi vượt giới hạn xảy ra trước authentication hoặc tag verification, vì vậy không cần material khóa hợp lệ. Tuy nhiên, kẻ tấn công vẫn phải đưa được nội dung đến một parser dễ bị ảnh hưởng, và cách thực hiện điều đó phụ thuộc vào từng triển khai.
  • Không thể kết luận mọi hệ thống đều có thể bị tấn công trực tiếp qua mạng. Một số triển khai có thể yêu cầu người dùng hoặc workflow xử lý thông điệp trước khi parser được gọi.
  • Một kho mã khai thác công khai của bên thứ ba đã được ghi nhận. Kho này không chứng minh rằng RCE hoạt động trên mọi nền tảng, vì OpenSSL mô tả kết quả RCE là phụ thuộc vào mitigation của nền tảng và toolchain.
  • Bản ghi và các nguồn đã kiểm tra không xác lập một chiến dịch, nạn nhân hoặc hoạt động khai thác thực tế cụ thể.

Tác động kỹ thuật

Lỗi tạo ra thao tác ghi vượt giới hạn trên stack của tiến trình đang phân tích thông điệp CMS, có thể làm hỏng trạng thái thực thi và gây crash. Trong điều kiện phù hợp, thao tác ghi này có thể được chuyển thành thực thi mã từ xa, nhưng OpenSSL không xác nhận rằng kết quả đó xảy ra trên mọi nền tảng hoặc cấu hình bảo vệ. Nếu thực thi mã xảy ra, mã thường sẽ có quyền của tiến trình bị ảnh hưởng; việc leo thang đặc quyền không được bằng chứng hiện có xác lập. Do đó tác động tổ chức có thể bao gồm gián đoạn dịch vụ, mất tính toàn vẹn hoặc bí mật của dữ liệu mà tiến trình truy cập, nhưng không nên diễn giải lỗi này là bằng chứng đã xảy ra xâm phạm.

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

  • Ứng dụng xử lý CMS hoặc S/MIME có thể bị dừng đột ngột khi nhận thông điệp được tạo thủ công, gây gián đoạn dịch vụ hoặc làm gián đoạn workflow email, ký tài liệu và quản lý chứng thư.
  • Nếu primitive ghi trên stack được khai thác thành công để thực thi mã, tiến trình bị ảnh hưởng có thể bị kiểm soát trong phạm vi quyền của nó, tạo rủi ro đối với tính bí mật, toàn vẹn và khả dụng của dữ liệu mà tiến trình truy cập.
  • Không có bằng chứng cho thấy mọi triển khai đều dẫn đến RCE hoặc đã xảy ra xâm phạm dữ liệu. Mức độ tác động thực tế phụ thuộc vào ứng dụng gọi parser, quyền của tiến trình và các cơ chế bảo vệ runtime.
  • Các hệ thống chỉ dùng FIPS module vẫn cần được đánh giá riêng nếu ứng dụng của chúng sử dụng CMS nằm ngoài ranh giới module.

Cách khắc phục

  1. Nâng cấp OpenSSL lên bản sửa tương ứng với nhánh đang triển khai: 3.6.1, 3.5.5, 3.4.4, 3.3.6 hoặc 3.0.19.
  2. Ưu tiên cập nhật mọi dịch vụ, mail client và ứng dụng nhận hoặc phân tích CMS, PKCS#7 hay S/MIME không đáng tin cậy. Xác minh phiên bản thư viện thực tế trong runtime thay vì chỉ kiểm tra package metadata.
  3. Cho đến khi cập nhật hoàn tất, nếu vận hành cho phép, ngăn nội dung CMS hoặc PKCS#7 không đáng tin cậy đến parser dễ bị ảnh hưởng hoặc cô lập workflow xử lý nội dung đó. Đây là biện pháp phòng ngừa chung, không phải mitigation cụ thể được OpenSSL xác nhận.
  4. Sau khi cập nhật, khởi động lại hoặc thay thế các tiến trình, container và image đang nạp thư viện OpenSSL cũ, rồi kiểm tra lại inventory để bảo đảm không còn nhánh bị ảnh hưởng.
  5. Không coi việc sử dụng FIPS module là bằng chứng rằng toàn bộ ứng dụng an toàn. Advisory chỉ loại trừ phần CMS nằm ngoài ranh giới FIPS module, nên các ứng dụng gọi CMS vẫn phải được đánh giá và cập nhật riêng.

Cách phát hiện

  1. Kiểm kê phiên bản OpenSSL thực tế được các dịch vụ, mail client và ứng dụng xử lý tài liệu sử dụng, đặc biệt khi các thành phần đó phân tích CMS, PKCS#7 hoặc S/MIME.
  2. Xác định các workflow nhận nội dung CMS không đáng tin cậy và sử dụng cipher AEAD như AES-GCM. Kiểm tra cả thư viện được liên kết trong runtime, không chỉ phiên bản package trên hệ điều hành.
  3. Đối chiếu từng phiên bản với các nhánh bị ảnh hưởng và bản sửa tương ứng trong affected_summary, sau đó xác nhận tiến trình đã được khởi động lại hoặc image đã được thay thế sau khi cập nhật.
  4. Rà soát các lần crash, abnormal termination hoặc lỗi xử lý trong những tiến trình phân tích CMS sau khi chúng nhận nội dung không đáng tin cậy. Đây là biện pháp giám sát phòng ngừa, không phải indicator riêng đã được OpenSSL xác nhận.
  5. Không có IOC cụ thể được thiết lập trong bằng chứng đã xem xét. Việc không thấy log crash không chứng minh hệ thống an toàn, vì lỗi có thể nằm trong workflow không ghi nhận đầy đủ sự kiện.
Nguồn (55)
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á CyStack VulnScan