Một lỗ hổng đã được tìm thấy trong Ghostscript có thể cho phép thực thi mã

Cách đây vài ngày họ phát hành tin tức về những gì đã được xác định một lỗ hổng trong Ghostscript (CVE-2020-15900) những gì có thể gây ra sửa đổi tệp và thực thi lệnh tùy ý khi mở các tài liệu PostScript được định dạng đặc biệt.

Đối với những người không quen với Ghostscript nên biết rằng đây là một công cụ kết xuất cho nội dung Postscript và PDF và nó thường được sử dụng để chuyển đổi các tài liệu PDF và Postscript thành hình ảnh cho các mục đích xem trước, hình thu nhỏ và in ấn.

Nó cũng được sử dụng để tái tạo tài liệu chất lượng đầy đủ cho nhiều người xem PDF, bao gồm cả những người xem phổ biến trên Android và được cấp phép bởi một số công ty lớn như Google để hiển thị trên đám mây.

Giới thiệu về lỗ hổng trong Ghostscript

Lỗi được xác định trong việc sử dụng toán tử rsearch PostScript không chuẩn trong tài liệu cho phép gây tràn kiểu uint32_t khi tính toán kích thước, ghi đè các vùng bộ nhớ ra khỏi bộ đệm được gán và giành quyền truy cập vào các tệp trên hệ thống tệp, có thể được sử dụng để tạo giai đoạn tấn công nhằm thực thi mã tùy ý trên hệ thống (ví dụ: bằng cách thêm lệnh vào ~ / .bashrc hoặc ~ / .profile).

Đoạn mã được AFL tìm thấy đã đẩy một chuỗi trống vào ngăn xếp: dấu ngoặc trống (), đã sao chép tham chiếu tới chuỗi này, dẫn đến một ngăn xếp có hai chuỗi trống () () và sau đó thực hiện tra cứu ngược lại. Nói cách khác, nó đang tìm kiếm một chuỗi rỗng trong một chuỗi rỗng, bắt đầu từ cuối.

Thật không may, họ đã bỏ lỡ một trường hợp đường biên trong đó chuỗi trống được tìm kiếm. Khi tìm kiếm một chuỗi trống, điều này được định nghĩa là thành công ngay lập tức - không có gì để tìm kiếm, vì vậy chúng tôi chuyển ngay đến cuối. Tuy nhiên, kết quả phải được chia thành các giá trị trước trận đấu, trận đấu và sau trận đấu. Thật không may, mã giả định rằng chúng tôi đã xem ít nhất một lần và tính toán độ dài của kết quả sau trận đấu không chính xác bằng cách trừ một phần cho số không, dẫn đến giá trị lớn nhất trả về: 4,294,967,295.

Lỗi này đó là một lỗi hỏng bộ nhớ, nơi có khả năng bị hỏng và nó xảy ra mọi lúc. Không cần phải đối phó với các trình bảo vệ ngăn xếp, v.v., chỉ cần đọc và ghi bất cứ thứ gì bạn muốn vào một phân đoạn bộ nhớ lớn. Điều này khiến một người không phải là người viết bài khai thác có kinh nghiệm có thể khai thác nó khá dễ dàng.

Do quy trình này, chuỗi này chưa bao giờ được cấp phát và không chiếm dung lượng thực, nhưng nó có độ dài kéo dài đến một bộ nhớ khác. Cố gắng đọc hoặc ghi bộ nhớ đó trong các địa chỉ ngẫu nhiên sẽ vượt ra ngoài giới hạn bộ nhớ, do đó tất cả các lỗi trong quá trình mờ. Tuy nhiên, chúng tôi có thể lưu trữ tham chiếu để cho phép sử dụng tham chiếu bằng đoạn mã này:

Điều quan trọng là phải tính đến lỗ hổng trong Ghostscript nghiêm trọng hơnvì gói này được sử dụng trong nhiều ứng dụng xử lý PostScript và PDF phổ biến. Ví dụ: Ghostscript được gọi khi tạo hình thu nhỏ trên màn hình nền, khi lập chỉ mục dữ liệu trong nền và khi chuyển đổi hình ảnh.

Để tấn công thành công, trong nhiều trường hợp, chỉ cần tải xuống tệp khai thác hoặc duyệt qua thư mục có nó trong Nautilus là đủ.

Các lỗ hổng trong Ghostscript cũng có thể được khai thác thông qua trình điều khiển hình ảnh dựa trên các gói ImageMagick và GraphicsMagick, truyền tệp JPEG hoặc PNG, chứa mã PostScript thay vì hình ảnh (tệp này sẽ được xử lý trong Ghostscript, vì kiểu MIME được nội dung nhận dạng và không phụ thuộc vào phần mở rộng).

Giải pháp

Sự cố ảnh hưởng đến các phiên bản 9.50 đến 9.52 (Lỗi đã xuất hiện từ phiên bản 9.28rc1, nhưng theo các nhà nghiên cứu xác định lỗ hổng thì nó đã xuất hiện từ phiên bản 9.50).

Nhưng một bản sửa lỗi đã được đề xuất trong phiên bản 9.52.1 ngoài ra vàcập nhật đã được xuất bản gói vá cho một số bản phân phối Linux như Debian, Ubuntu và SUSE.

Trong khi các gói trong RHEL không bị ảnh hưởng.

Fuente: https://insomniasec.com


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: AB Internet Networks 2008 SL
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.