Codex CLI tự động cài tiến trình nền thường trú: Tiện lợi hay mối lo bảo mật?
Kể từ phiên bản 0.157.0, Codex CLI của OpenAI mặc định khởi tạo một tiến trình nền (daemon) thường trú, tự sao chép và tự cập nhật mà không hỏi người dùng. Cộng đồng lập trình viên phản ứng gay gắt vì lo ngại về quyền kiểm soát, bảo mật và tính ổn định của công cụ.

Codex CLI tự động cài tiến trình nền thường trú: Tiện lợi hay mối lo bảo mật?
Codex CLI — công cụ dòng lệnh dành cho lập trình viên của OpenAI — đang gây tranh cãi sau khi người dùng phát hiện kể từ phiên bản 0.157.0, công cụ này mặc định khởi chạy một tiến trình nền (daemon) thường trú, tự cập nhật mà không hề hỏi ý kiến. Vấn đề đã được báo cáo trên GitHub (issue #48195) và nhanh chóng thu hút sự chú ý của cộng đồng phát triển phần mềm.
Chuyện gì đang xảy ra với Codex CLI?
Theo báo cáo từ người dùng Yihua-Liu-1997, chỉ cần mở một phiên Codex tương tác là hệ thống sẽ tự động kích hoạt một loạt hành vi đáng ngờ:
- Khởi chạy một daemon nền thường trú (
codex app-server --managed-daemon) chạy trong phiên riêng, không có TTY, và tiếp tục tồn tại ngay cả sau khi mọi cửa sổ Codex đã đóng (chuyển sang tiến trình cha là PID 1). - Sao chép toàn bộ gói nền tảng (~374 MB, bao gồm
codex,codex-code-mode-host, và các công cụ đi kèm như bwrap/zsh/rg) vào thư mục~/.codex/packages/app-server-daemon/releases/. Từ đó, backend chạy trên bản sao này thay vì phiên bản người dùng cài đặt. - Khởi động trình cập nhật tách rời (
codex app-server daemon pid-update-loop), kiểm tra bản mới sau 5 phút rồi mỗi giờ một lần, tự tải về và khởi động lại backend — thao tác này có thể ngắt các phiên đang xử lý. - Kế thừa nguyên trạng biến môi trường của phiên đầu tiên khởi chạy daemon. Ví dụ, nếu người dùng dùng script bao bọc để thiết lập
HTTPS_PROXYtheo từng lần chạy, daemon sẽ giữ mãi proxy của phiên đầu tiên, bất kể các phiên sau cấu hình thế nào.
Vì sao lập trình viên phản đối?
Phản ứng trên GitHub cho thấy đây không chỉ là vấn đề kỹ thuật đơn thuần:
"Những thứ như thế này không nên tự tạo ra những server và tiến trình bí ẩn chỉ sau một bản tăng số phiên bản nhỏ mà không thông báo cho người dùng." — megahall
Nhiều người dùng xác nhận CLI gần như không dùng được sau khi gặp lỗi này, đặc biệt trên Windows. Một người dùng Windows 10 LTSC cho biết phải chỉnh thủ công daemon_auto_start = false trong config.toml mới giải quyết được.
Về bản chất, vấn đề nằm ở ranh giới danh tính thực thi: một khi CLI tự sao chép sang thư mục quản lý riêng và có thể tự thay thế, tiến trình phục vụ các tác vụ tiếp theo không còn chắc chắn là gói phần mềm mà người dùng đã cài đặt. Điều này đặc biệt nghiêm trọng với các tổ chức có quy trình kiểm soát phiên bản phần mềm chặt chẽ.
Giải pháp tạm thời cho người dùng Việt Nam
Nếu bạn đang dùng Codex CLI và gặp tình trạng tương tự, có thể vô hiệu hóa tính năng này bằng các lệnh sau:
codex features disable daemon_auto_start
codex app-server daemon stop
pkill -f 'app-server daemon pid-update-loop'
rm -rf ~/.codex/packages/app-server-daemon
Lưu ý: lệnh daemon stop được báo cáo là không dừng được tiến trình cập nhật, nên cần dùng pkill để xử lý triệt để.
Phía OpenAI đã phản ứng thế nào?
Đáng chú ý, một commit tham chiếu đến issue này đã xuất hiện với thông điệp "disable daemon auto-start by default", cho thấy nhóm phát triển Codex đang cân nhắc đảo ngược mặc định. Tuy nhiên, một số người dùng vẫn kêu gọi bổ sung thêm cơ chế "biên lai thực thi" cho mỗi phiên kết nối, bao gồm:
- Phiên bản CLI của client
- Mã băm (digest) của tệp nhị phân daemon
- Thế hệ (generation) của daemon
- Trạng thái trình cập nhật
- Thế hệ môi trường kế thừa
Những thông tin này sẽ giúp lập trình viên xác định chính xác tiến trình nào đang thực sự phục vụ tác vụ của họ.
Bài học cho hệ sinh thái công cụ AI
Sự việc này phản ánh một căng thẳng ngày càng rõ trong các công cụ AI hiện đại: giữa trải nghiệm liền mạch (tự cập nhật, tự chạy nền để phản hồi nhanh) và quyền kiểm soát của người dùng. Với các lập trình viên — nhóm người dùng đặc biệt nhạy cảm với những gì chạy trên máy mình — việc mặc định bật các tiến trình nền thường trú mà không thông báo là điều khó chấp nhận.
Các nhà phát triển công cụ AI tại Việt Nam cũng nên rút ra bài học tương tự: những tính năng "chạy ngầm tiện lợi" cần được đặt ở chế độ opt-in (tự nguyện tham gia), có thông báo rõ ràng, và luôn cho phép người dùng tắt hoàn toàn khi cần.

