Cenueshmëria e MCP Python SDK ekspozon kredencialet OAuth ndaj serverëve keqdashës
Imazh i krijuar me IA

Cenueshmëria e MCP Python SDK ekspozon kredencialet OAuth ndaj serverëve keqdashës

Një dobësi në MCP Python SDK zyrtar mund të lejojë një server të keq të ndërhyjë në sekretet e hyrjes OAuth, duke u dhënë sulmuesve akses afatgjatë në shërbimet e lidhura…

Një cenueshmëri sigurie në kompletin zyrtar të zhvillimit të softuerit MCP Python mund të lejojë një server MCP keqdashës të kapë kredencialet OAuth që një aplikacion përdor për t'u identifikuar në një shërbim të jashtëm, paralajmëruan mirëmbajtësit e SDK-së në një njoftim sigurie. Dobësia, e raportuar nga firma e sigurisë Cycode, i lejon një serveri të pabesueshëm të mashtrojë një klient të ndërtuar me versionet e prekura që të dorëzojë sekretin e klientit, kodin e autorizimit dhe çelësin e provës PKCE. Me këto sekrete të vjedhura, një sulmues mund të kërkojë një token të vlefshëm aksesi nga shërbimi i vërtetë i identifikimit dhe të mbajë akses të vazhdueshëm derisa kredencialet të ndryshohen.

Protokolli i Kontekstit të Modelit (MCP) është një standard i hapur që lejon aplikacionet e inteligjencës artificiale të komunikojnë me mjete dhe burime të dhënash të jashtme, dhe paketa e prekur është SDK-ja zyrtare Python për ndërtimin e serverëve dhe klientëve MCP. Kur një klient MCP duhet të identifikohet, ai pyet serverin se ku ndodhet serveri i tij i autorizimit (shërbimi që trajton identifikimet dhe lëshon tokenat). Në versionet e cenueshme, SDK-ja i besonte asaj përgjigjeje pa verifikim, kështu që një server armiqësor mund ta ridrejtonte klientin në një pikë fundore të kontrolluar nga sulmuesi ndërsa i shfaqte përdoruesit faqen e vërtetë të identifikimit. Klienti më pas do t'i dërgonte sekretin, kodin e autorizimit dhe çelësin e provës PKCE direkt te sulmuesi, duke anashkaluar qëllimin e çelësit të provës dhe duke ekspozuar kredenciale me jetëgjatësi.

Njoftimi e vlerëson cenueshmërinë si me rrezikshmëri të lartë (7.5 nga 10) për dy ofruesit OAuth makinë-më-makinë që funksionojnë pa asnjë ndërveprim të përdoruesit. Ofruesi interaktiv, i cili kërkon që një person të miratojë një identifikim, merr një pikë prej 6.5 sepse përdoruesi ende sheh dhe miraton atë që duket të jetë faqja e vërtetë e identifikimit. Deri më 29 shtator nuk ishte caktuar asnjë identifikues CVE. Versionet e prekura përfshijnë linjën 1.x nga 1.9.1 deri në 1.29.1 dhe linjën 2.x nga 2.0.0 deri në 2.1.1; rregullimet janë në versionet 1.30.0 dhe 2.2.0. Aplikacionet janë në rrezik vetëm nëse përdorin SDK-në si një klient MCP përmes HTTP me një nga ofruesit e listuar OAuth (OAuthClientProvider, ClientCredentialsOAuthProvider, PrivateKeyJWTOAuthProvider, ose ofruesi i vjetëruar 1.x RFC7523OAuthClientProvider), mbajnë kredenciale për një shërbim të vërtetë identifikimi dhe mund të lidhen me një server që nuk e kontrollojnë plotësisht.

