Lỗ Hổng CVE-2025-3155 Trên Ubuntu và GNOME: Đánh Cắp Dữ Liệu Nguy Hiểm

Lỗ hổng trong Yelp, được xác định là CVE-2025-3155, ảnh hưởng đến các cài đặt desktop của Ubuntu và xuất phát từ việc xử lý không đúng nội dung XML trong hệ thống tài liệu trợ giúp của GNOME.

Các hệ thống bị ảnh hưởng

  • Ubuntu 22.04 LTS và các phiên bản desktop sớm hơn
  • Các phiên bản Yelp ≤ 42.1
  • Các thành phần WebKitGTK của GNOME

Chuỗi lỗ hổng

Lỗ hổng khai thác ba thành phần chính:

  1. Xử lý URI Scheme:

    Yelp được đăng ký là trình xử lý mặc định cho các URI `ghelp://`, được sử dụng để mở tài liệu trợ giúp.

  2. Khai thác XInclude:

    Định dạng tài liệu Mallard cho phép bao gồm tệp tùy ý thông qua các chỉ thị XInclude. Ví dụ, kẻ tấn công có thể bao gồm các tệp hệ thống nhạy cảm như `/etc/passwd` bằng cách sử dụng một chỉ thị XML như <include href="/etc/passwd" xmlns="http://www.w3.org/2001/XInclude"/>.

  3. Tiêm kịch bản SVG:

    Trình xử lý XSLT của Yelp sao chép các phần tử `` nguyên vẹn vào HTML đầu ra. Kẻ tấn công có thể nhúng JavaScript vào thẻ SVG để lấy dữ liệu. Ví dụ, một kẻ tấn công có thể bao gồm một kịch bản gửi các tệp bị đánh cắp đến một máy chủ từ xa khi trang web tải.

Kịch bản tấn công

  1. Trang web độc hại:

    Kẻ tấn công lưu trữ một trang web độc hại tự động tải về một tệp `.page` đã được tạo ra đến thư mục Tải về của nạn nhân.

  2. Chuyển hướng trình duyệt:

    Trình duyệt chuyển hướng đến một URI `ghelp:///proc/self/cwd/Downloads`, điều này kích hoạt Yelp phân tích tệp `.page` độc hại.

  3. Bao gồm tệp và thực thi kịch bản:

    Tệp `.page` độc hại bao gồm các tệp hệ thống nhạy cảm (ví dụ: `~/.ssh/id_rsa`) bằng cách sử dụng XInclude. Kịch bản SVG được nhúng thực thi JavaScript tùy ý, lấy dữ liệu thông qua HTTP POST.

Giải pháp và Phản ứng

  • Cập nhật hệ thống:

    Người dùng nên cập nhật hệ thống của họ với các bản vá bảo mật mới nhất cho Yelp. Lệnh cập nhật Yelp là: sudo apt update && sudo apt upgrade yelp.

  • Thu hồi mã SSH:

    Người dùng nên thu hồi các mã SSH của họ để ngăn chặn việc di chuyển mạng theo chiều ngang. Lệnh để thu hồi một mã SSH là: ssh-keygen -p -f ~/.ssh/id_rsa.

  • Tránh các liên kết không tin cậy:

    Người dùng nên tránh nhấp vào các liên kết tùy chỉnh không tin cậy, đặc biệt là những liên kết bắt đầu bằng `ghelp://`.

Canonical đã phát hành các bản vá trong các bản cập nhật bảo mật của Ubuntu được phát hành vào ngày 7 tháng 4 năm 2025. Người dùng được khuyến nghị áp dụng những bản cập nhật này ngay lập tức thông qua các kênh gói tiêu chuẩn.

Ví dụ thực tế

Một exploit proof-of-concept (PoC) cho thấy lỗ hổng bằng cách tạo ra một tệp `.page` độc hại bao gồm nội dung của `~/.ssh/id_rsa` và nhúng một kịch bản SVG để lấy tệp qua HTTP POST.