ภาพประกอบเชิงนามธรรมที่สร้างขึ้นบนพื้นสีน้ำเงินเข้ม: แถวของแผ่นทรงสูงรูปร่างคล้ายเซิร์ฟเวอร์ที่เรียงลึกเข้าไปตั้งอยู่บนตารางพิมพ์เขียวจาง ๆ แต่ละแผ่นวาดด้วยเส้นโครงร่างสีฟ้าอมเขียวบาง ๆ โดยมีแผงเล็ก ๆ รูปร่างคล้ายประตูแขวนเปิดอยู่ที่ตรงกลาง แถบสแกนกว้างสีเหลืองอำพันแถบเดียวพาดผ่านแนวนอนตลอดทั้งแถว ผ่านแผงที่เปิดอยู่เหล่านั้น และทิ้งร่องรอยจุดจาง ๆ ไว้เบื้องหลัง ที่มุมล่างซ้ายมีบานหน้าต่างเทอร์มินัลสีเข้มบานเล็กบรรจุบล็อกเคอร์เซอร์สีเหลืองอำพันเรืองแสงหนึ่งบล็อก ไม่ปรากฏข้อความ ตัวเลข ผู้คน เครื่องหมายการค้า หรือโลโก้องค์กรใด ๆ โลโก้ OrcaRouter ถูกวางซ้อนไว้ที่มุมขวาล่าง
AI Safety Incidents

เปิดเผยโดยการออกแบบ: การตรวจสอบแบบเรียลไทม์ของเซิร์ฟเวอร์ MCP ที่เปิดสู่อินเทอร์เน็ตจำนวน 414 แห่ง พบช่องโหว่ 68 จุด

ผู้เขียน

Rowan Sterling

วันที่เผยแพร่

โมเดลล่าสุด · 20ดูโมเดลทั้งหมด →
เบนช์มาร์ก: Artificial Analysis · อัปเดตทุกวัน
กลับไปยังโพสต์ทั้งหมด

เมื่อ 31 กรกฎาคม 2026 Nicolás Padilla ได้เผยแพร่ Exposed by Design (arXiv:2608.00150) ซึ่งเป็น preprint ความยาว 13 หน้า ที่อธิบายสิ่งที่เขาเรียกว่าเป็นการประเมินความปลอดภัยเชิงพฤติกรรมแบบไดนามิกครั้งแรกของเซิร์ฟเวอร์ Model Context Protocol ที่เปิดให้เข้าถึงจากอินเทอร์เน็ต การวัดผลสี่รอบในเดือนนั้นยืนยันว่า640 เป็นเซิร์ฟเวอร์โปรดักชันที่ใช้งานจริง โดยในจำนวนนี้414 ถูกทดสอบอย่างจริงจัง และการทดสอบดังกล่าวก่อให้เกิดช่องโหว่ที่ต้องรายงาน68 รายการ ซึ่งทั้งหมดถูกแจ้งต่อผู้ดูแลระบบในรูปแบบ GitHub Security Advisories 380 จาก 414 รายการ — คิดเป็น 91.8% — ไม่มีการยืนยันตัวตนด้วย OAuth และ687 อินสแตนซ์ของเครื่องมือ ประกาศความสามารถในการรันคำสั่งเชลล์โดยไม่มีการควบคุมการเข้าถึง Padilla รายงานว่าไม่พบหลักฐานใด ๆ ว่าสิ่งเหล่านี้ถูกนำไปใช้ประโยชน์แล้ว การทดสอบหยุดอยู่เพียงระดับ proof of concept ไม่มีการได้มาซึ่งข้อมูลรับรอง และไม่มีการขโมยข้อมูลออกไป รายการแหล่งข้อมูลฉบับเต็ม การให้เกรดความรุนแรง และการประเมินความเชื่อมั่นของบันทึกนี้อยู่ในคลังเหตุการณ์ด้าน AI ควบคู่ไปกับข้อค้นพบอื่น ๆ เกี่ยวกับ MCP และโครงสร้างพื้นฐานที่ถูกบันทึกไว้ในช่วงเดียวกัน

สิ่งที่การตรวจสอบทำจริง ๆ

