Một hình minh họa trừu tượng được tạo trên nền xanh navy thẫm: một hàng lùi dần gồm các khối cao hình máy chủ đứng trên một lưới bản thiết kế mờ nhạt, mỗi khối được vẽ bằng đường viền cyan mảnh với một tấm nhỏ hình cánh cửa treo mở ở chính giữa. Một dải quét màu hổ phách rộng chạy ngang qua toàn bộ hàng, xuyên qua các tấm đang mở và để lại một vệt chấm mờ phía sau. Ở góc dưới bên trái, một khung đầu cuối nhỏ màu tối chứa một khối con trỏ màu hổ phách đang phát sáng. Không có văn bản, số, người, nhãn hiệu hay logo tổ chức nào xuất hiện. Logo OrcaRouter được ghép vào góc dưới bên phải.
AI Safety Incidents

Lộ ra do thiết kế: cuộc kiểm tra trực tiếp 414 máy chủ MCP hướng internet đã phát hiện 68 lỗ hổng

Tác giả

Rowan Sterling

Ngày đăng

Mô hình mới nhất · 20Xem tất cả mô hình →
Benchmark: Artificial Analysis · cập nhật hằng ngày
Quay lại tất cả bài viết

Vào ngày 31 tháng 7 năm 2026, Nicolás Padilla đã xuất bản Exposed by Design (arXiv:2608.00150), một bản thảo trước 13 trang mô tả thứ mà ông gọi là đánh giá bảo mật hành vi động đầu tiên đối với các máy chủ Model Context Protocol có thể truy cập từ Internet. Bốn đợt đo lường trong tháng đó đã xác nhận 640 máy chủ sản xuất đang hoạt động, trong đó 414 đã được kiểm thử chủ động; việc kiểm thử đã tạo ra 68 lỗ hổng có thể báo cáo, tất cả đều được gửi tới những người bảo trì dưới dạng GitHub Security Advisories. 380 trong số 414 — 91,8% — không có xác thực OAuth, và 687 thực thể công cụ quảng cáo khả năng thực thi shell mà không có kiểm soát truy cập. Padilla báo cáo không có bằng chứng nào cho thấy bất kỳ điều nào trong số đó đang bị khai thác: việc kiểm thử vẫn ở mức chứng minh khái niệm, không có thông tin đăng nhập nào bị lấy được và không có dữ liệu nào bị rò rỉ. Danh sách nguồn đầy đủ, mức độ nghiêm trọng và đánh giá độ tin cậy của hồ sơ nằm trong kho lưu trữ sự cố AI, cùng với các phát hiện MCP và cơ sở hạ tầng khác được ghi nhận xung quanh nó.

Những gì cuộc kiểm toán thực sự đã làm

Model Context Protocol là giao diện cho phép một tác nhân AI gọi các công cụ được vận hành ở nơi khác — tìm kiếm tài liệu, truy vấn cơ sở dữ liệu, một tiện ích shell. Một máy chủ triển khai giao thức này qua HTTP và có thể được truy cập từ internet, trên thực tế, chính là một bề mặt công cụ mà bất kỳ ai cũng có thể gửi yêu cầu tới. Bài báo của Padilla lập luận rằng số lượng các máy chủ như vậy chưa từng được đếm một cách đúng đắn, và rằng việc đếm chúng chính là mấu chốt: phát hiện là phần khó, và mọi khảo sát trước đây đều xem xét một lát cắt khác nhau.

Giai đoạn khám phá của ông đã hợp nhất mười một nguồn — crt.sh, Hugging Face, GitHub, npm, Smithery, PyPI, Censys, FOFA, Shodan, glama.ai và pulsemcp.com — với lập luận rằng không nguồn nào trong số đó nắm bắt được toàn bộ tập hợp. Giai đoạn hoạt động đã dùng Corvus, một framework do Padilla xây dựng cho nghiên cứu: 34 mô-đun kiểm thử bao quát 10 lớp lỗ hổng đặc thù của MCP, chia thành 13 mô-đun tĩnh và 21 mô-đun động. Nó được công bố trên GitHub dưới tổ chức CobaltoSec và trên PyPI với tên cobaltosec-corvus, và tệp thống kê của chính kho lưu trữ ghi nhận cùng con số 34 mô-đun.

