Security Research
CVE-2024-46982 Next.js Cache Poisoning: silent hijacking of non-dynamic SSR pages
Thinking
2024-11-15
5 min read
Research Dossier
#Vulnerability Analysis#Code Audit#Web Security
Next.js non-dynamic SSR pages do not isolate user-specific data at the cache layer. An attacker poisons the cache with a malicious Host header, and all subsequent users receive the poisoned response.
Unlock to view this content.
ad8d9422966c73fee42096dad808c6448a272095349f41facc28f3d18d1ee66a0726fb5aaffd9271b6702e0ae53f6961031443030e63d37842b7356b4a67d1f44b648f709f84d99b1640e6f7a87a3d44129b61502fc0c5c728a88c67798e6cfb7bcb30fe880464fad1a2cf9635735fbd6e964b402ea4ed27e494f7c87c72f1c586b333a4d4b6d4ade7253d06d61bf923572a6b8c253d117e8b63642be9ad8c68eaee7d4a02592bcdbd3155abcc6a953135deec61ed6729ad92ae056a76758bfc9dbe3a6985cd8e376c1a1ffe361ad5bb4a1f33d622029485704089b1f278ebdba0cf0c7b67893ce6998850981a117644f74bd44464da7ed85676d6831bb6692b3ab928b789bf895025c6cbf3eeb32abbae46146129044872a00d845e31a20c92f8ed9c2fcc5a049e09e7404f3a64093533a01b7c0fc529630869823e4b86a2c82c7ae7bef24b098f2684a3d677ba7d99d0dfa1fd70bbc7c6de514f93bc63b9413b12847125fe820bd7520af56843765148751373f490c78afd72ee998f13228cc6ac1c255b935cadcc6cca781b93de51acaae002b812d4687b539cec6b910c3ce8c2ae273692c122f68759e546e827d722f4e3432edd61e727f0f7adddfefceea39bf59aef43025356cf80f31a5caafdcf05c5a42a6427b4d139b437fbcde029476c78e4e92e0cc8dbce18d83708bdf8d61d444274c88e2e80a0e73627affa40c628445ca898c13a4d11e2fcac973c4b5c366238d39fe62328a056958edc06591d470f6b9082c0cb0dbb27d8464f84ff0268cb0c3cfb0a5d7efaf51a11f9c0eb7838440da6cb8698f2d7a104996cc74e2d4f9d13e9a3353b6afdfa81b2b4c8586f718f69198089f325d910c9ad58d466d8f89610d9cd56272b0897d5fbd398564b37c54dff27c1b254dc945a9652bc0986d7f9478336662f8afaaffe37a3bff17b542dae711bda33497cb9444a5c30d0c544bf7a7e2762050f64732a09bac09f77dee24e71b0632dea309ffcb1b304919e34da15f107a195a2e908fe8ceb8c02bef348355a12d93c2b49428d2b6c4ba8b3599cc76edb2f00a779f6b6c073402a7d359d7b3f142a3ce4978ab9577ab9a7d7ab6a21231f1492a17d1309b70f0eb1eb25552fc565b4ecc99d04c82795dfffaeb95ef37492791daf3d42c0708254c3c1c09d4f4d7d137afa24f7de8722c4cdc74aec981f27407ad14701223bea97c5110b645b1c8c101b2c5a54291efd95bb9e447a01129c3a50d092d61586d43135d8d3ca40ceb7ed7c5db2414fa4756973ed37188278a0d1b6aab0e15102d0b18b522ae5b87e59ee82d75520779e395d2edcb0e7b7293b6ce265d326d2bde6a7709aef246e4a852b170fd5b05400e99b975c6732bc9529257b2a94d62785d660b65e186d2211c650c3e7475293e5cf871508dae4062e2d7943ac89817132d9f09507754e40aad25d42746434243f2b4e0f5b350e048b3a9cde722a98b6804cec56f8596ad2442ddc5fc4ff85effc5c1266d4f5a414c7927e42108e371c6ded189f2f2f24585c283996e5165bcb33e76a3d301b048eabae035a0ac048804715826bf873cad98cdba07164469b24d1ab963b285876fde8d41c7350c06e1ca707da47d73740ae102b167ff5815121f39d32e18fd5f79be3d45bb62d02fe189385ea6f5be3bd13205b3b7e33deca956b65801805bfa46459e5e8e717e86ffe202aa6c03b09d56e3a3d832e1c7fbc573291973f75922d390f7611e884630b9b6286022df0962378befc59aa60a6ccf8ab33c588f03d1d1e7338cbdc68a0eb8060437b710454de58c0804a60d120655aacb5a57f93f7ef6ddff973e7bf07e470bda5408c5992517785d9b04adfa4b65e1494c17ba1f3e4bc8643bd5232c2c233b02df4cf82d71d1df4631cece83c569657e2649ec442f05ebb1da57542409b8e417f507d012e36ad2a39ab48e76fc962ccea24396bc092c5b45d77103f3eb3575368acc56c9aa14042e5dae0a2e7f89784d59f1ccd97a07355bab67adcae6450608565cf8a5411e40f81004afb0fffbe2fe92803474fc5b4ef61933d19541b6c5e6582b10c2f78b1412c167f21f7ffa640332c30269466aa424df41da3ba01144a07e4608e9cdd5b898021298f85dc9e3211a6639fd3ca9de1b85d57942492d56042b89ed369a318056da5076f4ecd03fc369040656fcd7932b1cdc7e65496d10a1908f8e5d7a4ec84779731d57d1b89971d24a34f3aea20c1a3cd3077457db4052a455a7b31caf5ca6c1f046e47324c6d9ed8140f78168887912b9433774e75d46533fd8f1f69ed6d277f0dcb174d495681f1aaa3761b43d3101d92a27e3e11534b56e3760c78cf458631b4a540bd390b4a8ddf56b1667be18cce96ff07b6b29af154fb1062fd1571689f127a30b44e4bcb9fefc0087a91a695e4faac8712ea24b3c68ba9d265d960cacfabae53ac223f60d30978d2ce1a1433222bc041ac3a0bade92163a5849be75546390f8243b9dc6822702e2676c6b76e6cf7e528c2f92b9f6e3f687158aa74a9ba70b544d028f3b0ab7bee2492f5615477520dcca67927dda2be78c4dba31b6abdb2c8e76b0b3ca759ecce939b58f7b1a0069178c5d3a1fc000727aedc041c5a2c0685fd80ee96238e8f649b1cb4a68448d528a1605b5d967de290663e50d3c0cc66b952566436679570be746d05892b5b401cf348956c6f15fed0be5eb20a0725b129774d7aa5f65e33d528378d3c4561c9b482a7d83d578156801df3748d969016b514d52e096d50b14dbc8ce526c8934d32859ce92b5ab1bd39958cddc5485800bd548f5f67d5725c002e6b69e3c5e39b74e6ba6a7393b7169680515ae6887ade0254f3e8d11004ca9bdca0bca248902a2b4466097aecce7cb9138378b74152b43e8aac299bd28dcdeb0b34a3c00f22d8ca477726319f6f257867a0e5142069e9aed690e101499555ced14ea503ac42a20a5c235b03ac482ae3ab5e85b62960d3d4905cf0a8965cffe51b0c3f75b65d02e356c509acce5b2f0d93adb6b6bb8417189c616e1e04c0d5a91b704d33adef767607815046ed78b68111a745d02ad71cd59c1bce222bd339486aea1ab4fee75498c5064fbe136fa1dde074c01b8217d76fe7427cdf0148d6e242a2f5a6142977842a3f9c681ecfd02a94bb2d98af616b3c85acc06f7e18ad19e7b73013d1d6010b230a5a11aaad82b850571146c24960eb3f8c5992037da5d4a7b03767e7e46dd80124474c32037c4a1b4deff68d04b3cb5bd485258e2aed5abc0ebfc272e6f595d0646b3a191be6496a14d2edc60a23dfd52cc67acacd9200e562d5725798f8641e80d3df217c991d8e6f2708cb2e537a7031f599d82c39d1c5e9754a8a02fe1e782936e29a308914e0c4b2d15b04c6fc43292c3c03d3ee8a0f309cea720ddf44325a65f88288fe372d3311aa587207881e1de394f82f128ef356bd18a53d053a15be2ead3f522a4cc7ba2d31836b736931834b54c286b00d863dee31a5f6bc2276da181713fb80145cfac288903c3a0a068d5bc2ac3976e88721dc056161e6042d2c5010621f31380ce45408de823a34f9e0dfcfbdc1aaa658247c797b279df7e55a2712b466ffb8f03cd36b2e53f95b05461168fbc4bc8fce579e18e6e2da5defd2d571874e07e8895b0cd6cdd9767ef349e6c3edd16cf61a55fc47cf6ee23aef3223de3576d1d0fef4697125c137d38ede05c5098486c4733b4d68b74b10fb5cb9077b98813b83756f6671b4eb416c01d3debe9f1c2f1f7a87f78951b9a4dca3e5dd7aba0bffcdd16f2b8b59bb8a17fa9b878ee447b2f919c6a26856d8abdce9c598996e548c3f2cb871bbf3e1102141c2911900e2b8df9a743a4af5d3ceb6314f25639d6853017c76ec66812f928a808d27687e64abef6a5019348c0d5d74315ce57ea0adf79aebd3a460d005e6bad74d6250c8efddd1850bce97858aa3289e779db4cd7fd6aa324dab05c56c4f85c33ede7f9d0b3b65023254e0e9895476b94a0d1316ec8e0969f0e87e5cb397a434887bb296c5ae0ad04e993e9c841ca2a34f4c1139343f56ab429150f62e3f0ff628dfcda9809fb46b609a2fcf5c359afeac3dc16b3df6d2ae266cdee712244c8c173b26e3234577077c847dcec5da1dc19bbc5fd60ec3a1290aa669f359d8e3a20eeb652c6e5fdcc7002d7a9cc5ea008d9ecea188a3be594850b8f4b851d6468bba91c05ef30b061c9b94019cb438c0dde57c3486bfd7c716e3e4c0a8fabf6fdc92d54e389746bbad11928c38940fdc03a6f420570e7d8eae8ab44f02089cf897726dde7773e209130eae54969ece90370b06302150c7d99e20d7d5fb5c59c50033449253031f982ceeef2a215a3b5e41643f32bd35434a75c70cec130bc87a64f1bf8dc71c07e2a695be2cd79454b42e19925af2600544dd6b6bf16bb0053e03c04fb4f24d8cf519986a225a7d3162691d7307ed9ffb1ccccef0c98a882280c5c17bd28289591f3ecf82ae2d09d7c65bff7aac6c8f8c4618e52bacb035f4d1ad8094f7a45ade50789ef454ca0daadd91860ca17834acf8c6fa1b25c38c2fc84aeb012838e629e228d28f81915275b289c75f3d9aaba4bf6c2db9ffa51a87eef7c7d532dde43d1af556129b8a1d4756996b730bc278d5a3a4f3fcacf00f109c5055ee18b6dbd2804012251f402eb93760eaed68f7d761d44ab42aa9a7ffb4f77fffcba2f2aa84e0f649f9909ccada33867e3b80a6f4a3a3cbd07cec569b854aa3a86575652af0f6e353458e7566add9c8f7d70df34df9a6c14590124709a6222b9cc6a6a558071557a4700d807fbeb29d7777b6d3dfb871acb5a61d71c5a74c149d33409604f58e2ddf97fc64f69353263339992420611d8782da4683b118d5b4d55e6ffddd1860fc3d8da3f20ef6a56b869f27fe90ee10d68188892c03db0e7b042b1611ab95a459b7a589889ea990d03b72fbc25eaa546e37aec047fcc037c0e813b04671d46c32063a740b3970626be1e59c2d73af353dcc194d29143dd3fdcb2d90ed40ff23416d9a8042f1c471b7339d5d57334db496b398fc5148ec47dbb70cb15c229a91d0d8355fe5d391329e83462b0e471719b198aaa34b7714227ed79d27067bc2fab894e96fd63f16dea5d147160b6920f0db66854c285b529934836842bc40934aad5e7ee02fe3b8ab85e46e0bf2d41ef80404cdde6ae90c4a80c6a673a4135a03df35ade4ff43928c2e09d3e0f3038960bf2c37bce775721b499f4deb7671152981a4232a99e6fcae5f0996588cb002cc56e59834ac0cea33d8f2c76c44b649049ef350a779b3948af984595b8eaa23b3fd6a0c970b85fed9611a82937a7c3edfd303a0867f454352604267256d3e04a4c89481b232fff2070fb24d59603b8bf3c70eceb02a8188596ef7ae36becebc4f12f8c55a512cf99f90b2bcd3d8f02695eaca220455ac7df1cdbeb64f7e8d74cd8529d01312d70da163ab007539d03bba31e6dde7ccb925ced1a99fa46060ffbf198aadffa4ecf18eb8dec6a214c5f852d6566388f3550071064bce3aa4815b917448724e20792859cf2928e2e67d1d110325c89ac3c207d86b1979e29b075d865bd1f4807ce5701e15e3a82b23e2e79b05261fd58c5410a3d450210daeb70a2a07d99ed17d61173c54504a577f18e1d3d8f9da0377cb03446ed10ea7e19be0ae2a125efa1922677dc6b9d7b30fd00e5ecf2544b3cc1a755e66bbd0f17fbcd8bdb8cdcd987cef3b2cf47865aa12f1e0c900ddbd56cb5068bc0787abbd90f2692060f08fe0c7304769ffe9466793371a0259a5997a82a1cf508a2c82b3754941a8676d43c29f1b7ea721d7cd783360285ae74aecd15e2d4d11998530d0d327dbd717815b57755985e33a4ed484a43a5f8de0ac7f685e61c8960a8532842cf45aa87fdbff450e5e0446610a66cb62c03bd6a04e758fc3f4a7d0628412bb3f67314a238cb62beb63ff3747c25e786f250202ed74b693f7ccc0dadeb435b9d6714166c30858f34e321b51e42bc2c1dbdcd2496f370387920b253f9f7420777aba72e842c3885df449b19837d653f3083385342f7b1a6c16ed1693861ae69fe2bdcbc564750cba2363f00f57950a2fdce6c8199d484a17a990ecc84f43d93b26ff859d13740fd3d067a8873ac2afccda29a8e138c52631bc9f717c87b8899610ff45363bc4b8de6da74d7abbae95b8ffcd631bf499e7d4447518390f8af237bb90fc7306f8689bde8c1ef868ba8be79c28d61a586f2a6b88e5129a1f14bf6381f367c7d8118cd4a389c0b982fb0bd50798b5e1dfd14d990e12091a78426b8092cec9108066d3e44f2f56e7a1e1003939ffd00ff51abee59cbad7a052999400cb0419f8a140072c0a4cd6629f8904bb58f906625099e31a017a91b88a32a6c68dd75e963809ecef501a80f124c19c13351e4dcfd03afbec8711eb9b0a1271e7d6fff6ec0e3009c73d2a0e24983421020ce226c58381ae0a3536c092a1c5b57b990cd9804d48e4c500afbea0d910a9572dac4e71d1da6285e25d257ddb84767414fa8c3e3a1055c065a02d689950905010ff61086386459368a83d2bb68b3ca51cb2048c4170351a10f8efacc97721702f9196a6009006ab85ff435e4857c335be38c2cf28caf8b3853ac98502911ef321b0c5d1e76f83d8c911c59d470bc2ed41dcea3c34c4b8a5af8efc19ac987a109339595a1091fce1e3da6fcfdc615f2fb7041cf4d2f81bb2921e98624a91a5ca9dd0b7305c21ccc7a4d165457aa8f3a7befaa7a76c3140fc1e83e6b4b12df366323d2c9b523fbec0304fcfa87ebe2c8e08abcc85413f271c58eb7610fd6d337729a0b9518bcb5410c51ebb85af278edf5c5352f53a380e34caa7c3d55c1c9dac63e2075520c413544044f85c4aea9cb246f32cb5ff4cc8b21d01de3594726dcaa8594960a2cd1bb4b2612a79117f34ace1299904165ec9382197215a82113ee2658cd2bd00d4c29536d9a1fe7d99cb6020af91c5e465b143d6a05bea520f1094577ca9b62a8de550caa7cd167359a8bd86fd7cc169dad40e4df059f173d59e7f7e5bc857852d9e262811559dfd297c427113a2e194a29236105a1c10d2690eb91463f0addb0b4545129a3ce06b4f0892a9894bbd868d25308a2408950aab6d001acaea43b7be8bb69d3c354e3db8a6b46e3260b176b57fda5b6f1bde083a45423257dfa4cbade9fb4479f02a509338ad2e8acd94d602616ced1669b599813444517d3b6d217f6a33627f4c9094668f39e58b0ae88d5c012ad83b2414120c685b85f19a73f2ff743b714146d437896c18309023fb6c59f9851bc6b55eca7213d28c66dd49e531161ad9db0c1d9071545a33b7317b9f1e9826a012f2a4f6585371370083a397fad7b79902dc9bc799d3b46acc652bc352d423240ebf60b7d44ecc3f9fe98e44e71ea07817da5da9ecb512a9aa0b1501d679e679602e9779e8e962dd842a7d0ba1e4dc28e61ef3e7c19d3c72c643f930b4891fad7c8c1e4e936fbd8e0c096b7db4d7d8e85ad04256b558933406d4da2fe66e8694fb575bb3adbef890fe334456ccd2d8713a50a4e16c03ec78c6ae09a6c35a88820ada05ba85a9a91136cc245caedbb58d59d6d50348de859d79950593d6f7e89f2f213ece1a2adfd1787c72e8bdddc5d4b0559604991f5d2565bdfe8eaa76235b9df2306f9cc70dd9623d842503e15f4361e138856f138f43f7c629e17ded7d104c3ad1413910e58f2bcb7483c08da216311be7f8a32128bfd83db7b3ec8a7bcf2d0436ad82a13000174d09ca6d5e40c1ddcb5dbcd7af43b19535c93479b525e79fc6dea2f6cc031fff5059040ca31b5cf2cb7433c5ec7f1f2e3a01d7e72f56da42a72efce5ec59b78060d4c474244a2d2863a2dd2c38dce3a9e263fd8a172b3f6525f6ce37e1b12fc728cc11fdf522e1f1f38cc2502816c937149b1bdb92faa55914e4747e4a8a017effed35eba58b5ba7e4697ef761623a3c21a9f2fe172f18b89ef6695602b4621ba2b3438eb9dc28897c10c963cb948ee7fa4dfc7f6a598ed88fc5b1f56db77aa8a8e6880f33000f5bca8a9631d6dea20abac936c9a798e91b1213c64175275defb9afcdfcac646cf6dd4626ea68bc59fcee81287301b77a60ae5caf3ac5749f6e31ccf5b177cf1040021d9b4fc6ad26297d84d1cf0ee4ee669c3541bc39f43d86ca4a7b1f35e843ed1ef83fa978f79bda8cf9c88939206e97f0e169b4d4effd6f4a0c38adf0eb52e41790ee6f8dc98597a6cbfcc8e23db0467968b5c6c6a44b687f019b2dedb0bfecda9928b25e6331e45c418815f9dc6379f51b7f92b9d240e66cd5f4cb9c41d20402384629e840ace612cf7d73b18a80599e35fea220e170feae03ddb0a09085e8fad133165687948bb3a44b836820883273ccaac3ff9b31af30a873a5a29896209c2fc985a3aa79f2b68066b8bf6bb6866344625c6ad20d39e7d09c14d0cc6104e9d16da615e0185ea835dc062775acf4ea1bed63752f774bf91d8bfb4745f05cf38caff764d78baa93bb8111811942de219b41239f0cf748858d3c61f0c3cd48c2121fbc51511499f14a1692deb1d536f73d4329fe934618d0906cfe1ee6e5b0f5f244d4cf00f45a8f7ed3ba1ac72a560255db5d7fa94466f0ce3ad7dae104f9b53e93828c942856beaea6f78e30c24a9060b4fcee102b1bbb0b28678a1020be3706ed292eb21d1fb82bac8fe32ceca9bba12a1ccbee1384013e8e56339075867f166d5b10948fd849cd59400d3b44260ea8d5febcb8311dd6e8263462b5a05a6fd47ebb316901dbc38261e327b94468bfc6ce0f9e26ae2926dcdff5c73b1f15a8bce1784ae3cca3a65365413f14fe575da17408582c86bf297c0622b5b7b97bea7304344609bfabda7c3c61eb6074807fe35dd93470b586de80bf6ad2193d18b39527821f3a094ffff00e85e5b71879f6be9cffac387a01220798fcc1346733aea9e692f3ed69d943b3ddabbda9fa2bb44bfd482d5e29e7e3bdc20ab40793fbc288319a03291784ba7c26739969b792346af1ebdf8c0f8de590a5c2860dbec3197a7e997e83a737137c356563d4ed134ac4f744fb4185a4083c196600acd1aeb346e33017e8249d06a5ca852ce447723f0f8e588263914ef4a2de37870e44da4b0829894c4368d5efcc82d48f20faa08a7aa53dadfcf040e5aac6c1cd8da3750ccce9d1ec9bd5aa6b23aca0c84224371a225ebeb2520aafd7cad74e3e652c3f411ac3c08b8ad71e9eb910d5b61b48e5419d9503171026091605e7c47243658d2ac8f7154e637e34a5de835dfded13a355af0af6e0277fb88261b06c71054212c85a07011cbede413d1570ef749699ee54535d7e867d7ff6a95bfd5903c1cb3f67dd6ef4a33385f62306e83a7ed31b5b0b1f41d379f8a1ffb89a5b996cdbdf96f93882fb397943d79a0eb2553cfbef196dad4da498dc2870d74bf71cd385c46b2d749542c630b1b1f6f8a02862f73ad6f24745ca3845e975389a2fda955fcadf76f423833ad352564010757826c2d6ea9f35038fb0527df83e79d7c19d49814a2ad641ee2819f394b15c25bd8e4f9e57eda461e2f4be7f039e2dc4aee919bfca0b70b07d22c4d09d20ac33f1dfe0794240fa58e43dd470634f598a89b5370bbe564109a3c00e952fc9fae7264e54256c6a656657cc9e77397ab4cb89154d7cdf6f34b67541c184fb44e7a98051705cd4a410c8ff938f04156ef11bfea050c18d7dade08098838834df7c8034644194e6bfe5727e