Model Context Protocol คืออินเทอร์เฟซที่ให้เอเจนต์ AI เรียกใช้เครื่องมือที่โฮสต์อยู่ที่อื่น เช่น การค้นหาเอกสาร การสืบค้นฐานข้อมูล หรือเชลล์ตัวช่วย เซิร์ฟเวอร์ที่รองรับ Protocol นี้ผ่าน HTTP และเข้าถึงได้จากอินเทอร์เน็ต แท้จริงแล้วคือพื้นผิวของเครื่องมือที่ใครก็สามารถเรียกถึงได้ บทความของ Padilla โต้แย้งว่าจำนวนเซิร์ฟเวอร์ดังกล่าวทั้งหมดยังไม่เคยถูกนับอย่างถูกต้อง และการนับมันคือประเด็นสำคัญ: การค้นหาให้พบคือส่วนที่ยาก และการสำรวจก่อนหน้านี้ทุกครั้งมองเพียงเสี้ยวที่แตกต่างกัน

ขั้นตอนการค้นพบของเขารวมแหล่งข้อมูลไว้สิบเอ็ดแหล่ง — crt.sh, Hugging Face, GitHub, npm, Smithery, PyPI, Censys, FOFA, Shodan, glama.ai และ pulsemcp.com — โดยให้เหตุผลว่าไม่มีแหล่งใดแหล่งหนึ่งในนั้นที่ครอบคลุมประชากรทั้งหมดได้ ขั้นตอนเชิงรุกใช้Corvus ซึ่งเป็นเฟรมเวิร์กที่ Padilla สร้างขึ้นสำหรับการศึกษานี้ ประกอบด้วยโมดูลทดสอบ 34 โมดูล ครอบคลุมคลาสช่องโหว่เฉพาะ MCP จำนวน 10 คลาส แบ่งเป็นแบบสแตติก 13 โมดูลและแบบไดนามิก 21 โมดูล เผยแพร่บน GitHub ภายใต้องค์กร CobaltoSec และบน PyPI ในชื่อcobaltosec-corvus และไฟล์สถิติของรีโพซิทอรีเองก็บันทึกจำนวนโมดูลไว้ที่ 34 โมดูลเช่นเดียวกัน

การสแกนทั้งสี่ครั้งเกิดขึ้นเมื่อ15, 18, 21 และ 24 กรกฎาคม 2026 การสแกนครั้งก่อนๆ ให้เฉพาะหมายเลขยืนยันเท่านั้น ส่วนสามครั้งหลังสแกนผู้สมัคร 3,485, 3,948 และ 4,110 ราย และยืนยันเซิร์ฟเวอร์ที่ใช้งานอยู่ได้ 140, 464 และ 296 เครื่องตามลำดับ เมื่อตัดข้อมูลซ้ำจากข้อสังเกตดิบ 972 รายการที่มีการปรากฏซ้ำ 332 ครั้ง เหลือเซิร์ฟเวอร์ที่ยืนยันแล้วไม่ซ้ำกัน 640 เครื่อง ซึ่งในจำนวนนี้ 414 เครื่อง — 64.7% — ผ่านการทดสอบแบบไดนามิกเต็มรูปแบบ Padilla มองว่า 640 เป็นขอบเขตขั้นต่ำ Censys ซึ่งเป็นหนึ่งในแหล่งค้นพบ ประเมินว่ามีปลายทางที่เกี่ยวข้องกับ MCP ทั่วโลกมากกว่า 21,000 แห่งในเดือนพฤษภาคม 2026 และเขาใช้ตัวเลขนั้นเป็นประมาณการขนาดแทนที่จะเป็นจำนวนสิ่งที่เขาทดสอบ

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.

เมื่อมองเป็นกระบวนการกรองแบบกรวย ตัวเลขเหล่านี้คือข้อโต้แย้งที่แท้จริงของบทความ: การคัดกรองแบบกว้างและต้นทุนต่ำสามารถค้นหาผู้สมัครได้เร็วกว่าที่การคัดกรองอย่างละเอียดจะทดสอบพวกเขาได้ทัน ในบรรดาเซิร์ฟเวอร์ที่ยืนยันแล้ว 640 ตัว มีเพียง 414 ตัวเท่านั้นที่ถูกทดสอบอย่างเต็มรูปแบบ และปาดิลลาไม่ได้อ้างว่ากลุ่มย่อยที่ถูกทดสอบนั้นคล้ายกับส่วนที่เหลือที่ยังไม่ได้ทดสอบ

สิ่งที่ค้นพบ

ข้อค้นพบหลักคือการยืนยันตัวตน หรือการไม่มีกลไกดังกล่าว จากการทดสอบเซิร์ฟเวอร์ 414 ตัว พบว่า 380 ตัว (91.8%) ไม่มี OAuth บทความระบุว่าเซิร์ฟเวอร์ส่วนที่เหลือส่วนใหญ่ใช้ static bearer token หรือ API key ซึ่งมักคาดเดาได้หรือว่างเปล่า — เซิร์ฟเวอร์ที่ยอมรับสตริงคงที่ก็ไม่ได้ยืนยันตัวตนอย่างมีความหมายเช่นกัน เนื่องจากการตรวจสอบนี้ทดสอบเฉพาะเซิร์ฟเวอร์ที่เข้าถึงได้แบบสาธารณะโดยไม่ต้องใช้ข้อมูลรับรอง ตัวเลขนี้จึงอธิบายประชากรที่เปิดเผยโดยผลของวิธีการศึกษา; ไม่ใช่ค่าประมาณสำหรับเซิร์ฟเวอร์ MCP โดยทั่วไป

