Lỗ hổng CVE iTerm2: Nguy hiểm RCE cục bộ

Lỗ hổng CVE iTerm2: Nguy hiểm RCE cục bộ

lỗ hổng CVE trong iTerm2 đang thu hút sự chú ý của giới nghiên cứu bảo mật khi một tệp văn bản được tạo độc hại có thể kích hoạt remote code execution (RCE) cục bộ trên macOS. Vấn đề nằm ở cơ chế SSH integration của trình giả lập terminal này.

Lỗ hổng CVE trong iTerm2 và cơ chế SSH integration

Theo nhóm nghiên cứu Califio phối hợp với OpenAI, iTerm2 chấp nhận đầu vào từ terminal output như thể đó là phản hồi hợp lệ từ một phiên SSH đáng tin cậy. Cách triển khai này tạo ra rủi ro bảo mật vì dữ liệu không xác thực có thể giả mạo “conductor” của SSH integration.

iTerm2 sử dụng một script nhỏ gọi là “conductor” chạy trên máy từ xa để phối hợp các tác vụ như xác định shell đăng nhập, thay đổi thư mục và tải tệp lên. Toàn bộ trao đổi diễn ra qua pseudoterminal (PTY), không cần dịch vụ mạng riêng biệt.

Điểm yếu xuất phát từ việc iTerm2 tin cậy mọi nội dung terminal output, kể cả khi dữ liệu đó không đến từ một phiên conductor đã được xác minh. Đây là điều kiện cho lỗ hổng CVE dẫn đến thực thi lệnh cục bộ.

Chuỗi khai thác và tác động hệ thống

Kẻ tấn công có thể chèn các terminal escape sequences vào tệp văn bản, phản hồi máy chủ hoặc nội dung MOTD. Khi người dùng thực hiện lệnh như cat readme.txt trên một tệp bị kiểm soát, các chuỗi giả mạo này được in ra màn hình và đánh lừa iTerm2 rằng một trao đổi SSH hợp lệ đang diễn ra.

Sau đó, iTerm2 tự động khởi chạy quy trình chuẩn, bao gồm kiểm tra môi trường shell và phiên bản Python. Vì tin rằng đang giao tiếp với máy chủ từ xa, ứng dụng tạo yêu cầu thực thi lệnh bằng sshargs do kẻ tấn công kiểm soát và ghi dữ liệu xuống PTY dưới dạng base64.

Do không có kết nối SSH thực sự định tuyến dữ liệu đến máy từ xa, shell cục bộ sẽ nhận chuỗi base64 đó như đầu vào cục bộ. Nếu payload được định dạng khéo léo để chuỗi giải mã thành một đường dẫn tệp hợp lệ, lệnh có thể bị diễn giải thành thao tác local và dẫn đến system bị xâm nhập.

Ví dụ về điều kiện khai thác

Califio mô tả payload sshargs có thể được xây dựng để chuỗi base64 cuối cùng trỏ đến một đường dẫn tương đối hợp lệ, ví dụ ace/c+aliFIo. Nếu kẻ tấn công đặt một payload thực thi tại đường dẫn đó, terminal có thể vô tình thực thi mã độc trong ngữ cảnh cục bộ.

cat readme.txt

Lệnh trên chỉ là ví dụ luồng kích hoạt: việc hiển thị nội dung tệp độc hại có thể đủ để mở đường cho remote code execution cục bộ qua cơ chế SSH integration.

Cảnh báo CVE và trạng thái bản vá

Nhóm nghiên cứu đã báo cáo lỗ hổng CVE này cho iTerm2 vào ngày 30/03. Bản sửa đã được commit vào ngày hôm sau, nhưng chưa có trong các bản phát hành ổn định tại thời điểm được nêu.

Thông tin tham chiếu về lỗ hổng có thể theo dõi tại trang phân tích của Califio: https://blog.calif.io/p/mad-bugs-even-cat-readmetxt-is-not.

Người dùng cần tránh đọc các tệp văn bản không đáng tin cậy hoặc kết nối tới các SSH server chưa kiểm chứng, vì cả hai tình huống đều có thể tạo ra mối đe dọa từ terminal output độc hại.

Phạm vi ảnh hưởng và điều kiện rủi ro

lỗ hổng CVE này ảnh hưởng trực tiếp đến môi trường sử dụng iTerm2 trên macOS, đặc biệt khi tính năng SSH integration đang được bật. Tác động chính là thực thi mã cục bộ thông qua nội dung hiển thị tưởng như vô hại.

Trong bối cảnh vận hành thực tế, bất kỳ nguồn nào có thể đưa text output vào terminal — như tệp văn bản, phản hồi máy chủ, hoặc MOTD — đều có thể trở thành vector cho cảnh báo CVE này nếu dữ liệu được tạo độc hại.

Để đối chiếu thêm thông tin lỗ hổng và tình trạng công bố, có thể tham khảo cơ sở dữ liệu NVD: https://nvd.nist.gov/.

Điểm kỹ thuật cần lưu ý

  • Vector kích hoạt: hiển thị tệp văn bản hoặc terminal output được tạo độc hại.
  • Cơ chế bị lợi dụng: SSH integration và conductor protocol qua PTY.
  • Hành vi khai thác: giả mạo phản hồi để đẩy iTerm2 sang đường thực thi fallback.
  • Tác động: remote code execution cục bộ trên máy người dùng.
  • Điều kiện rủi ro: đọc tệp không tin cậy hoặc kết nối SSH không xác thực.

Giảm thiểu rủi ro bảo mật

Cho đến khi bản vá được triển khai rộng rãi trong bản stable, người dùng nên coi đây là một cảnh báo CVE nghiêm trọng đối với quy trình đọc dữ liệu từ nguồn chưa kiểm chứng. Việc hạn chế mở tệp lạ và kiểm soát nguồn SSH là biện pháp trực tiếp để giảm rủi ro bảo mật.

Trong môi trường nhạy cảm, cần giám sát mọi terminal output bất thường và tránh cho phép nội dung không tin cậy tác động vào phiên terminal có bật SSH integration. Đây là bối cảnh điển hình của một lỗ hổng CVE có thể bị khai thác chỉ bằng thao tác hiển thị nội dung.