Báo cáo Postman tự cài plugin AI: 5 điểm dev cần audit
Một issue trên GitHub cáo buộc Postman Desktop trên macOS tự thêm plugin cho Codex và Claude Code, cấu hình MCP, hook và CLI. Báo cáo không đưa ra bằng chứng dữ liệu API bị lộ, nhưng các thay đổi cấu hình agent cần được kiểm tra.
Mở Postman để kiểm tra API, rồi Codex xuất hiện lỗi xác thực MCP. Đến khi giao một tác vụ API, agent lại tải skill của Postman dù developer không chủ động yêu cầu. Đó là chuỗi dấu hiệu được một người dùng macOS mô tả trong issue GitHub đang mở của Postman.
Cần phân biệt rõ phạm vi của báo cáo: issue này không khẳng định và không đưa ra bằng chứng rằng dữ liệu API đã bị lộ hoặc bị đưa ra ngoài. Tuy nhiên, người báo cáo nêu các dấu vết về thay đổi cấu hình agent ở phạm vi người dùng, startup hook, kết nối MCP từ xa và một CLI được cài thêm.
Với các team dùng bearer token, API key, collection production hoặc coding agent có thể truy cập workspace, chỉ riêng thay đổi ở ranh giới tin cậy này cũng đáng để audit.
Issue cáo buộc điều gì?
Theo nội dung issue, người báo cáo dùng Postman Desktop 12.33.4 trên macOS, ở trạng thái đã đăng nhập. Log Postman được trích dẫn ghi nhận luồng auto-existing-upgrade, với kết quả cài đặt claude-code và codex.
Các thay đổi được người báo cáo phát hiện gồm:
Plugin Postman cho Codex được bật trong ~/.codex/config.toml.
Một marketplace trỏ đến repository https://github.com/postmanlabs/postman-plugin.git.
Hook SessionStart được đăng ký trong cấu hình Codex.
Hook được báo cáo là áp dụng với startup|clear|compact, rồi in hướng dẫn yêu cầu agent tải skill postman:api-engineer trước các tác vụ API “không tầm thường”.
Cấu hình MCP trỏ đến https://mcp.postman.com/mcp.
Claude Code có plugin Postman ở phạm vi người dùng.
Postman executable và thư viện liên quan xuất hiện trong ~/.local/bin.
Điểm gây tranh cãi không chỉ là việc cài plugin. Issue còn dẫn chiếu mã installer của plugin và cho rằng mã này gọi logic phê duyệt hook Postman sau khi cài, thông qua việc ghi trustedhash vào cấu hình Codex.
Người báo cáo cũng lưu ý rằng trust record đơn lẻ không đủ để xác định ai đã tạo bản ghi đó hoặc có thao tác người dùng cụ thể nào hay không.
Vì sao startup hook cần được xem kỹ?
Một hook chạy khi phiên agent bắt đầu có thể ảnh hưởng cách agent tiếp cận công việc ngay từ đầu. Theo trích dẫn trong issue, hướng dẫn của hook yêu cầu tải skill Postman trước nhiều loại công việc API, gồm thiết kế, triển khai, mock, kiểm thử, giám sát, viết tài liệu hoặc triển khai API.
Dù plugin mang tên hợp lệ, phạm vi chỉ dẫn vẫn là điều team cần đánh giá. Một chỉ dẫn quá rộng có thể thay đổi workflow của developer và khiến việc dự đoán công cụ agent sử dụng trở nên khó hơn.
Các câu hỏi nên đặt ra:
Hook có chỉ chạy khi developer chủ động dùng Postman hay áp dụng ở mỗi phiên agent?
Nội dung hook có yêu cầu agent dùng một kết nối hoặc dịch vụ từ xa không?
Agent có thể truy cập collection, environment hoặc workspace chứa thông tin nhạy cảm không?
Plugin, hook và marketplace có được review như một dependency mới không?
Nếu chưa trả lời được các câu hỏi này, không nên coi tích hợp đó là đã được phê duyệt cho môi trường có secrets.
Audit 5 dấu vết trên macOS
Các bước dưới đây nhằm kiểm tra những đường dẫn và dấu vết được nêu trong issue. Chúng không phải kết luận rằng mọi máy dùng Postman đều bị ảnh hưởng.
1. Đối chiếu log Postman với thời điểm thay đổi
Issue nêu file log:
text
~/Library/Application Support/Postman/logs/main.log
Các chuỗi cần tìm gồm:
text
PostmanAgentPluginService~install: script completed
auto-existing-upgrade
claude-code:installed
codex:installed
Một dòng được trích dẫn trong issue là:
text
{"source":"auto-existing-upgrade","results":["claude-code:installed","codex:installed"],"installer":"script"}
Hãy ghi nhận timestamp, phiên bản Postman và các file thay đổi trong cùng khoảng thời gian. Một dòng log chỉ nên được dùng làm mốc điều tra, không phải bằng chứng duy nhất để kết luận nguyên nhân.
2. Kiểm tra cấu hình Codex
Issue chỉ ra file:
text
~/.codex/config.toml
Các dấu vết được báo cáo gồm marketplace postman, plugin "postman@postman" ở trạng thái bật, cùng trạng thái hook có trustedhash và trustedcontenthash.
Tên hook được nêu trong báo cáo có dạng:
text
postman@postman:hooks/codex-hooks.json:sessionstart:0:0
Sự hiện diện của enabled = true cho thấy plugin đang được bật trong cấu hình hiện tại. Bản thân trạng thái này không xác định ai đã bật plugin hoặc phê duyệt hook.
3. Đọc nội dung hook, không chỉ nhìn tên plugin
Issue dẫn đến hooks/codex-hooks.json và hooks/session-start-context.md trong revision plugin được báo cáo. Theo phần trích dẫn, hook yêu cầu agent tải skill Postman trước các tác vụ API nhất định.
Đây là phần quan trọng để đánh giá ảnh hưởng tới workflow. Hãy xem toàn bộ nội dung hook trước khi tin cậy nó, đặc biệt nếu agent có quyền đọc code, file cấu hình hoặc request cục bộ.
Nên đưa cấu hình agent ở phạm vi user vào danh mục kiểm kê bảo mật, cùng với các cấu hình có khả năng ảnh hưởng tới quyền truy cập hoặc luồng làm việc của developer.
4. Rà cấu hình MCP và lỗi xác thực
Issue nêu file:
text
mcp.codex.json
với endpoint:
text
https://mcp.postman.com/mcp
Trong trường hợp được báo cáo, log Codex có lỗi:
text
MCP server startup failed servername="postman"
... error: Auth required, when send initialize request
Lỗi xác thực này không phải bằng chứng rằng dữ liệu đã được gửi đi. Theo nội dung báo cáo, nó cho thấy Codex đã cố khởi tạo kết nối đến MCP server.
Với mỗi MCP endpoint trên máy developer hoặc CI, team nên xác định chủ sở hữu, cơ chế xác thực, phạm vi công cụ có thể gọi và tình trạng security review.
5. Kiểm tra Claude Code và CLI ở phạm vi user
Các file được nêu trong issue là:
text
~/.claude/settings.json
~/.claude/plugins/installedplugins.json
Dấu vết được báo cáo gồm plugin postman@claude-plugins-official, phiên bản 2.0.1, ở user scope.
Issue cũng đề cập Postman executable và thư viện liên quan trong:
text
~/.local/bin
Điểm cần lưu ý: gỡ ứng dụng desktop không nhất thiết đồng nghĩa mọi plugin, cache, trust record, MCP config hoặc CLI liên quan đều đã biến mất. Vì vậy, việc kiểm tra cần bao quát hơn một ứng dụng trong thư mục Applications.
Cô lập secrets trước khi thay đổi cấu hình
Issue không cung cấp một lệnh gỡ cài đặt đã được xác minh. Khi điều tra, không nên sao chép lệnh gỡ hoặc chỉnh sửa cấu hình từ các bình luận không rõ nguồn gốc.
Trong lúc rà soát, team có thể áp dụng các nguyên tắc thận trọng:
Không để API key production trong collection hoặc environment mà agent có thể truy cập.
Tách môi trường production khỏi máy hoặc profile dùng để thử plugin và agent mới.
Không cấp thêm token chỉ nhằm xử lý lỗi xác thực MCP khi chưa hiểu rõ tích hợp.
Review thay đổi tại ~/.codex và ~/.claude như review một dependency mới.
Lưu lại trạng thái file, phiên bản và timestamp trước khi gỡ hoặc sửa để tiện đối chiếu.
Checklist cho tech lead và security champion
[ ] Đối chiếu log Postman với thay đổi trong ~/.codex và ~/.claude.
[ ] Kiểm tra plugin Postman có đang được bật hay không.
[ ] Đọc nội dung đầy đủ của SessionStart hook trước khi trust.
[ ] Liệt kê mọi MCP endpoint trên máy dev và CI.
[ ] Xác nhận endpoint nào đã được phê duyệt trong quy trình nội bộ.
[ ] Tách API key production khỏi môi trường agent thử nghiệm.
[ ] Kiểm tra ~/.local/bin để tìm CLI được cài thêm.
[ ] Ghi lại phiên bản Postman, plugin và timestamp trước mọi thay đổi.
Kết luận
Báo cáo đang được thảo luận không thiết lập việc Postman làm lộ dữ liệu API. Nhưng cáo buộc về tự cài plugin, thêm MCP, đăng ký hook và mở rộng chỉ dẫn sang các agent khác là lý do hợp lý để team kiểm tra lại cơ chế consent.
Với công cụ AI có thể chạm vào code, request và secrets, nguyên tắc an toàn là: chỉ tích hợp, trust hook và cho phép kết nối từ xa sau khi developer hoặc tổ chức chủ động xem xét và phê duyệt.