ผลการตรวจพบที่ต้องรายงาน 68 รายการ แบ่งออกตามคลาส โดยจำนวนนับในแต่ละคลาสเหลื่อมซ้อนกันแทนที่จะแบ่งแยกยอดรวมทั้งหมด: ความบกพร่องด้านการยืนยันตัวตน 380 รายการ, การยอมรับการฟัซซิ่งโปรโตคอล 52 กรณี, การเป็นพิษของเครื่องมือ 47 รายการ, การแทรกคำสั่ง 38 รายการ, การเลี่ยงสคีมา 31 รายการ, การปลอมแปลงคำขอฝั่งเซิร์ฟเวอร์ 29 รายการ, การจัดการ URI ของทรัพยากร 24 รายการ, การแทรกพรอมต์ 22 รายการ, การเปิดเผยโทเคน 18 รายการ และตัวบ่งชี้ห่วงโซ่อุปทาน 14 รายการ โมดูล denial-of-service ถูกเขียนขึ้นแต่จงใจไม่รันกับเซิร์ฟเวอร์โปรดักชัน ซึ่ง Padilla ไม่นำมารวมด้วยเหตุผลด้านจริยธรรม ช่องโหว่สี่ประเภทที่ระบุชื่อในบทคัดย่อ — การแทรก SQL, SSRF ต่อบริการเมทาดาทาคลาวด์, การแทรกเทมเพลตพรอมต์ และ path traversal ผ่านการจัดการเคอร์เซอร์ — ล้วนปรากฏอยู่ภายในคลาสเหล่านั้น

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.

ตัวเลขเกี่ยวกับการรันคำสั่งผ่านเชลล์ (shell execution) ต้องการข้อแม้หนึ่งประการที่บทความไม่ได้คลี่คลาย ในส่วนผลลัพธ์ มีการนับอินสแตนซ์ของเครื่องมือ 687 รายการที่รันคำสั่งผ่านเชลล์และไม่มีการยืนยันตัวตน จากกลุ่มเซิร์ฟเวอร์ที่ยืนยันแล้วจำนวน 640 เครื่อง ในส่วนอภิปราย ตัวเลขเดียวกันนี้ถูกนำเสนอด้วยถ้อยคำว่า “จากเซิร์ฟเวอร์ 414 เครื่องที่ตรวจสอบแบบไดนามิก” แล้วจึงอ้างถึง “ชุดที่ยืนยันแล้วในวงกว้างขึ้น” กรอบการนำเสนอทั้งสองแบบไม่สอดคล้องกัน และบทความไม่เคยให้จำนวนเครื่องมือทั้งหมดสำหรับเซิร์ฟเวอร์ที่ทดสอบ ดังนั้นจึงไม่สามารถแปลง 687 เป็นเปอร์เซ็นต์ได้

Churn คือข้อค้นพบที่เปลี่ยนวิธีการอ่านตัวเลขมากที่สุด จากเซิร์ฟเวอร์ 464 เครื่องที่ยืนยันเมื่อวันที่ 21 กรกฎาคม มี 193 เครื่อง — 41.6% — หายไปเมื่อการรันครั้งที่สี่ตรวจสอบในอีกสามวันต่อมา ในบรรดาเซิร์ฟเวอร์ 41 เครื่องที่มีข้อค้นพบระดับ CRITICAL มีเก้าเครื่องที่หายไปด้วย Padilla ตีความว่านี่คือการติดตั้งใช้งานโดยไม่มีการตรวจทาน; ยังหมายความว่าข้อค้นพบที่ยืนยันเมื่อวันจันทร์อาจไม่มีเจ้าของมาแพตช์ภายในวันพฤหัสบดี

กรณีศึกษาทั้งสามกรณี และสิ่งที่สามารถตรวจสอบได้

