ಇತ್ತೀಚೆಗೆ ಬಹಿರಂಗಪಡಿಸಲಾದ ಎರಡು CVEಗಳು—React Server Components ನಲ್ಲಿನ CVE-2025-55182 ಮತ್ತು Next.js middleware ನಲ್ಲಿನ CVE-2025-29927—ಆಧುನಿಕ JavaScript ಸ್ಟ್ಯಾಕ್‌ಗಳಲ್ಲಿ remote-code execution ಮತ್ತು authentication bypass ಗೆ ದಾರಿ ಮಾಡಿಕೊಡುತ್ತವೆ. ಕೇವಲ ಒಂದು ವಿನಂತಿಯು (request) ಈ ದೋಷಗಳನ್ನು ಪ್ರಚೋದಿಸಬಹುದು; ಕೇವಲ ಕಾನ್ಫಿಗರೇಶನ್ ಮೂಲಕ ಇವುಗಳನ್ನು ತಡೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ. React Server Components ಅಥವಾ Next.js middleware ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ತಂಡಗಳು ಈ ಬಗ್‌ಗಳನ್ನು ತುರ್ತು ಎಂದು ಪರಿಗಣಿಸಬೇಕು ಮತ್ತು ತಕ್ಷಣವೇ ಪ್ಯಾಚ್‌ಗಳನ್ನು (patches) ಅಳವಡಿಸಬೇಕು.

ಲಾಗ್ಸ್‌ಗಳಲ್ಲಿನ (logs) ಗದ್ದಲವು ಏಕೆ ದಾರಿತಪ್ಪಿಸುವಂತಿದೆ

ನಾವು ಒಂದು ಪ್ರೊಡಕ್ಷನ್ Next.js ಸೈಟ್‌ನಿಂದ ಒಂದು ತಿಂಗಳ ಎಡ್ಜ್ ಲಾಗ್ಸ್‌ಗಳನ್ನು (edge logs) ಪಡೆದಿದ್ದೇವೆ. ಈ ಸೆಟ್‌ನಲ್ಲಿ ದುರುದ್ದೇಶಪೂರಿತ ಎಂದು ಗುರುತಿಸಲಾದ 8,900 ವಿನಂತಿಗಳಿದ್ದವು. ಪ್ರತಿಯೊಂದೂ ಮೊದಲ ಹಂತದಲ್ಲೇ ವಿಫಲವಾಯಿತು. ಅತ್ಯಂತ ಸಾಮಾನ್ಯ URL /wp-admin/install.php ಆಗಿತ್ತು, ಇದು 518 ಬಾರಿ ಲಭ್ಯವಾಯಿತು, ಆದರೂ ಆ ಸೈಟ್ WordPress ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲ, PHP ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲ ಮತ್ತು ಯಾವುದೇ WordPress ಫೈಲ್‌ಗಳನ್ನು ಹೊಂದಿಲ್ಲ.

ಸ್ವಯಂಚಾಲಿತ ಸ್ಕ್ಯಾನರ್‌ಗಳು (Automated scanners) ಈ ಟ್ರಾಫಿಕ್ ಅನ್ನು ಸೃಷ್ಟಿಸುತ್ತವೆ. ಅವು ಇಂಟರ್ನೆಟ್‌ನಲ್ಲಿ ಅಂದಾಜು ಮಾಹಿತಿಗಳೊಂದಿಗೆ ಹುಡುಕಾಟ ನಡೆಸುತ್ತವೆ:

  • ರಹಸ್ಯಗಳು (Secrets) ಮತ್ತು ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳು – 64% ಪ್ರಯತ್ನಗಳು
  • PHP ಪ್ಯಾನಲ್‌ಗಳು ಮತ್ತು ಶೆಲ್‌ಗಳು – 22%
  • WordPress ಪಾತ್‌ಗಳು – 11%
  • ಡೇಟಾಬೇಸ್ ಟೂಲ್‌ಗಳು – 1%

ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ತಡೆಹಿಡಿಯಲಾದ ವಿನಂತಿಗಳು (blocked requests), ಬಾಟ್‌ಗಳು ನಿರೀಕ್ಷಿಸುವ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ನೀವು ಬಳಸುತ್ತಿಲ್ಲ ಎಂಬುದನ್ನು ಮಾತ್ರ ತಿಳಿಸುತ್ತವೆ. ನೀವು ಬಳಸುತ್ತಿರುವ ಅಪ್ಲಿಕೇಶನ್ ಸುರಕ್ಷಿತವಾಗಿದೆ ಎಂದು ಇದು ಖಾತರಿಪಡಿಸುವುದಿಲ್ಲ.

