ಇತ್ತೀಚೆಗೆ ಬಹಿರಂಗಪಡಿಸಲಾದ ಎರಡು 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).

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