പുതുതായി വെളിപ്പെട്ട രണ്ട് CVE-കൾ—React Server Components-ലെ CVE-2025-55182-ഉം Next.js middleware-ലെ CVE-2025-29927-ഉം—ആധുനിക JavaScript സ്റ്റാക്കുകളിൽ റിമോട്ട്-കോഡ് എക്സിക്യൂഷനും (remote-code execution) ഓതന്റിക്കേഷൻ ബൈപാസും (authentication bypass) സാധ്യമാക്കുന്നു. ഒരു സിംഗിൾ റിക്വസ്റ്റ് മതി ഈ പിഴവുകൾ പ്രയോജനപ്പെടുത്താൻ; കോൺഫിഗറേഷൻ കൊണ്ട് മാത്രം ഇവ തടയാനാവില്ല. React Server Components അല്ലെങ്കിൽ Next.js middleware ഉപയോഗിക്കുന്ന ടീമുകൾ ഈ ബഗുകളെ അടിയന്തിരമായി പരിഗണിക്കുകയും ഉടൻ തന്നെ പാച്ചുകൾ (patches) പുറത്തിറക്കുകയും വേണം.

ലോഗുകളിലെ ബഹളങ്ങൾ എന്തുകൊണ്ട് തെറ്റിദ്ധരിപ്പിക്കുന്നു

ഒരു പ്രൊഡക്ഷൻ Next.js സൈറ്റിൽ നിന്നുള്ള ഒരു മാസത്തെ എഡ്ജ് ലോഗുകൾ (edge logs) ഞങ്ങൾ പരിശോധിച്ചു. അതിൽ 8,900 റിക്വസ്റ്റുകൾ മാലീഷ്യസ് (malicious) ആണെന്ന് അടയാളപ്പെടുത്തിയിട്ടുണ്ട്. അവയിൽ മിക്കവയും ആദ്യ ഘട്ടത്തിൽ തന്നെ പരാജയപ്പെട്ടു. ഏറ്റവും കൂടുതൽ കാണപ്പെട്ട URL /wp-admin/install.php ആയിരുന്നു (518 തവണ), എന്നാൽ ആ സൈറ്റ് WordPress ഉപയോഗിക്കുന്നില്ല, PHP ഉപയോഗിക്കുന്നില്ല, കൂടാതെ അതിൽ WordPress ഫയലുകളുമില്ല.

ഓട്ടോമേറ്റഡ് സ്കാനറുകളാണ് ഇത്തരത്തിലുള്ള ട്രാഫിക് ഉണ്ടാക്കുന്നത്. അവ ഇന്റർനെറ്റിൽ പലതരം ഊഹങ്ങൾ പരീക്ഷിച്ചുകൊണ്ട് താഴെ പറയുന്നവ തിരയുന്നു:

  • രഹസ്യ വിവരങ്ങളും (Secrets) കോൺഫിഗറേഷൻ ഫയലുകളും – 64% ശ്രമങ്ങൾ
  • PHP പാനലുകളും ഷെല്ലുകളും – 22%
  • WordPress പാത്തുകൾ – 11%
  • ഡാറ്റാബേസ് ടൂളുകൾ – 1%

ബ്ലോക്ക് ചെയ്യപ്പെട്ട റിക്വസ്റ്റുകളുടെ ഉയർന്ന എണ്ണം സൂചിപ്പിക്കുന്നത് ബോട്ടുകൾ പ്രതീക്ഷിക്കുന്ന സോഫ്റ്റ്‌വെയറല്ല നിങ്ങൾ ഉപയോഗിക്കുന്നത് എന്നാണ്. എന്നാൽ നിങ്ങൾ ഉപയോഗിക്കുന്ന ആപ്ലിക്കേഷൻ സുരക്ഷിതമാണെന്ന് ഇത് ഉറപ്പുനൽകുന്നില്ല.

നിശബ്ദമായ, ഫ്രെയിംവർക്ക് തലത്തിലുള്ള ആക്രമണങ്ങൾ

ഒരു അറ്റാക്കർ Next.js ആപ്പിനെ ലക്ഷ്യം വെക്കുമ്പോൾ, ആ ട്രാഫിക് സാധാരണ ഉപയോക്താക്കളുടെ റിക്വസ്റ്റുകൾ പോലെ തോന്നും; അവർ ഫ്രെയിംവർക്കിന്റെ തന്നെ സംവിധാനങ്ങളെ അതിനെതിരെ ഉപയോഗിക്കുന്നു.