Bốn lần chạy diễn ra vào ngày 15, 18, 21 và 24 tháng 7 năm 2026. Các lần chạy trước chỉ cung cấp số xác nhận; ba lần cuối đã quét 3.485, 3.948 và 4.110 ứng viên và xác nhận lần lượt 140, 464 và 296 máy chủ đang hoạt động. Việc loại trùng 972 quan sát thô với 332 lần xuất hiện lặp lại đã để lại 640 máy chủ xác nhận duy nhất, trong đó 414 — 64,7% — chấp nhận kiểm thử động đầy đủ. Padilla coi 640 là giới hạn dưới. Censys, một trong các nguồn phát hiện, đã ước tính hơn 21.000 điểm cuối liên quan đến MCP trên toàn thế giới vào tháng 5 năm 2026, và ông dùng con số đó làm ước tính quy mô thay vì coi đó là số lượng những gì ông đã kiểm thử.

An HTML table card titled 'Four runs in July 2026', subtitled 'What each measurement pass scanned, how many servers it confirmed, and how many carried a CRITICAL finding'. Four columns: run date, candidates scanned, servers confirmed, CRITICAL findings. Rows read: 15 July, candidates not tracked, 72 confirmed, no CRITICAL count; 18 July, 3,485 candidates, 140 confirmed, 17 CRITICAL; 21 July, 3,948 candidates, 464 confirmed, 41 CRITICAL; 24 July, 4,110 candidates, 296 confirmed, 35 CRITICAL. A blue summary band beneath reads: 972 raw observations, 332 duplicate appearances, 640 unique confirmed, 414 fully audited, 68 reportable. A footer cites Nicolás Padilla, arXiv:2608.00150, submitted 31 July 2026.

Đọc như một phễu, những con số mới là lập luận thực sự của bài báo: một lượt duyệt rộng và rẻ tìm được ứng viên nhanh hơn mức một lượt duyệt kỹ có thể kiểm tra chúng. Chỉ 414 trong số 640 máy chủ đã được xác nhận được kiểm tra đầy đủ, và Padilla không cho rằng tập con đã được kiểm tra giống với phần còn lại chưa được kiểm tra.

Những gì nó tìm thấy

Phát hiện nổi bật nhất là xác thực, hay chính việc thiếu xác thực. Trong số 414 máy chủ được kiểm tra, 380 (91,8%) không có OAuth. Bài báo cho biết phần lớn số còn lại sử dụng token bearer tĩnh hoặc khóa API, thường dễ đoán hoặc trống — một máy chủ chấp nhận một chuỗi cố định thì cũng không được xác thực theo cách có ý nghĩa. Bởi vì cuộc kiểm toán chỉ kiểm tra những máy chủ có thể truy cập công khai mà không cần thông tin xác thực, con số này mô tả nhóm bị phơi bày theo đúng thiết kế; đây không phải là ước tính cho các máy chủ MCP nói chung.

68 phát hiện có thể báo cáo được phân chia theo lớp, và số lượng theo lớp chồng lấn thay vì phân hoạch tổng số: 380 thiếu hụt xác thực, 52 trường hợp chấp nhận fuzzing giao thức, 47 đầu độc công cụ, 38 chèn lệnh, 31 bỏ qua lược đồ, 29 giả mạo yêu cầu phía máy chủ, 24 thao tác URI tài nguyên, 22 chèn lời nhắc, 18 lộ token và 14 chỉ báo chuỗi cung ứng. Các mô-đun từ chối dịch vụ đã được viết nhưng cố ý không chạy trên máy chủ sản xuất, mà Padilla loại trừ vì lý do đạo đức. Bốn loại lỗ hổng được nêu trong tóm tắt — chèn SQL, SSRF nhắm vào các dịch vụ siêu dữ liệu đám mây, chèn mẫu lời nhắc và duyệt đường dẫn qua thao tác con trỏ — đều xuất hiện trong các lớp đó.

A generated abstract illustration on a deep navy field: a translucent glass cube representing a tool sits at the centre, its faces cut by thin slots. A fine cyan cord runs from one slot across open space to a small metallic lever at upper left; a short amber spark jumps from another slot to a dark rack of cylinders at lower right. A pale dotted ring of tick marks circles the cube at a distance, a boundary the cord crosses without being stopped. No text, numbers, people, brand marks or organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

