Bỏ qua tới nội dung chính
Quay lại tin tức

Đã tìm thấy lỗi thực thi trùng lặp trong công cụ MCP thông qua phân tích tĩnh (không có LLM)

Hacker News LLM· mbelckadi· 17/8/2026general

URL bài viết: https://www.getnexum.dev/blog/nexum-004-fabian-williams URL nhận xét: https://news.ycombinator.com/item?id=49329849 Điểm: 1 # Bình luận: 0

Nghiên cứu điển hình: NEXUM-004 IdempotencyThiếu trên thông số MCP thực - Nexum nexum sản phẩm Blog Đăng ký GitHub Quét API của bạn → NGHIÊN CỨU TRƯỜNG HỢP Ngày 17 tháng 5 năm 2026 NEXUM-004 trên thông số kỹ thuật thực tế: cách một cửa hàng MCP công cộng đóng một Phát hiện thiếu quyền lực trong một ngày Đây không phải là thông số demo. Fabian Williams (@fabianwilliams) đã xây dựng một cửa hàng công khai, có thể gọi MCP — một luồng mua hàng thực sự, trực tiếp trên fabswill.com. Khi các quy tắc của Nexum được thực hiện bằng tay theo thông số kỹ thuật của anh ấy, một trong số chúng đã thất bại: NEXUM-004. Đây là những gì đã xảy ra, theo lời nói của chính anh ấy và yêu cầu kéo của chính anh ấy. Thông số kỹ thuật Mặt tiền cửa hàng của Fabian phục vụ một điểm cuối có thể gọi MCP tạo ra một giao thức trung lập, giống hệt nhau Biên nhận dấu vết kiểm tra bất kể người gọi — anh ấy đã thử nghiệm nó với cả Claude Desktop được lưu trữ trên máy chủ và một Qwen3.6 27B hoàn toàn cục bộ chạy ngoại tuyến trên máy tính xách tay của anh ấy, sáu lần kiểm tra thời gian chạy giống nhau, kết quả tương tự. Anh ấy đã đăng nó dưới dạng chủ đề trên X vào ngày 16 tháng 5 năm 2026. Mehdi trả lời vào ngày hôm sau: quá trình kiểm tra thời gian chạy có vẻ chắc chắn, nhưng thông số kỹ thuật trông như thế nào trước khi nó đến tay khách hàng? Mẫu URL biên nhận - một điểm cuối đáp ứng cả hai chế độ xem kiểm toán an ninh và thanh toán tài chính - rất thú vị từ góc độ bán kính bùng nổ: một điểm cuối phục vụ hai người tiêu dùng cũng là một điểm cuối mà tổng đài viên có thể gọi cho cả hai. Fabian đã nhận lời đề nghị. Hệ nhị phân của máy quét Nexum vẫn chưa được công khai nên anh ấy đã bước đi thông số buy_free_bundle dựa trên năm quy tắc được liệt kê thủ công của bảng kê khai. Bốn đã vượt qua hoặc không áp dụng. Một thất bại. Phát hiện - NEXUM-004 IdempotencyMissing CAO buy_free_bundle là một công cụ MCP có tính đột biến: nó tạo ra một biên lai, thêm một liên hệ vào Brevo, tạo ra mã thông báo tải xuống có chữ ký JOSE và gửi email thực hiện. Công cụ này inputSchema không hiển thị Khóa Idempotency. Bất kỳ đại lý nào thử lại hết thời gian chờ — hành vi thử lại mặc định trong hầu hết các chính sách máy khách LLM-SDK — sẽ phát hành hai lần nhóm và gửi email gấp đôi. Tại sao những người bảo vệ thời gian chạy không bắt được nó Mặt tiền cửa hàng của Fabian đã có sẵn quản trị thời gian chạy: giới hạn tốc độ 5 yêu cầu mỗi giờ cho mỗi IP và mức chi phí trần là $5/ngày. Không ai kích hoạt lỗi này. Hai lần thử lại trong cùng một giờ cả hai đều hạ cánh thoải mái dưới giới hạn tỷ lệ trong lần thử đầu tiên. Chi phí phát hành gói miễn phí trùng lặp không nơi nào gần mức trần hàng ngày. Như Fabian đã nói, đó chính xác là khoảng cách về chiều sâu phòng thủ của Nexum. dự đoán khung: bộ bảo vệ thời gian chạy và đánh giá thông số kỹ thuật tĩnh phát hiện các loại lỗi khác nhau. A kiểm tra cấp độ thông số kỹ thuật trên chính lược đồ sẽ nắm bắt được những biện pháp bảo vệ dựa trên chi phí và khối lượng yêu cầu về mặt cấu trúc không thể nhìn thấy. Cách khắc phục – PR #1 Fabian đã gửi bản sửa lỗi ngay trong ngày, hợp nhất vào ngày 17 tháng 5 năm 2026: Lược đồ. Đã thêm idempotency_key (tùy chọn, 8–128 ký tự, mẫu [A-Za-z0-9._-]) vào inputSchema của công cụ MCP, với mô tả công cụ được cập nhật để đề xuất cho các đại lý sản xuất. Tiêu đề HTTP. Cả /api/a2a/mcp và /api/a2a/purchase cũng chấp nhận tiêu đề yêu cầu Idempotency-Key tiêu chuẩn — đối số công cụ sẽ thắng nếu có cả hai. Kho. Mô-đun idempotency.ts mới được hỗ trợ bởi Azure Table Storage. DiskKey và RowKey là các giá trị băm — không có khóa thô hoặc email nào được lưu trữ. Phát lại ngữ nghĩa, kiểu sọc. Trên mọi yêu cầu có khóa hợp lệ, bảng sẽ được kiểm tra trước khi chạy xác thực đầu vào. Khi có lần truy cập, biên nhận ban đầu được tải từ bộ lưu trữ Blob và được trả về chính xác như hiện trạng. Chỉ những thành công mới được lưu trữ. Biên nhận lỗi không bao giờ được lưu trữ, do đó, một lỗi xuôi dòng tạm thời (ví dụ như lỗi Brevo) không bị ảnh hưởng bởi lỗi được lưu trong bộ nhớ đệm — thao tác thử lại của tác nhân sẽ chạy lại luồng như dự định. Không mở được. Cả hai lần truy cập bộ đệm bị thiếu hoặc ghi không thành công đều bị nuốt chửng thay vì hiển thị dưới dạng lỗi. Idempotency là một vành đai an toàn ở đây, không phải là một chế độ thất bại mới. Những hạn chế v1 đã biết Fabian đã ghi lại những điều này trong chính PR, thay vì bỏ qua chúng: Các yêu cầu đồng thời có cùng một khóa có thể vừa bỏ sót bộ đệm vừa chạy luồng - lần ghi cuối cùng sẽ thắng trên bảng và hai biên nhận được ghi vào Blob. Khóa đang thực hiện theo kiểu Stripe (đặt trạng thái thành xử lý theo đồng thời lạc quan, trả về 409 khi va chạm) là quá trình tăng cường v2 theo kế hoạch. Chưa có bảng TTL - ánh xạ tồn tại cho đến khi được thu thập theo cách thủ công. Chi phí không đáng kể ở khối lượng demo; được gắn cờ để xem lại hơn 10 nghìn hàng trước đây. Fabian Williams @fabianwilliams “Tín dụng khi đến hạn @MBelckadi - bảng kê khai tin cậy của bạn là một lược đồ phân tích tĩnh rõ ràng.” Ngày 17 tháng 5 năm 2026 Tại sao điều này lại quan trọng Bảo vệ thời gian chạy — giới hạn tốc độ, trần chi phí — chi phối hành vi: tần suất và số lượng. Họ không nói gì về việc liệu một lệnh gọi, được thực hiện đúng một lần như thiết kế, có an toàn để thử lại hay không. Việc đọc thông số kỹ thuật tĩnh sẽ phát hiện loại rủi ro đó trước khi tác nhân đầu tiên gọi công cụ — bảo vệ chuyên sâu dựa trên quản trị thời gian chạy chứ không phải là sự thay thế cho nó. Đó là toàn bộ tiền đề đằng sau Chứng chỉ Nexum. Quét API của bạn Tác nhân máy chủ MCP của bạn có an toàn không? Tải lên thông số OpenAPI của bạn và nhận báo cáo Nexum Cert + PDF sau vài giây. Miễn phí. Không cần tài khoản. Quét API của bạn miễn phí → Xem sổ đăng ký nexum Hợp đồng giữa đại lý và cơ sở hạ tầng của bạn GitHub Thông số chứng chỉ Nexum getnexum.dev Nexum · Đặc tả mở · Giấy phép MIT

Nguồn tin: Hacker News LLM — Tác giả: mbelckadi. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.