ಮೌನವಾದ, ಫ್ರೇಮ್‌ವರ್ಕ್-ಮಟ್ಟದ ದಾಳಿಗಳು

ದಾಳಿಗಾರರು Next.js ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಂಡಾಗ, ಟ್ರಾಫಿಕ್ ಸಾಮಾನ್ಯ ಬಳಕೆದಾರರ ವಿನಂತಿಗಳಂತೆ ಕಾಣುತ್ತದೆ, ಇದು ಫ್ರೇಮ್‌ವರ್ಕ್‌ನ ಸ್ವ মুক্তিবತ ಕಾರ್ಯವಿಧಾನಗಳನ್ನೇ ಅದರ ವಿರುದ್ಧ ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ.

React2Shell (CVE-2025-55182)

React Server Components ನಲ್ಲಿನ ದೋಷವು ದಾಳಿಗಾರರು ವಿಶೇಷವಾಗಿ ರೂಪಿಸಿದ ಪೇಲೋಡ್ ಅನ್ನು (payload) ಇಂಜೆಕ್ಟ್ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ, ಅದನ್ನು ಸರ್ವರ್ ಕೋಡ್ ಆಗಿ ಪರಿಗಣಿಸುತ್ತದೆ. ಇದರ ಪರಿಣಾಮವಾಗಿ, ಫೈರ್‌ವಾಲ್ ಅಥವಾ ವೆಬ್-ಅಪ್ಲಿಕೇಶನ್ ಫಿಲ್ಟರ್ ಅನ್ನು ಬೈಪಾಸ್ ಮಾಡುವ ಅಗತ್ಯವಿಲ್ಲದೆ ಸಂಪೂರ್ಣ remote-code execution ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಈ ದುರ್ಬಲತೆಯು ಫ್ರೇಮ್‌ವರ್ಕ್‌ನ ಒಳಗೇ ಇರುತ್ತದೆ; ಇದಕ್ಕೆ ಏಕೈಕ ಪರಿಹಾರವೆಂದರೆ ಫಿಕ್ಸ್ ಹೊಂದಿರುವ ಹೊಸ ವರ್ಷನ್‌ಗೆ ಅಪ್‌ಗ್ರೇಡ್ ಮಾಡುವುದು.

Middleware Authorization Bypass (CVE-2025-29927)

Next.js middleware ವಿನಂತಿ ಹೆಡರ್‌ಗಳ (request headers) ಆಧಾರದ ಮೇಲೆ ಭದ್ರತಾ ತಪಾಸಣೆಗಳನ್ನು ಜಾರಿಗೊಳಿಸಬಹುದು. ಈ CVE ತೋರಿಸುವಂತೆ, ದಾಳಿಗಾರರು ಒಂದು ನಿರ್ದಿಷ್ಟ ಇಂಟರ್ನಲ್ ಹೆಡರ್ ಅನ್ನು ಒದಗಿಸುವ ಮೂಲಕ middleware ಅನ್ನು ಆ ತಪಾಸಣೆಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಿಟ್ಟುಹೋಗುವಂತೆ ಮಾಡಬಹುದು. ಹೊರಗಿನಿಂದ ನೋಡಿದಾಗ ವಿನಂತಿಯು ಸಾಮಾನ್ಯವಾಗಿ ಕಾಣುತ್ತದೆ, ಇದು ಪತ್ತೆಹಚ್ಚುವುದನ್ನು ಕಷ್ಟವಾಗಿಸುತ್ತದೆ.