Con số về thực thi shell cần một lưu ý mà bài báo chưa giải quyết. Trong phần kết quả, 687 thực thể công cụ có thực thi shell và không có xác thực được đếm trên toàn bộ nhóm 640 máy chủ đã xác nhận. Trong phần thảo luận, cùng con số này được giới thiệu bằng cụm từ "của 414 máy chủ được kiểm tra động" rồi sau đó được gọi là "tập hợp đã xác nhận rộng hơn". Hai cách diễn đạt không khớp nhau, và bài báo không bao giờ đưa ra tổng số công cụ cho các máy chủ đã kiểm thử, nên 687 không thể được chuyển thành tỷ lệ phần trăm.

Churn là phát hiện làm thay đổi cách đọc các con số nhiều nhất. Trong số 464 máy chủ được xác nhận vào ngày 21 tháng 7, 193 máy chủ — chiếm 41,6% — đã biến mất khi lần chạy thứ tư kiểm tra ba ngày sau đó. Chín trong số 41 máy chủ có phát hiện CRITICAL cũng đã biến mất. Padilla hiểu điều này là triển khai mà không có rà soát; điều đó cũng có nghĩa là một phát hiện được xác nhận vào thứ Hai có thể không có người chịu trách nhiệm vá nó trước thứ Năm.

Ba nghiên cứu điển hình và những gì có thể được kiểm tra

Ba phát hiện được trình bày chi tiết, mỗi phát hiện kèm một mã định danh GitHub Security Advisory. Một lỗ hổng SQL injection trong lectorium-corpus-mcp (GHSA-m8qh-p8m5-8c48, mức CRITICAL) đã được xác nhận bằng payload ' OR 1=1 -- và một chênh lệch kích thước phản hồi, không có nội dung tài liệu nào bị đọc hoặc lưu giữ. Một lỗ hổng SSRF trong epwforge (GHSA-r9fx-qwmc-rvx3, mức HIGH) đã được xác nhận bằng thời gian: 11,9 giây đối với một địa chỉ metadata nội bộ so với mức cơ sở 0,3 giây, không có nội dung phản hồi metadata nào bị lưu. Một lỗ hổng prompt template injection trong frootai (GHSA-5h8f-r9g8-5w5p, mức HIGH) hoàn tất bộ phát hiện.

Hai trong số ba có thể được kiểm tra trực tiếp. Vào ngày 30 tháng 10 năm 2026, hai trang tư vấn đầu tiên đã được phân giải công khai trong kho tư vấn của CobaltoSec, cả hai đều được công bố vào 20 tháng 8 năm 2026, cả hai vẫn liệt kê "Phiên bản đã vá: Không" và không có CVE. Trang thứ ba, GHSA-5h8f-r9g8-5w5p, trả về không tìm thấy tại địa chỉ đó. Kho của CobaltoSec liệt kê 46 tư vấn đã công bố vào cùng ngày, bao gồm các máy chủ MCP và các công cụ AI lân cận; bài báo đếm được 19 bản đã được tiết lộ công khai và 49 bản vẫn đang bị cấm công bố vào thời điểm bài viết. Một mẫu quét cho frootai đề ngày 28 tháng 7 năm 2026 nằm trong kho Corvus, vậy là cuộc kiểm tra đã diễn ra; chỉ có điều bản tư vấn thì không hiển thị.

Quy trình công bố tự nó được mô tả khái quát chứ không chi tiết. Cả 68 phát hiện đều được gửi đến những người duy trì thông qua GitHub Security Advisories riêng tư theo một thời hạn cấm công bố phối hợp kéo dài 90 ngày, và ở nơi không thể báo cáo riêng tư, Padilla thay vào đó đã tạo một issue công khai trong kho lưu trữ. Bài báo báo cáo một cách giai thoại rằng một số người duy trì đã vá trong vòng 24 giờ, những người khác không trả lời trong nhiều tuần, và một số kho lưu trữ đã bị bỏ rơi. Nó không đưa ra số lượng người duy trì đã được liên hệ và không có bảng tỷ lệ phản hồi, nói rằng những thông tin đó sẽ được báo cáo đầy đủ vào thời điểm nộp bài.

Những gì bài báo không chứng minh được

Exposed by Design là một preprint do một tác giả duy nhất viết. arXiv ghi nhận phiên bản 1, được nộp ngày 31 tháng 7 năm 2026, không có tham chiếu tạp chí và không có tuyên bố phản biện đồng nghiệp. Kho lưu trữ xếp độ tin cậy của bản ghi ở mức B — có tài liệu ghi chép, nhưng chỉ từ một nguồn — và mức xếp hạng đó giữ nguyên cho toàn bộ bài viết này: mọi số liệu nêu trên đều đến từ bài báo của Padilla hoặc từ các sản phẩm do ông công bố, chứ không phải từ một phép đo độc lập.

