24 திறந்த மூல MCP (Model-Control-Protocol) சர்வர் திட்டங்களை ஆய்வு செய்த ஒரு பாதுகாப்பு ஆராய்ச்சியாளர், CVSS அளவில் 9.8 மதிப்பெண் பெறும் ஒரு கடுமையான சாண்ட்பாக்ஸ் கமாண்ட்-இன்ஜெக்ஷன் (sandbox command-injection) குறைபாட்டைக் கண்டறிந்துள்ளார். இந்த பிழை AgenticX எனும் இடைநிலை AI-ஏஜென்ட் கட்டமைப்பில் (mid-tier AI-agent framework) உள்ளது; இது ஒரு தாக்குதல்தாரர் சர்வரை இயக்கும் Docker கன்டெய்னருக்குள் தன்னிச்சையான ஷெல் கட்டளைகளை (shell commands) செலுத்த அனுமதிக்கிறது.
MCP சர்வர்கள் ஏன் முக்கியம்
தன்னாட்சி பெற்ற AI ஏஜெண்டுகள் (autonomous AI agents) கோப்புகள், தரவுத்தளங்கள், உலாவிகள் போன்ற வெளிப்புறக் கருவிகளுடன் தொடர்புகொள்ள MCP ஒரு பாலமாகச் செயல்படுகிறது. ஒரு மொழி மாதிரியானது (language model) நிஜ உலக வளங்களை வாசிக்கவும், எழுதவும் மற்றும் செயல்படவும் கூடிய திறனை வழங்க, டெவலப்பர்கள் தங்கள் பயன்பாடுகளில் ஒரு MCP சர்வரை இணைக்கிறார்கள். இந்த புரோட்டோகால் மிகவும் எளிமையானது மற்றும் பரவலாகப் பயன்படுத்தப்படுகிறது, ஆனால் ஒவ்வொரு திட்டத்தின் பராமரிப்பாளர்களும் அதைச் சுற்றியுள்ள குறியீடுகளைப் பாதுகாப்பதே அவர்களின் பொறுப்பாகும்.
Cline அல்லது Aider போன்ற பெரிய அளவிலான MCP செயலாக்கங்கள் ஏற்கனவே வழக்கமான தணிக்கைகளையும் (audits) முதிர்ந்த பாதுகாப்பு செயல்முறைகளையும் பெற்றுள்ளன. இங்கு ஆய்வு செய்யப்பட்ட 24 திட்டங்கள் GitHub-இல் 100 முதல் 1,000 ஸ்டார்கள் (stars) கொண்ட "இடைநிலை" (mid-tier) வரம்பில் உள்ளன. அந்தத் தொகுப்புகள் (repositories) பெரும்பாலும் பாதுகாப்பான குறியீட்டை விட விரைவான அம்சங்களை வழங்குவதற்கே முன்னுரிமை அளிக்கின்றன, இது எந்தவொரு திறந்த மூல MCP சர்வரும் இயல்பாகவே பாதுகாப்பானது என்று கருதும் பயனர்களுக்கு ஒரு மறைமுகமான ஆபத்தை (blind spot) உருவாக்குகிறது.
ஆய்வு (The scan)
ஆராய்ச்சியாளர் ஐந்து பாரம்பரிய இணைய-செயலி தாக்குதல் முறைகளைத் தேடும் வகையில் ஒரு ஸ்கேனரை உருவாக்கினார்:
- Command injection
- Path traversal
- Server-Side Request Forgery (SSRF)
- SQL injection
- Sandbox escape
5,911 மூலக் கோப்புகளில் (source files) ஸ்கேனரை இயக்கியதன் மூலம் தொடக்கநிலை 94 எச்சரிக்கைகள் கிடைத்தன. கைமுறைத் தணிக்கைக்குப் பிறகு, ஒரே ஒரு எச்சரிக்கை மட்டுமே உண்மையான பாதிப்பாக (vulnerability) இருந்தது.
AgenticX பிழையின் பின்னணி
AgenticX, பயனர் வழங்கும் சரங்களை (strings) Python f-strings-க்குள் இணைப்பதன் மூலம் ஷெல் கட்டளைகளை உருவாக்குகிறது, பின்னர் அதன் முடிவை நேரடியாக கன்டெய்னரின் ஷெல்லுக்கு அனுப்புகிறது. கோப்புப் பாதைகளுக்கான (file paths) சரிபார்ப்பு அல்லது மேற்கோள் (quoting) எதுவும் செய்யப்படுவதில்லை. எனவே, ஒருத் தீய நோக்கம் கொண்ட ப்ராம்ப்ட் (adversarial prompt), ஒரு செமிகோலன் (semicolon) அல்லது பிற ஷெல் மெட்டா கேரக்டர்களை (shell metacharacter) உள்ளீடு செய்து, தாக்குதல்தாரர் விரும்பும் எந்தவொரு கட்டளையையும் கன்டெய்னர் செயல்படுத்த வழிவகுக்கும்.
ஆராய்ச்சியாளர் குறியீட்டை பின்வருமாறு சரிசெய்தார்:
- மொழி மாதிரியால் வழங்கப்படும் எந்தவொரு பாதையையும் பாதுகாப்பாகச் சரிசெய்ய
shlex.quote()ஐப் பயன்படுத்தினார். - கட்டளையை உருவாக்குவதற்கு முன், பாத்-டிராவர்சல் முறைகளை (
../) கண்டறியத் தெளிவான சோதனைகளைச் சேர்த்தார்.
சரிசெய்த பிறகு ஸ்கேனரை மீண்டும் இயக்கியபோது, ஆபத்து நிலை பெருமளவு குறைந்ததைக் காட்டியது, இது அந்தத் தீர்வு மூலக் காரணத்தைத் தீர்த்ததை உறுதிப்படுத்தியது.
யார் வெற்றி பெறுகிறார்கள், யார் இழக்கிறார்கள்
- AI டெவலப்பர்கள் தங்கள் தயாரிப்புகளில் ஒரு MCP சர்வரை இணைக்கும்போது, ஒரு சிறிய சுத்திகரிப்புப் படிவம் (sanitization step) விடுபடுவது எவ்வாறு முழு பாதுகாப்புச் சங்கிலியையும் உடைக்கும் என்பதற்கு இது ஒரு உறுதியான உதாரணமாகும். எந்தவொரு வெளிப்புற API தரவைப் போலவும், மொழி மாதிரியிலிருந்து வரும் ஒவ்வொரு அளவுருவையும் (parameter) நம்பகமற்ற உள்ளீடாகக் கருதவும்.
கதையின் மறுபக்கம்
MCP புரோட்டோகால் அதன் வடிவமைப்பு ரீதியாகப் பாதுகாப்பானது என்று ஆராய்ச்சியாளர் வலியுறுத்துகிறார். இந்தத் தவறு அதன் வடிவமைப்பில் உள்ள பலவீனம் அல்ல, மாறாக ஒரு குறிப்பிட்ட செயலாக்கத்தில் ஏற்பட்ட குறியீட்டுத் தவறு (coding oversight) ஆகும். பெரிய அளவிலான, நன்கு தணிக்கை செய்யப்பட்ட திட்டங்கள் ஏற்கனவே இத்தகைய சிக்கல்களைத் தீர்த்துள்ளன, மேலும் திறந்த மூல சமூகத்தினர் AgenticX திருத்தத்திலிருந்து கற்றுக்கொள்ளலாம். இருப்பினும், ஸ்டார் எண்ணிக்கை குறைவாக இருந்தாலும், "இடைநிலை" திட்டங்கள் அதிக பாதிப்பை ஏற்படுத்தும் பிழைகளைக் கொண்டிருக்கக்கூடும் என்பதை இந்தச் சம்பவம் காட்டுகிறது.
முக்கியக் கருத்து (Takeaway)
AgenticX-இல் சரிபார்க்கப்படாத ஒரு ஒற்றை f-string, முழு MCP சர்வரையும் தன்னிச்சையான குறியீடு செயலாக்கத்திற்கான (arbitrary code execution) தளமாக மாற்றியது. AI-ஏஜென்ட் சுற்றுச்சூழல் அமைப்புகளின் பாதுகாப்பு என்பது புரோட்டோகாலை விட, ஒழுக்கமான செயலாக்கத்தையே அதிகம் சார்ந்துள்ளது என்பதை இந்தச் சம்பவம் நிரூபிக்கிறது. டெவலப்பர்கள் ஒவ்வொரு LLM-ஆல் உருவாக்கப்பட்ட அளவுருவையும் ஆபத்தானதாகக் கருத வேண்டும், தளங்கள் ரன்டைம் பாதுகாப்புகளை (runtime safeguards) நடைமுறைப்படுத்த வேண்டும், மேலும் AI ஏஜெண்டுகள் உருவாக்கும் தனித்துவமான நம்பகத்தன்மைச் சங்கிலிகளைப் (trust chains) புரிந்துகொள்ள பாதுகாப்புத் கருவிகள் மேம்பட வேண்டும்.
Source: dev.to/easterndev/i-scanned-24-mcp-server-projects-and-found-a-real-sandbox-command-injection-cvss-98-4k9h