ಈ ಎರಡೂ ಬಗ್‌ಗಳು ಅತ್ಯಂತ ಅಪಾಯಕಾರಿ ಟ್ರಾಫಿಕ್ ಸಾಮಾನ್ಯ ಟ್ರಾಫಿಕ್‌ನೊಂದಿಗೆ ಬೆರೆತುಹೋಗಬಹುದು ಮತ್ತು ಗದ್ದಲದ WordPress ಪ್ರೋಬ್‌ಗಳನ್ನು ಹಿಡಿಯುವ ಅಲಾರಂಗಳನ್ನು ತಪ್ಪಿಸಬಹುದು ಎಂದು ತೋರಿಸುತ್ತವೆ.

ಏನಿದು ಅಪಾಯಗಳು

  • ಫ್ರೇಮ್‌ವರ್ಕ್ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಐಚ್ಛಿಕ ಎಂದು ಪರಿಗಣಿಸುವ ડેವಲಪರ್‌ಗಳು (Developers) ತಮ್ಮ ಸರ್ವರ್‌ಗಳ ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣವನ್ನು ಕಳೆದುಕೊಳ್ಳುವ ಅಪಾಯ ಎದುರಿಸುತ್ತಾರೆ.
  • ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಬಲಪಡಿಸಲು ಸ್ಟ್ಯಾಟಿಕ್ ಕಾನ್ಫಿಗರೇಶನ್ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುವ ಆಪರೇಷನ್ಸ್ ತಂಡಗಳು (Operations teams), ಫ್ರೇಮ್‌ವರ್ಕ್‌ನ ಒಳಗೇ ಚಲಿಸುವ ಕೋಡ್‌ನಿಂದ ರಕ್ಷಿಸಿಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.

ಪ್ರಾಯೋಗಿಕ ರಕ್ಷಣಾ ಚೆಕ್‌ಲಿಸ್ಟ್

  1. Deployment hygiene – .env ನಂತಹ ಫೈಲ್‌ಗಳಲ್ಲಿ ರಹಸ್ಯಗಳನ್ನು (secrets) ಇರಿಸಬೇಡಿ. ಅವುಗಳನ್ನು ರನ್‌ಟೈಮ್‌ನಲ್ಲಿ ಒದಗಿಸುವ ಎನ್ವಿರಾನ್‌ಮೆಂಟ್ ವೇರಿಯೇಬಲ್‌ಗಳಲ್ಲಿ ಅಥವಾ ಮೀಸಲಾದ ಸೀಕ್ರೆಟ್-ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಸಿಸ್ಟಮ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿ.
  2. Minimal attack surface – ನೀವು ಬಳಸದ ಫ್ರೇಮ್‌ವರ್ಕ್ ಫೀಚರ್‌ಗಳನ್ನು ಆಫ್ ಮಾಡಿ. ಅನಧಿಕೃತ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಲೋಡ್ ಆಗುವುದನ್ನು ತಡೆಯಲು ಕಟ್ಟುನಿಟ್ಟಾದ Content-Security-Policy ಅನ್ನು ಜಾರಿಗೊಳಿಸಿ.
  3. Rapid patching – ಹೊಸ ಫ್ರೇಮ್‌ವರ್ಕ್ ವರ್ಷನ್ ಬಿಡುಗಡೆಯಾದ ಕೆಲವೇ ಗಂಟೆಗಳಲ್ಲಿ ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ನಿಯೋಜಿಸಲು (deploy) ಬಿಲ್ಡ್ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿ. ಭದ್ರತಾ ಅಪ್‌ಡೇಟ್‌ಗಳನ್ನು ಬಿಡುಗಡೆಯ ಪ್ರಕ್ರಿಯೆಯ ನಿಯಮಿತ ಭಾಗವಾಗಿ ಪರಿಗಣಿಸಿ, ಅವುಗಳನ್ನು ಕೇವಲ ನಂತರದ ಆಲೋಚನೆಯಾಗಿ (after-thought) ನೋಡಬೇಡಿ.

