Ò»¡¢·ì϶¸ÅÊö
·ìϼûû³Æ | Next.js ÖÐÑë¼þÊÚÈ¨ÈÆ¹ý·ì϶ |
CVE ID | CVE-2025-29927 |
·ì϶ÀàÐÍ | ÊÚÈ¨ÈÆ¹ý·ì϶ | ·¢ÏÖ¹¦·ò | 2025-03-24 |
·ì϶ÆÀ·Ö | 9.1 | ·ì϶µÈ¼¶ | ÑϳÁ |
¹¥»÷ÏòÁ¿ | ÍøÂç | ËùÐèȨÏÞ | ÎÞ |
ÀûÓÃÄÑ¶È | µÍ | Óû§½»»¥ | ÎÞ |
PoC/EXP | Òѹ«¿ª | ÔÚÒ°ÀûÓà | δ·¢ÏÖ |
Next.jsÊÇÒ»¸ö»ùÓÚReactµÄ¿ªÔ´¿ò¼Ü£¬ÓÃÓÚ¹¹½¨ÏÖ´úwebÀûÓ÷¨Ê½¡£ËüÌṩÁË·þÎñÆ÷¶ËäÖȾ£¨SSR£©¡¢¾²Ì¬ÌìÉú£¨SSG£©¡¢API·ÓɵÈÖ°ÄÜ£¬Ö§³Ö¼±¾ç¹¹½¨¸ß»úÄܵÄȫջÀûÓá£Next.jsÌṩÁË¿ª·¢ºÍ³ö²ú»·¾³µÄÓÅ»¯£¬Ò×ÓÚ²¿Êð£¬¿í·ºÀûÓÃÓÚÆóÒµ¼¶ÀûÓúÍÄÚÈÝÇý¶¯µÄÍøÕ¾¡£
2025Äê3ÔÂ24ÈÕ£¬GA»Æ½ð¼×¼¯ÍÅVSRC¼à²âµ½¹ú±í°²È«×êÑÐÔ±ÔÚzhero-web-sec°ä²¼µÄÎÄÕÂÖÐÖ¸³ö£¬Next.js 14.2.25¼°15.2.3֮ǰµÄ°æ±¾´æÔÚÒ»¸öÑϳÁµÄÖÐÑë¼þÊÚÈ¨ÈÆ¹ý·ì϶¡£¹¥»÷ÕßÄܹ»Í¨¹ýÔÚÒªÇóÖÐÔö³¤x-middleware-subrequestÍ·²¿£¬ÈƹýÖÐÑë¼þµÄÊÚȨºÍÈÏÖ¤²é³£¬½ø¶ø½Ó¼ûÊܱ£»¤µÄ×ÊÔ´»òÈÆ¹ý°²È«½ÚÔì¡£¸Ã·ì϶¿ÉÄܵ¼ÖÂÐÅϢй¶¡¢¶ñÒâÊý¾Ý½Ó¼ûµÈ°²È«·çÏÕ¡£¸Ã·ì϶µÄCVSSÆÀ·ÖΪ9.1£¬·ì϶¼¶±ðÑϳÁ¡£
¶þ¡¢Ó°ÏìÁìÓò
11.1.4 <= next.js <= 13.5.614.0 <= next.js < 14.2.25
Èý¡¢°²È«´ëÊ©
3.1 Éý¼¶°æ±¾
¹Ù·½ÒѰ䲼½¨¸´°æ±¾£¬½¨ÒéÊÜÓ°ÏìÓû§¾¡¿ì¸üС£
ÏÂÔØÁ´½Ó£ºhttps://github.com/vercel/next.js/releases/
3.2 һʱ´ëÊ©
ÈôÊÇÎÞ·¨µ±¼´Éý¼¶£¬½¨Òéͨ¹ý×èÖ¹Ô̺¬x-middleware-subrequestÍ·²¿µÄ±í²¿ÒªÇóÀ´Ï÷¼õ·çÏÕ¡£ÕâÄܹ»Í¨¹ýÅäÖÃWeb·þÎñÆ÷»òʹÓ÷À»ðǽ¹æ¶¨À´ÊµÏÖ¡£
3.3 ͨÓý¨Òé
? ¶¨ÆÚ¸üÐÂϵͳ²¹¶¡£¬Ï÷¼õϵͳ·ì϶£¬ÌáÉý·þÎñÆ÷µÄ°²È«ÐÔ¡£? ¼ÓǿϵͳºÍÍøÂçµÄ½Ó¼û½ÚÔ죬Åú¸Ä·À»ðǽսÊõ£¬¹Ø¹Ø·Ç±ØÒªµÄÀûÓö˿ڻò·þÎñ£¬Ï÷¼õ½«Î£ÏÕ·þÎñ£¨ÈçSSH¡¢RDPµÈ£©Â¶³öµ½¹«Íø£¬Ï÷¼õ¹¥»÷Ãæ¡£? ʹÓÃÆóÒµ¼¶°²È«²úÆ·£¬ÌáÉýÆóÒµµÄÍøÂ簲ȫ»úÄÜ¡£? ¼ÓǿϵͳÓû§ºÍȨÏÞÖÎÀí£¬ÆôÓöà³É·ÖÈÏÖ¤»úÔìºÍ×îÓ×ȨÏÞ×¼Ôò£¬Óû§ºÍÈí¼þȨÏÞӦά³ÖÔÚ×îµÍÏÞ¶È¡£? ÆôÓÃÇ¿ÃÜÂëÕ½Êõ²¢ÉèÖÃΪ¶¨ÆÚÅú¸Ä¡£
3.4 ²Î¿¼Á´½Ó
https://github.com/vercel/next.js/security/advisories/GHSA-f82v-jwr5-mffwhttps://github.com/vercel/next.js/commit/52a078da3884efe6501613c7834a3d02a91676d2https://github.com/vercel/next.js/commit/5fd3ae8f8542677c6294f32d18022731eab6fe48https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middlewarehttps://nvd.nist.gov/vuln/detail/CVE-2025-29927