React2Shell (CVE-2025-55182)

React Server Components-ലെ ഒരു പിഴവ് കാരണം, അറ്റാക്കർക്ക് പ്രത്യേകമായി തയ്യാറാക്കിയ ഒരു പേലോഡ് (payload) ഇൻജക്ട് ചെയ്യാൻ സാധിക്കും, ഇത് സെർവർ ഒരു കോഡായി പരിഗണിക്കും. ഫയർവാളോ വെബ്-ആപ്ലിക്കേഷൻ ഫിൽട്ടറോ ബൈപാസ് ചെയ്യേണ്ട ആവശ്യമില്ലാതെ തന്നെ പൂർണ്ണമായ റിമോട്ട്-കോഡ് എക്സിക്യൂഷൻ ഇതിലൂടെ സാധ്യമാകും. ഈ സുരക്ഷാ വീഴ്ച ഫ്രെയിംവർക്കിനുള്ളിലാണ്; ഇതിനുള്ള ഏക പരിഹാരം ഈ പിഴവ് പരിഹരിച്ച പുതിയ വേർഷനിലേക്ക് അപ്‌ഗ്രേഡ് ചെയ്യുക എന്നതാണ്.

Middleware Authorization Bypass (CVE-2025-29927)

റിക്വസ്റ്റ് ഹെഡറുകൾ (request headers) അടിസ്ഥാനമാക്കി സെക്യൂരിറ്റി ചെക്കുകൾ നടപ്പിലാക്കാൻ Next.js middleware-ന് സാധിക്കും. എന്നാൽ ഈ CVE പ്രകാരം, ഒരു അറ്റാക്കർക്ക് പ്രത്യേകമായ ഒരു ഇന്റേണൽ ഹെഡർ നൽകിക്കൊണ്ട് മിഡിൽവെയറിനെ ഈ ചെക്കുകൾ പൂർണ്ണമായും ഒഴിവാക്കാൻ പ്രേരിപ്പിക്കാൻ കഴിയും. പുറമെ നിന്ന് നോക്കുമ്പോൾ ഈ റിക്വസ്റ്റ് സാധാരണമായി തോന്നും, അതിനാൽ ഇത് കണ്ടെത്തുന്നത് പ്രയാസകരമാണ്.

സാധാരണ WordPress പ്രോബുകൾ കണ്ടെത്താൻ സഹായിക്കുന്ന അലാറങ്ങളെ മറികടന്ന്, ഏറ്റവും അപകടകരമായ ട്രാഫിക് പോലും ദൈനംദിന ട്രാഫിക്കുമായി ഇടകലർന്ന് വരാമെന്ന് ഈ രണ്ട് ബഗുകളും കാണിച്ചുതരുന്നു.

ഇതിന്റെ ആഘാതം എന്താണ്

  • ഡെവലപ്പർമാർ ഫ്രെയിംവർക്ക് അപ്‌ഡേറ്റുകൾ നിർബന്ധമില്ലാത്തവയായി കാണുന്നുണ്ടെങ്കിൽ അവരുടെ സെർവറുകൾ പൂർണ്ണമായും നിയന്ത്രണത്തിൽ നഷ്ടപ്പെടാൻ സാധ്യതയുണ്ട്.
  • സ്റ്റാക്കിനെ സുരക്ഷിതമാക്കാൻ സ്റ്റാറ്റിക് കോൺഫിഗറേഷനുകളെ മാത്രം ആശ്രയിക്കുന്ന ഓപ്പറേഷൻസ് ടീമുകൾക്ക്, ഫ്രെയിംവർക്കിനുള്ളിൽ തന്നെ പ്രവർത്തിക്കുന്ന കോഡുകളെ പ്രതിരോധിക്കാൻ കഴിയില്ല.