Dường như không có tòa soạn tin tức độc lập nào đã đưa tin về nghiên cứu này. Đã có đưa tin — một phân tích do AI viết trên forkast.news, các bài đăng trên LinkedIn và Medium, một blog bảo mật bằng tiếng Trung, một bài giải thích bằng tiếng Nhật — nhưng nó diễn giải lại bản preprint mà không phỏng vấn tác giả, kiểm tra các khuyến cáo hay bổ sung dữ liệu. Đưa tin phái sinh không phải là kiểm chứng.

Padilla tự nêu ra các giới hạn, và chúng đặc biệt cụ thể. Chỉ các giao vận HTTP được kiểm thử; máy chủ stdio, trường hợp cục bộ phổ biến, nằm ngoài phạm vi. Việc khám phá là nỗ lực tối đa, nên 640 là mức sàn. 226 máy chủ đã xác nhận nhưng chưa được kiểm thử đầy đủ đã bị loại trừ vì phản hồi 403, đặt lại kết nối, phản hồi JSON-RPC không tuân thủ hoặc đơn giản là ngoại tuyến, và bài báo nói rằng không thể giới hạn được thiên lệch lựa chọn do đó tạo ra. Việc phát hiện dựa trên các heuristic — oracle thời gian, phản hồi khác biệt, kiểm tra lược đồ — mà không có bộ đánh giá gán nhãn và không có độ chính xác hoặc độ thu hồi được công bố cho 34 mô-đun. Tình trạng biến động mà ông ghi lại làm xói mòn tính hiệu lực theo thời gian của các phát hiện riêng lẻ. Và một nhà nghiên cứu duy nhất thực hiện xác minh thủ công đưa vào rủi ro thiên lệch xác nhận mà ông nêu tên và không định lượng.

An HTML card titled 'Established, and not', split into two columns. The left column, headed 'ESTABLISHED', lists: 414 internet-facing MCP servers dynamically tested in four July 2026 runs; 380 of them (91.8%) offered no OAuth authentication; 68 vulnerabilities filed as GitHub Security Advisories; Corvus published open source with 34 modules, 13 static and 21 dynamic; 193 of 464 servers confirmed on 21 July were gone three days later; two case-study advisories public since 20 August 2026, both unpatched. The right column, headed 'NOT ESTABLISHED', lists: that any exposed server was attacked in the wild; a total population, since 640 confirmed servers is a lower bound; 687 shell-exposing tools as a share of tested servers, since the denominators conflict; the third case-study advisory, not publicly resolvable on 30 October 2026; any independent measurement or newsroom verification; module precision or recall, since no labelled benchmark is published. A footer cites Nicolás Padilla, arXiv:2608.00150 and the CobaltoSec advisory repository.

Điều gì đã thay đổi sau

Kết quả thực tế cho đến nay là công cụ và luồng tư vấn. Corvus có thể cài đặt và đã có tài liệu, và kho tư vấn của CobaltoSec có 46 mục đã xuất bản vào ngày 30 tháng 10 năm 2026, so với 19 công bố công khai mà bài báo đếm được vào cuối tháng Bảy. Hai trong số các nghiên cứu tình huống của chính bài báo vẫn chưa có phiên bản vá — đối với những máy chủ đó, việc công bố đã tạo ra một hồ sơ công khai nhưng vẫn chưa có bản sửa.

Đối với những người làm phòng thủ, phần hữu ích của nghiên cứu là phương pháp chứ không phải tiêu đề của nó. Con số 91,8% chỉ được rút ra từ các máy chủ trả lời mà không cần thông tin xác thực nói lên một điều hẹp nhưng có thật: phần lớn những gì bị lộ chưa từng được khóa, và mức biến động trong ba ngày cho thấy phần lớn chúng được dựng lên cho một bản demo, nguyên mẫu hoặc thử nghiệm và chưa từng được gia cố bảo mật. Điều mà bài nghiên cứu không thể nói là liệu điều tương tự có đúng với các máy chủ MCP mà các tổ chức thực sự dựa vào hay không, vì những máy chủ đó chưa từng nằm trong mẫu.