安全研究
CVE-2024-46982 Next.js 缓存投毒:非动态 SSR 页面的静默劫持
Thinking
2024-11-15
2 分钟阅读
研究档案
#漏洞分析#代码审计#Web安全
Next.js 非动态 SSR 页面的缓存层未隔离用户特定数据,攻击者通过恶意 Header 投毒缓存,后续所有用户拿到被投毒的响应。
Unlock to view this content.
ad8d9422966c73fee42096dad808c6448a272095349f41facc28f3d18d1ee66a0726fb5aaffd9271b6702e0ae53f6961031443030e63d37842b7356b4a67d1f44b648f709f84d99b1640e6f7a87a3d44129b61502fc0c5c728a88c67798e6cfb7bcb30fe880464fad1a2cf9635735fbd6e964b402ea4ed27e494f7c87c72f1c586b333a47062292625ea7240d146fb061f3975a6253d117e97272d7df5aa897fb9fe2c09034f658aae2645a68076992d7d9de07ae63e2fac88f85e475412988dfbc9237681c983226a0cc05eab1af2ad120a3ddf3041cdd37e05c8e9a1f20d02ee99182320cb6badd9c9d56bf29fbeae328f2282a02ae003eafa192ccc31d9f1a8044b95b5cc985325c1064a42689b05089aefd489b24614dd7fead8fe3a817634634dceff1b30a828e7624128751f67f44cf3fef61eee8df4f95bc3dc1e004adff0604b128cc647ae7c6a449a2def630c482214e64b14493596c30f54e4599bfef44bb9d1130eab2edbd61aebd0b2d5b4b587dc62372d25bc4ef58b98580f9b87b8163e081aba48099d14f98066588e572a6df828a613e3b5a0dfd0679e0f79fbc225cccf1d0dd97e4eb920a31fbb1f8e7916acad03be20dc2a314a1e7e37236a6f3a1f1090c7b6845313018a8a64692bf14f2bd0e6dc5451d815f220376789b6fc8a0665d8f68df4ec02e36b2c8cb1ba4071732befd71ee9eec17c54e5c006f67d64168582fd707f5bc5715f702e446e3a7772b6cde6425eba3886e0fb55630c2b3938a88df6ee56867bb65e68cecf5d4796266e984b7330d7f64452f2caf6640c6e0da6cb8698eed8e5518761db492858ce03b8e0342d24bae996a2b98444636dc72a1a958ebb2b97414c70f30fe3723f0db41d56c03b380897cb929fd905182ac71fba68c0ba509f9f1b994ebb5189c9fd56833b3672a1b8ace12ca8f7fc604965e4775cc6072739e110441663d0c813f83970752e81f4a76e394ff181d42f82b3c9e0455c38e8788fb38da8148b8f640be70f18b0cf9bff5ab9dab7ea45ebb66c2815539efda5fc9c1f8ab2c660378f7b5bf20109268133d7dea7fb99d7c1ec744535150d75c897bbaf5d7825206c8b4f0c6b9d886d25a9ee920389a4623b362918eb3ab1c6a1d2579c27dd86b1aeb55af668b55425af3d4fc26b94498ad6dcc016036b1964e940b88ac22f86819406e3d357135c3e9811016177abd8de1f0975520e9a02546d401c3414e882f594057b0d0ddb293691d0935984caf49057526dce8d92c34c12a00b0eff0c2c32bf74508f36ef99b7eeaaa0500bdde0c6246deefd4473cc838812652acf4718239fffa9e36c7524a432f655e3f16e75b64e50f4eeaa6dafdff85925978a1a445db1b8b5556eaef3ddf25b1a903a39e441b617572811c2d0110fc59d20630d7184f80e6ed7edadd7b127507be4ef02617de4bc81b7280fafcbcf84bddffcf6e4cbdccaeb9f47ee1963b3ae7d5b00c23dd72ed2ff1c91ae68955b2a756f1cead7a933b09e0286847e405f19d3dee636ba0ef6fa7465030e3cd5fd121c4b9338eaefdf9bfa767436f11f2ce26bced0c82fe60d9e4928564e08a5e2a862b8307515a3c4df881e7f3ff8fade21ace34e830eb112ecb92bffda82e26e009cf6736dc86b5d28346e128d06a16407a577dacbad6f1faae75a2140282e7b9ac08c2572891702ecff2959a0efea13ba7ff76021e9e10c68972a363f8b644755f5047dddd66b3cdd7f715a371be890621d8f6ec8483afc816f11f6f117e534e3ddbbae38d6daee6791d5e2be3430f24e749e3d4e3b2a6f069d10cdce05349431635fb5f6ad31cc8ebc70ddab36b4fa46aa7be6a84d8f4c840f29c8c5a15cd4b1e6039a302ff2491f216f77c979b230b2ee26b462fdc89ec94600ff470de1f928588459fb76c88dd068a933c169e1ebcac9bb537d547c421474b63128bc45d753f5364e1ed4feef15193d3cd3bbfbb4eb43d38a9925218a5c7ca7c9240f66427396aaaff252f63f5216ed9d0236ac5b1cb5f1c448dc6051e6f564ca55c9bb2f81076fe007dc938e9b520731d44886dfabf3e798bf4b56cdaea975c9cfedfeae09736691a991e6ae2eba1e85c932f6663ce5f3185ce9689482a313ccc675258fc99b93280ff1319c9accdce5b14f1fc770ddd76452a98c816fbd50197bf1173149d34ce835dd5e19269e3066e2cd93ae0dde92451317f6f8c1fdee867383319a335785d30575dd0a37a66183e69d3d2dc9af0edef382c9e0e84e3a17230d4e2f1c4b092ccc9b5c023659c086d53fd83f784424995231afca4c2cac3f642b4896585a401a91edf9f5611044944f8a7c4db4ead907601ef7634077d0475df867f118e679054bd4dc4354fac024304696b842fe8596f502fd0e50e702291a9f187926f5d8900e54191199a3332d5434697447817489031b743227af53fc1f4e6e659a52f93f61d25a3d8782445f5d7c6fa815a6301ee167e48b367c4a209ab0a88279cd662fe89eb36b1c41a8fee5fd1268fb1574d56aeec1ad3874a057aff548a31e9438f23a379567cc77728d9ff7b1e1464db5af13547ba1331e54fffc66444702c95472a058f39efe8058b9fef24bcc3bc8c0b2e2740c3dacdc0f155a3b10caacd2ea91669b9562d3729e87d0419933a87d0316d92c86d9327102d3868334a55b072a3a799962a1692c168f305b011cf553c86d6e12fe8efc03ff0b0271b1cbf1ecbd076f4220927f60f122592580e282e49460409b1d820cfa669b84df57af5cc8241c7a1ebb0cbd80fa61dbfa027cd1d9a77f58afc207e3818c991b1f5eb440c4022690f4b4e7a0e6be692a265080283b8f93e2da10d702958e7874a105b7b8276a48d5897252682e742cca1cedfc80bde8fe3131a70ed5058b5fc2a043b42756a353374521158dc04348e79f0002b4f5bad015adc9be8848b0321705a620417c52fae04eff6802c52ada29f67497b3b5d5e92db0db2463a5053be2da155a06a13d283aba7b16d8495771a05002cf56d704aed25ba1d33a234c7d3261d09176baedb041a5ec1e99bb8eb54102e2acdb14c3b673907c01e50bd720f112c33b1add31e6e635fe969c2fdc496e169e5b27f24408c1af663929e6208047fa0dfd499134f24448d1f345e37d3efaa0ab77a8a364e8ca775dd15f2b8d7b2395c969c4abc56c2477ad4cb4f2621e8e960b16275b0a52afa698e37a3b5b008ecbaf44b551ac1fa0852b2828f2525af6bc71930a3302d8848ccebefe8b3c1e1d85565fe124ca578e33fe42f588531ef83f5d171484e4cacadf3ca3edc4372e2dedbf29436df87f8dc38445c72dd5755798f5e1fe7e4313d5f44ffacc50117a4cf7ba4d7031f0dcc5741e98ceea756c8709ba186b2330e055e765885c74bdfc6120174aeb40627f5196bfc0052d8bb86e71cf4c300d0cd2f3ceb910223508ac5e741d8895ab60321eea832a02ca21fd3e9ed7b1ec36a75792c3c888007ceda44ff9e599d21f8680593b408d5ee87dad50667dd6bc12ff90ee0c43f2acd8f9a8ca617853418e4fbde172649803c10393dd9b60ecc7aca898f4eddf6e36d3635b1770dc8f446a6b304b50734790da8df49ebc272c1adafacd3e881a9bda3ddd6f7a7fd27d2f88f9807e286fc28b19ca963658c74cf6d29278d41687325dd0fa294b2497f701cc291c16903eba4617a41343832136fe7468827f2a8d8b9ad01f52178672808e5ed77f4ac2d6c448375876d8dca00bdb5aa838d9c27305a7920753e6c04e5f279ae7fdbb3d3b711684fb9e2da6c5d2dbfea879cc16969bf6360fc231d8028b0115563060976a74ee232af4a0f4add6e280d7af2153903e6fb566b298ec19226b9be31073c18b9818bb87a5522b484affcfd5a1ca0611513c60e87bde27d3c9d2c8477d6877ac8f13797b720cd4b1e6e0a623c23a725f1dd2f7df2b9951bcbf845cb1e47e287961528b25275658a35bed059d7d4cf01f00be9d17e54bb7b46a38c35b9c4496a7c9c5aee73f6450ebd8598ccccac91819bcb46043dd8c1f3d413b8e13ab996e23eb1ab9279f0f49ce6a25ff8decb9989a931bc99138a37d084edd25db899c9dd620a98714d500b0dd4d7b299874b6c8331c58a3aa0266c99e2be3143327f92f4e6e2d29c33c4f1a189557030fa31bc82579af897df90a9695e2b55aeb77712450d5cc13217c8688ff1c8d90ceaf86e4ab184354cba3e451ef4a87a69fcb0db83d2c6ed907d04226873c5a28b0fd7d6f5716ba7030366d0275c74747941520cd01aae5900a7ebe73d5f658edb5a2a6c7b8687b0614be8fe22d637282f014b3e173e399d3503bc4cdceb6003a06713e4580ccdf1af7a1c415489f595c44d916325ecb17baac2a7740231f506e3614a96f0b6130cc19af1c589a4c44d3f0050ccbc11446535bff475c993ddfd556941b600544d1753cb277a847a9db2dde692619e4f90b800c72067da2b4af9280b46f520199263b77050f659430034cb548526fd5f9f149504fa3f918008e3539eb7d8082509a53a8f1ee7eba14736b0b3827d624f0fd631edb3bd66c340600cd70bcc77bb688e7132186ff9a0ddc73eef8b8749e7ee21c496865d7b2454e36bea1295238759144b8f3a969ad621c1750d31766cc837584e4e8a0094f53cd5b5933e8259430704c396f0792a447c78811d07b385a618692f5e9c7d07fb7cc076d9938925bc819ac638aa7be98fd7e81dc881f5e4c660a9b646b391d7ab4e716308eb0fcb0ef031a946ca11e159b62278e95aafe1ecafc530b42da8b9093e7eccc17f34bf8edc607b552441ce1a08c27e2abcbdac3f29c639bc8569d082844fda54852154bb5607724a9a942489edf27d4c95adb761fc45f536de8163e9adfd2b860a7f4db95207e192dcdfa943a0d4f80997f2e9fee60d50e58128d2a43b41c31ee7f6242d9544b5c7ea3c179a082f39e81986a18229d2a03246168380449b6a63949df68dd9784908e07d2af4597e55926ee8b60aaba9dcca4655662712be0f38d371ebe7e6b43fbc1accedb140716eb440205910e566ac0e004ff019f4bb12987386f07f1025f4239ab9d7b8f0824b8700f659c84e0d5224da089a93e83c67f2a414410503a6e0e65a68896cdff3b2b880669fdc4b80e3db84cc7c5a1f39113d3f18bac0229a3638ebdb39016de6b6825a352800fc5497ae72ff8ee293f14eec16542c01398d739b12ee95e68b6e2e932a71737069f1df3bae409da826f6c9aaea738dc19c17677b9e579664120dd00a82c3c5a0a94b0327096b5bf2984d315e7743cda439f1c55b7489a63c804f2cb744eb6120394be0429972f3a6b2fd02c61a7c172f8af869905b869084cf7ea0b6392e6f31858de510fb7fd21012f06e7c790f9da675b655b74c82d74cdd529b399272edbdacf189a7e8c4b85f78f323ce95b4f49801fd5dc40492eba9589f17b4a4b36fb586c22c389d47af50f07d1bb413104854516d20286b71dc854bd33e6aeac2abefbb5062aa45068ae462f565660af0fedac73ad878d8b6f1a772a192d7e8130779f7d7b2adfa4581c710053d274a3804ed173483d58687d234cc6534da8b63297c7c3a74037abbd5ed8225cf238668fbf1fda037110a5092a51883a56c4ce05602ba8257290b1584ea5c819b0e46afe547009a8d8812424171b141a00c7a2d4734e5f3046c0ed03c20b644ada58cbcfa1f16d92b6727727786c9c80c1e118c50c61cf224097d71a6b2734b5140fbb342423331e2c53b837bce715314ee532d6b8c95091fad624d83d8c2aa7e3d390fe730b256748075dc4aae5163ad1847564585e04f1ea5789a48b54d854c7e22d0cd661f8fdbe1ed75b6ae93fc2c0733c6c1841fb39d0d15f3c0d591b42d55235b5364ba444b18a2b598abe7bce2a350ae0ac38731fb4e1eca65425a747d9158559da6482bddb4601536413394b5bcd68dd65c8d94128ca4b3d6145b00a8149de67264e30baf32cee6fe3030ec34d417164111e8a31a88cea9ee1a8f3e72fb8db225361d80858f34e323103af7fc5cccc8ac55e523a0290a71d6a3d892f367460ee7ee31689c945960cf5f16e9600d45d3999222a2e422201a20d948610e191e6b1c982783042ae2776e601dd7ceb7b95898b5cfe1e0f18e7907a3196c345c3a92b4c54dc8e46f79177b3e03a8eafc4917283975aa93c159ca90e57a482beae4db65f3d3291b0d270e405f74e489ce1b7df1a53b1ddcdc64161674140f1d978bc8ce75b00e361df82c005fd40f79ba88a529953560a6422eca21fd35c5b2ed54f78bc613ab511103e7746717276ac47c32c31c1b097489f030f0d0e2c1c78918288905fce0ec3f54c3845abcee16e7c61acbd04e552afa7ffe48dfa12d8c917cc0414f8ab4a7439125ed5799dd75de818fd1373569ff24e5824ceb2d37ccd8ac8d709bb2915e5ab411682fc31888e132d12149d946ffcaec842b680695c718d91baf0da1f370dcc6f026d60dd44731d0efe36bc9981f80a1f38c69efa89bd769d45d9c84e0dd8c91b9fffbcdd59a55d2cf806258ca42ac0bf256b4efeaa717d70888f717b8f93328935864fb365835543ef786c33d215df242af9d43f56ef2fd25581148d3f5d110affae86c07365763cf897a10a9274b6cbb50a7d5f19d824a03f87da3385faf8af3bd58355d017a52bbd88daed22db9fb01d8a80400fc5946bdfe52930d1eea6a5cdfd02bfb3194fb613391550cdb9650c6bee240fd586ce24ccf6422a219a5a4d966696a5485f5f4a1ac9795336d0d1fa92675e34a8e6adb9f1d8b37d2467ec1fc8a18bab17c421683363985576a9dc7e58c5a564e32c977bab9994475b28480feb7c11ec6d6d383fa1a305d093110e8771c088e771c19bdebab03ddcf098d07d495b757669efcf6c26faa0b538f617615fe75160f593ba4aef70affd05eea54e00a67c8939249ae11f6d06cc8830d1854a0342310b03e1a02f951b17138c2a7adf3b479f4962a741ee9dee548790923b8ca6e234e8972e38b3b2d8f42ba0179fa55cfa684702dc292fa9f5009ccf3a8ae7e833703ff0286c0dfa34b55031aedb05a3db0dfead1a30089b0dd420c1756823479d79dc96d0b4d23354462179b780bfe4729d5b398e46a25b3812b6c785cb7fb8349d87e6652e69973a4414e1940be09038c8759484e317a345744d2b397cd0b6a9cc602c04a79d822d975cfc6bb3e1ee298aaba4c2e9ae554126ecc8cc356a28add87ca609ee2b535350b3aef01397a0460e418ad6c2d8fcf192eab5c4fb98d85673ec0ed4140fa063cc630f30d83b0a14070b656dc46256d27d04afa9d0d6de51b84f9f84df40be7da28c100fbaef9ffe10a890026de92a880cbbfa50934ee4cf7feefb8eb30d98ad789050da379f0b2f0c990b36b5ec2ec01b092fbddb8029574463175b8c0de7c01c4ff2212c04a232e5558734b2530654da5eb362938a74d3e6b03ffe0a2ae4fa21fe4dbabcb7dd10be3326bd2816f89ace6e051ad1019b031c56268db75afe31a46709cd4c4bb52943c03de1d053563f27a08299ca42d40156b90cf73412c9dbbf6c86aba6db0254e0fbe2f5c1ac641f04b3e0dc712d4db2fc061af17bd1ace4776ac6406a98318af9bdb9a545f300d4995e013b1da11f09f3c82371589640937d2099b3c76a3f64b730ed427eb2e485a780e7e39b24d4748b61cfd7eb8c360f1805a5c3ca434ab1ad7800ec14e08643a2e0219aab8248a161e7fe6add5621a91cbb73d5d2ddd36e86adda6c46e005ea0858154b84dae577584b682a300bdd263754029c41b0c4e134596545429bbef05ef78fdc640d5c8e224c1b9c3c5ece4991a43ee237020d202c213a92e14a8df9b70cc9475d8ba83375c5cc7f112e205292b4125ad01aae29fcf3c6208a8c60d9d8743f5b20396bb0c63d3a8d8fa98109dcce533b6e3d69b18b33fbf066ca3ec10bfae033ecedfe88861f7067a48288789f116f3d5cbc9e1188b79a774471ffe130bcc8c55bf2f32061b96161363f3ef1a4e854615d77700d3d574aa16819b9a64888e8c247d12c558af05773032f42c81789e4933c4a7c653a08f93586782a182c88d690bc9f3f4c7eff413602ce603ca65179163d9a95ef2118f1ced569495440161beaa73c1ea2c46d9b08d5130e47d5a6875cb4ec4bf93fc631e20a8db80e202599159aa5ef51b600d3b063adb6401712e5a36ed666ba9f319713de1767a1fac6db698944f368ef27b074180b4c3e3552ffdcb6526a7ae9500c672c81c4e7f132530ad018fa1808ca0b2e531b7b60712624ab12dcbdb35d4a442587898f82449f7f595e7b6477a266be3db608bcc771e87a72acf513f3fd7c4117a723ff6f1f48339f5cf98d7b442be34de9ad3fff0379780e0d8233fc787dddf3b82256853a58686066640a31bbe7970511553b7fb3cf617a1bd79d4d6307754dc421f57af06a0d5661e83dba765d1226bd5d2353c1037a90520286a9e2d29746dbd06549377b6336c9df7858bb30a93490fe7ab8059fd2b82c3f74bb1796cdd4c28f24e90d64ec80319b700175fbea3466252a7a09fa5f98a81fa470c6a577edb62083906836711866dc16ca8f63afc3c30239a2f20e131757e253b4bc8a7a71f0a32543a821e46f3077671a8c567bc676a92d1792f94e812058541bbe0d39ab5e6ae78b70b5b11b6ed339423c12b60a3642d72d4ded54