പ്രായോഗികമായ പ്രതിരോധ ചെക്ക്‌ലിസ്റ്റ്

  1. ഡെപ്ലോയ്‌മെന്റ് ഹൈജീൻ (Deployment hygiene).env പോലുള്ള ഫയലുകളിൽ രഹസ്യ വിവരങ്ങൾ (secrets) ഉൾപ്പെടുത്തരുത്. അവ റൺടൈമിൽ നൽകുന്ന എൻവയോൺമെന്റ് വേരിയബിളുകളിലോ അല്ലെങ്കിൽ പ്രത്യേകമായ ഒരു സീക്രട്ട്-മാനേജ്‌മെന്റ് സിസ്റ്റത്തിലോ സൂക്ഷിക്കുക.
  2. മിനിമൽ അറ്റാക്ക് സർഫസ് (Minimal attack surface) – ഉപയോഗിക്കാത്ത ഫ്രെയിംവർക്ക് ഫീച്ചറുകൾ ഓഫ് ചെയ്യുക. അനധികൃത സ്ക്രിപ്റ്റുകൾ ലോഡ് ചെയ്യുന്നത് തടയുന്ന കർശനമായ Content-Security-Policy നടപ്പിലാക്കുക.
  3. വേഗത്തിലുള്ള പാച്ചിംഗ് (Rapid patching) – പുതിയ ഫ്രെയിംവർക്ക് വേർഷനുകൾ റിലീസ് ചെയ്ത് മണിക്കൂറുകൾക്കുള്ളിൽ ടെസ്റ്റ് ചെയ്യാനും ഡെപ്ലോയ് ചെയ്യാനും സാധിക്കുന്ന രീതിയിൽ ബിൽഡ് പൈപ്പ്‌ലൈൻ ഓട്ടോമേറ്റ് ചെയ്യുക. സെക്യൂരിറ്റി അപ്‌ഡേറ്റുകളെ ഒരു അധിക ജോലി എന്ന നിലയിലല്ല, മറിച്ച് റിലീസ് പ്രക്രിയയുടെ സ്വാഭാവിക ഭാഗമായി കാണുക.

ഇനി ശ്രദ്ധിക്കേണ്ട കാര്യങ്ങൾ

  • React, Next.js, കൂടാതെ നിങ്ങൾ ഉപയോഗിക്കുന്ന മറ്റ് റൺടൈം ലൈബ്രറികളുടെയും ഔദ്യോഗിക സെക്യൂരിറ്റി അഡ്വൈസറി ഫീഡുകൾ സബ്‌സ്‌ക്രൈബ് ചെയ്യുക.
  • JavaScript പാക്കേജ് മെറ്റാഡാറ്റ മനസ്സിലാക്കാൻ കഴിയുന്ന വൾനറബിലിറ്റി സ്കാനറുകൾ (vulnerability scanners) ഉപയോഗിക്കുക, അങ്ങനെ പുതിയൊരു CVE പ്രസിദ്ധീകരിക്കപ്പെട്ടാൽ ഉടൻ തന്നെ ഒരു ഓട്ടോമാറ്റിക് അലേർട്ട് ലഭിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കുക.
  • റോളബാക്ക് ചെയ്യാൻ സാധിക്കുന്ന ഒരു ഡെപ്ലോയ്‌മെന്റ് പൈപ്പ്‌ലൈൻ നിർമ്മിക്കുക; ഒരു പാച്ച് സിസ്റ്റത്തിൽ പ്രശ്നങ്ങൾ ഉണ്ടാക്കിയാൽ, സിസ്റ്റം അപകടത്തിലാക്കാതെ വേഗത്തിൽ പഴയ അവസ്ഥയിലേക്ക് മടങ്ങാൻ ഇത് സഹായിക്കും.

പാഠം വ്യക്തമാണ്: നിങ്ങളുടെ ലോഗുകളിലെ ഏറ്റവും വലിയ ബഹളങ്ങൾ പലപ്പോഴും ശ്രദ്ധ തിരിക്കാനുള്ള തന്ത്രങ്ങൾ മാത്രമാണ്. യഥാർത്ഥ അപകടം ഒളിച്ചിരിക്കുന്നത് നിങ്ങളുടെ കോഡ് വിശ്വസിക്കുന്ന ഫ്രെയിംവർക്കിനുള്ളിലാണ്. സ്റ്റാക്ക് ലളിതമായി സൂക്ഷിക്കുക, രഹസ്യങ്ങൾ സുരക്ഷിതമായി സൂക്ഷിക്കുക, പാച്ചുകൾ പതിവ് ജോലിയായി കാണുക; എങ്കിൽ നിശബ്ദമായ, ഫ്രെയിംവർക്ക് തലത്തിലുള്ള ഭീഷണികളെ നിയന്ത്രിക്കാവുന്ന റിസ്കുകളാക്കി മാറ്റാൻ നിങ്ങൾക്ക് സാധിക്കും.