¡¾·ì϶¹«¸æ¡¿Next.js ÖÐÑë¼þÊÚÈ¨ÈÆ¹ý·ì϶(CVE-2025-29927)

°ä²¼¹¦·ò 2025-03-24

Ò»¡¢·ì϶¸ÅÊö


·ìϼûû³Æ

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.6
14.0 <= next.js < 14.2.25
15.0 <= next.js<15.2.3


Èý¡¢°²È«´ëÊ©


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-mffw
https://github.com/vercel/next.js/commit/52a078da3884efe6501613c7834a3d02a91676d2
https://github.com/vercel/next.js/commit/5fd3ae8f8542677c6294f32d18022731eab6fe48
https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
https://nvd.nist.gov/vuln/detail/CVE-2025-29927