มีการเขียนรายละเอียดข้อค้นพบสามข้อไว้อย่างละเอียด โดยแต่ละข้อมีตัวระบุ GitHub Security Advisory การโจมตีแบบ SQL injection ใน lectorium-corpus-mcp (GHSA-m8qh-p8m5-8c48 ระดับ CRITICAL) ได้รับการยืนยันด้วยเพย์โหลด ' OR 1=1 -- และความแตกต่างของขนาดการตอบกลับ โดยไม่มีเนื้อหาเอกสารใดถูกอ่านหรือเก็บไว้ SSRF ใน epwforge (GHSA-r9fx-qwmc-rvx3 ระดับ HIGH) ได้รับการยืนยันจากการจับเวลา: 11.9 วินาทีเมื่อเข้าถึงที่อยู่เมทาดาทาภายใน เทียบกับค่าพื้นฐาน 0.3 วินาที โดยไม่มีเนื้อหาการตอบกลับเมทาดาทาถูกจัดเก็บไว้ การโจมตีแบบ prompt template injection ใน frootai (GHSA-5h8f-r9g8-5w5p ระดับ HIGH) เป็นการปิดชุดข้อค้นพบนี้

สามารถตรวจสอบสองในสามรายการได้โดยตรง เมื่อวันที่ 30 ตุลาคม 2026 หน้า advisory สองหน้าแรกเปิดเผยต่อสาธารณะในคลัง advisory ของ CobaltoSec โดยทั้งสองเผยแพร่เมื่อ 20 สิงหาคม 2026 และทั้งสองยังคงระบุ "Patched versions: None" และไม่มี CVE รายการที่สาม GHSA-5h8f-r9g8-5w5p ให้ผลว่าไม่พบที่ที่อยู่นั้น คลังของ CobaltoSec แสดงรายการ advisory ที่เผยแพร่แล้ว 46 รายการ ณ วันเดียวกัน ครอบคลุมเซิร์ฟเวอร์ MCP และเครื่องมือ AI ที่เกี่ยวข้อง; บทความนับว่า 19 รายการถูกเปิดเผยต่อสาธารณะ และ 49 รายการยังอยู่ภายใต้การห้ามเผยแพร่ ณ เวลาที่เขียน อาร์ติแฟกต์การสแกนสำหรับ frootai ลงวันที่ 28 กรกฎาคม 2026 อยู่ในคลัง Corvus ดังนั้นการทดสอบเกิดขึ้น; เพียงแต่ไม่ปรากฏ advisory เท่านั้น

กระบวนการเปิดเผยข้อมูลเองถูกอธิบายเป็นโครงร่างมากกว่ารายละเอียด ผลการค้นพบทั้ง 68 รายการถูกส่งถึงผู้ดูแลผ่าน GitHub Security Advisories แบบส่วนตัวภายใต้การห้ามเปิดเผยแบบประสานงาน 90 วัน และในกรณีที่ไม่สามารถรายงานแบบส่วนตัวได้ Padilla ได้ยื่น issue ในรีโพซิทอรีสาธารณะแทน บทความรายงานเป็นเกร็ดเล็กเกร็ดน้อยว่า ผู้ดูแลบางรายแพตช์ภายใน 24 ชั่วโมง บางรายไม่ตอบกลับหลายสัปดาห์ และบางรีโพซิทอรีถูกทิ้งร้าง ไม่ได้ระบุจำนวนผู้ดูแลที่ติดต่อและไม่มีตารางอัตราการตอบสนอง โดยกล่าวว่าจะรายงานทั้งหมดเมื่อถึงเวลาส่งบทความ

สิ่งที่บทความนี้ไม่ได้ยืนยัน

Exposed by Design เป็นงาน preprint ที่มีผู้เขียนคนเดียว arXiv ระบุเวอร์ชัน 1 ซึ่งส่งเมื่อวันที่ 31 กรกฎาคม 2026 โดยไม่มี journal reference และไม่มีข้อความเกี่ยวกับการทบทวนโดยผู้ทรงคุณวุฒิ คลังเก็บข้อมูลจัดระดับความเชื่อมั่นของบันทึกเป็น B — มีเอกสารยืนยัน แต่มาจากแหล่งเดียว — และระดับดังกล่าวใช้กับเนื้อหาทั้งชิ้นนี้: ตัวเลขทุกตัวข้างต้นมาจากบทความของ Padilla หรือจากอาร์ติแฟกต์ที่เขาเผยแพร่ ไม่ใช่จากการวัดที่เป็นอิสระ

ไม่ปรากฏว่ามีสำนักข่าวอิสระใดรายงานการศึกษานี้ มีการรายงานข่าวอยู่บ้าง — บทวิเคราะห์ที่เขียนโดย AI บน forkast.news โพสต์บน LinkedIn และ Medium บล็อกด้านความปลอดภัยภาษาจีน และบทอธิบายภาษาญี่ปุ่น — แต่รายงานเหล่านั้นเพียงถอดความ preprint โดยไม่สัมภาษณ์ผู้เขียน ไม่ตรวจสอบคำเตือน หรือเพิ่มข้อมูล การรายงานข่าวแบบต่อยอดไม่ใช่การยืนยัน