Për të mbyllur cenueshmërinë, përdoruesit duhet të përmirësojnë në versionin e rregulluar dhe, për ClientCredentialsOAuthProvider dhe PrivateKeyJWTOAuthProvider, të kalojnë gjithashtu një argument issuer= që emërton serverin e pritur të autorizimit. Pa këtë argument, klienti do të ndjekë përsëri çdo pikë fundore që ofron serveri MCP, edhe në versionin e rregulluar. Ofruesi i vjetëruar RFC7523OAuthClientProvider nuk ka fare opsionin issuer=, kështu që organizatat duhet të migrojnë në një ofrues të mbështetur. Pas përmirësimit, çdo regjistrim i ruajtur i klientit OAuth duhet të pastrohet një herë, sepse regjistrimet e krijuara para rregullimit nuk janë të kyçura për një shërbim specifik identifikimi dhe mbeten të shfrytëzueshme. Nëse një klient mund të jetë lidhur tashmë me një server të pabesueshëm, sekreti i klientit duhet të ndryshohet dhe tokenat aktivë të revokohen në shërbimin e vërtetimit. Në versionet më të vjetra, të pa rregulluara, nuk ka asnjë zgjidhje tjetër përveç lidhjes ekskluzivisht me serverë MCP të besueshëm.

Kontrollet e issuer-it u përfshinë për herë të parë në shënimet e lëshimit të 7 shtatorit për versionet 1.30.0 dhe 2.2.0, të listuara si ndryshime të sjelljes dhe jo si një rregullim sigurie. Njoftimi zyrtar u publikua më 28 shtator, në të njëjtën ditë kur Cycode publikoi analizën e saj të detajuar. Njoftimi u jep merita tetë raportuesve, përfshirë studiuesin e Cycode, dhe thekson se nuk janë raportuar sulme që shfrytëzojnë cenueshmërinë. Për pronarët e faqeve të internetit dhe bizneset që mbështeten në aplikacione ueb, AEU Hosting ofron pritje të menaxhuar WordPress me mjedise të forcuara sigurie që ndihmojnë në uljen e rrezikut të vjedhjes së kredencialeve duke e mbajtur softuerin dhe varësitë e tij të përditësuara përmes rregullimit dhe monitorimit proaktiv.

Si të Mbroheni

  1. Përditësoni menjëherë çdo aplikacion që përdor MCP Python SDK në versionin 1.30.0 ose 2.2.0.
  2. Nëse aplikacioni juaj përdor OAuth me ofruesit e prekur, shtoni cilësimin 'issuer' për të kyçur kredencialet në shërbimin e duhur të identifikimit.
  3. Ndryshoni sekretin e klientit dhe revokoni të gjithë tokenat aktivë për çdo shërbim që mund të jetë lidhur me një server MCP të pabesueshëm.
  4. Lidhni aplikacionet tuaja me bazë MCP vetëm me serverët në të cilët keni besim të plotë; shmangni lidhjen me serverë MCP të panjohur ose të paverifikuar.
  5. Kontrolloni rregullisht njoftimet e sigurisë së aplikacionit tuaj dhe zbatoni përditësimet sapo të publikohen.
  6. Nëse po përdorni RFC7523OAuthClientProvider-in e vjetëruar, kaloni në një alternativë të mbështetur që mbështet verifikimin e issuer-it.

Termat e Shpjeguar

  • MCP (Model Context Protocol) Një standard i hapur që lejon aplikacionet e inteligjencës artificiale të lidhen me mjete dhe burime të dhënash të jashtme.
  • SDK (Software Development Kit) Një grup mjetesh dhe bibliotekash kodi që i ndihmon zhvilluesit të ndërtojnë aplikacione më lehtë.
  • OAuth Një metodë për t'u dhënë faqeve të internetit ose aplikacioneve akses të kufizuar në llogaritë tuaja pa ndarë fjalëkalimin tuaj.
  • PKCE (Proof Key for Code Exchange) Një teknikë sigurie që parandalon një sulmues nga keqpërdorimi i një kodi autorizimi të vjedhur duke kërkuar një çelës unik prove.
  • Client secret Një varg i ngjashëm me fjalëkalimin, me jetëgjatësi, i përdorur nga një aplikacion për të provuar identitetin e tij në një shërbim identifikimi.
  • Authorization server Shërbimi që trajton identifikimet e përdoruesve, kontrollon lejet dhe lëshon tokena të përkohshëm aksesi.
  • Deprecated Një veçori që është e vjetëruar, nuk rekomandohet më dhe është planifikuar për heqje në versionet e ardhshme.

Shërbime AEU të lidhura

  • AEU DNS Resolver DNS i enkriptuar