ಮುಂದೆ ಗಮನಿಸಬೇಕಾದವುಗಳು

  • React, Next.js ಮತ್ತು ನೀವು ಅವಲಂಬಿಸಿರುವ ಇತರ ಯಾವುದೇ ರನ್‌ಟೈಮ್ ಲೈಬ್ರರಿಗಳ ಅಧಿಕೃತ ಭದ್ರತಾ ಸಲಹಾ ಫೀಡ್‌ಗಳಿಗೆ (security advisory feeds) ಸಬ್‌ಸ್ಕ್ರೈಬ್ ಮಾಡಿ.
  • JavaScript ಪ್ಯಾಕೇಜ್ ಮೆಟಾಡೇಟಾವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ವಲ್ನರಬಿಲಿಟಿ ಸ್ಕ್ಯಾನರ್‌ಗಳನ್ನು (vulnerability scanners) ಅಳವಡಿಸಿಕೊಳ್ಳಿ, ಇದರಿಂದ ಹೊಸದಾಗಿ ಪ್ರಕಟವಾದ CVE ಸ್ವಯಂಚಾಲಿತ ಅಲರ್ಟ್ ಅನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ.
  • ರೋಲ್‌ಬ್ಯಾಕ್-ರೆಡಿ (rollback-ready) ನಿಯೋಜನಾ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ನಿರ್ಮಿಸಿ; ಒಂದು ವೇಳೆ ಪ್ಯಾಚ್‌ನಿಂದ ಹಿನ್ನಡೆಗಳು (regressions) ಉಂಟಾದರೆ, ಸಿಸ್ಟಮ್ ಅನ್ನು অরಕ್ಷಿತವಾಗಿ ಬಿಡದೆ ನೀವು ಶೀಘ್ರವಾಗಿ ಹಿಂದಕ್ಕೆ ಹೋಗಬಹುದು (revert).

ಪಾಠವು ಸ್ಪಷ್ಟವಾಗಿದೆ: ನಿಮ್ಮ ಲಾಗ್ಸ್‌ಗಳಲ್ಲಿನ ಅತ್ಯಂತ ಗದ್ದಲದ ದಾಳಿಗಳು ಹೆಚ್ಚಾಗಿ ದಾರಿ ತಪ್ಪಿಸುವ ಉದ್ದೇಶದಿಂದ ಇರುತ್ತವೆ. ನಿಜವಾದ ಅಪಾಯವು ನಿಮ್ಮ ಕೋಡ್ ನಂಬುವ ಫ್ರೇಮ್‌ವರ್ಕ್‌ನಲ್ಲೇ ಅಡಗಿದೆ. ಸ್ಟ್ಯಾಕ್ ಅನ್ನು ಲೀನ್ ಆಗಿ ಇರಿಸಿ, ರಹಸ್ಯಗಳನ್ನು ಸುರಕ್ಷಿತವಾಗಿ ಸಂಗ್ರಹಿಸಿ ಮತ್ತು ಪ್ಯಾಚ್‌ಗಳನ್ನು ದಿನಚರಿಯ ಭಾಗವಾಗಿ ಪರಿಗಣಿಸಿ; ಆಗ ನೀವು ಮೌನವಾದ, ಫ್ರೇಮ್‌ವರ್ಕ್-ಮಟ್ಟದ ಬೆದರಿಕೆಗಳನ್ನು ನಿರ್ವಹಿಸಬಹುದಾದ ಅಪಾಯಗಳನ್ನಾಗಿ ಬದಲಾಯಿಸಬಹುದು.