ปาดิลลาเองเป็นผู้ระบุข้อจำกัด และข้อจำกัดเหล่านั้นเฉพาะเจาะจงอย่างผิดปกติ มีเพียง HTTP transports เท่านั้นที่ถูกทดสอบ ส่วนเซิร์ฟเวอร์ stdio ซึ่งเป็นกรณีท้องถิ่นที่พบบ่อย อยู่นอกขอบเขต การค้นพบเป็นแบบ best-effort ดังนั้น 640 จึงเป็นเพียงขั้นต่ำ เซิร์ฟเวอร์ที่ยืนยันแล้ว 226 รายการซึ่งไม่ได้ถูกทดสอบอย่างเต็มที่ถูกตัดออก เนื่องจาก responses 403, การรีเซ็ตการเชื่อมต่อ, การตอบกลับ JSON-RPC ที่ไม่เป็นไปตามข้อกำหนด หรือเพียงเพราะออฟไลน์ และบทความระบุว่าอคติจากการคัดเลือกที่เกิดขึ้นไม่สามารถกำหนดขอบเขตได้ การตรวจจับอาศัยฮิวริสติก ได้แก่ timing oracles, differential responses และ schema inspection โดยไม่มีชุด基準ที่ติดป้ายกำกับ และไม่มีการเผยแพร่ precision หรือ recall สำหรับโมดูล 34 โมดูล ความผันผวนที่เขาบันทึกไว้บั่นทอนความสมเหตุสมผลเชิงเวลาของข้อค้นพบแต่ละรายการ และนักวิจัยเพียงคนเดียวที่ทำการตรวจสอบด้วยมือก่อให้เกิดความเสี่ยงจากอคติยืนยันความเชื่อ ซึ่งเขาระบุไว้แต่ไม่ได้วัดปริมาณ

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.

อะไรเปลี่ยนไปหลังจากนั้น

ผลลัพธ์ในทางปฏิบัติจนถึงตอนนี้คือเครื่องมือและชุดประกาศคำแนะนำที่เผยแพร่อย่างต่อเนื่อง Corvus สามารถติดตั้งได้และมีเอกสารประกอบ และคลังประกาศคำแนะนำของ CobaltoSec มีรายการที่เผยแพร่แล้ว 46 รายการ ณ วันที่ 30 ตุลาคม 2026 เทียบกับ 19 การเปิดเผยต่อสาธารณะที่บทความนับไว้ ณ สิ้นเดือนกรกฎาคม กรณีศึกษาสองกรณีของบทความเองยังไม่มีเวอร์ชันที่ได้รับการแพตช์ — สำหรับเซิร์ฟเวอร์เหล่านั้น การเปิดเผยข้อมูลได้สร้างบันทึกสาธารณะแล้ว แต่ยังไม่มีการแก้ไข

สำหรับผู้ป้องกัน สิ่งที่มีประโยชน์จากงานศึกษานี้คือวิธีการมากกว่าพาดหัวข่าว ตัวเลข 91.8% ซึ่งได้มาจากเฉพาะเซิร์ฟเวอร์ที่ตอบกลับโดยไม่ต้องใช้ข้อมูลรับรองนั้นสื่อถึงเรื่องที่แคบแต่เป็นจริง: สิ่งที่เปิดเผยส่วนใหญ่ไม่เคยถูกป้องกันไว้เลย และการเกิด-หายภายในสามวันบ่งชี้ว่าหลายส่วนถูกตั้งขึ้นเพื่อการสาธิต ต้นแบบ หรือการทดสอบ และไม่เคยได้รับการเสริมความปลอดภัย สิ่งที่งานวิจัยนี้ไม่สามารถระบุได้คือสถานการณ์เดียวกันนี้เป็นจริงหรือไม่กับเซิร์ฟเวอร์ MCP ที่องค์กรพึ่งพาอยู่จริง เพราะสิ่งเหล่านั้นไม่เคยอยู่ในกลุ่มตัวอย่างเลย

© 2026 OrcaRouter

สำหรับผู้ให้บริการ

ให้บริการแพลตฟอร์มการอนุมานอยู่หรือไม่ นำโมเดลของคุณขึ้น OrcaRouter

providers@orcarouter.ai

เข้าร่วมคอมมูนิตี้ของเรา

Discordsupport@orcarouter.aiXLinkedInGitHubYouTube