Security Research
CVE-2023-50164 Apache Struts: Path Traversal in File Upload to RCE
Thinking
2023-12-15
5 min read
Research Dossier
#Vulnerability Analysis#Code Audit#Web Security
Apache Struts’ ActionSupport does not strictly validate upload paths, so changing a single multipart field name lets attackers drop a webshell straight into Tomcat webapps — yet another round of the old path-traversal-to-RCE story hitting Struts in 2023.
Unlock to view this content.
ad8d9422966c73fee42096dad808c6448a272095349f41facc28f3d18d1ee66a0726fb5aaffd9271b6702e0ae53f6961031443030e63d37842b7356b4a67d1f44b648f709f84d99b1640e6f7a87a3d44129b61502fc0c5c728a88c67798e6cfb7bcb30fe880464fad1a2cf9635735fbd6e964b402ea4ed27e494f7c87c72f1c586b333a4d4b6d4ade7253d06d61bf923572a6b8c253d117e8b63642be9ad8c68eaee7d4a02592bcdbd3155abcc6a953135deec61ed6729ad92ae056a76758bfc9dbe3a6985cd89376d1c17f0301acfbc0f1360952513938d706392aaf463f692fc86192321d672accbdf1cc258482c0ff743d4000add63c0176b85c54bec2b777aef28b789bfce05679d81abb4e426ee9d7c28536d131626fa45b91136e148aaf5f89829c12922bd2ba8425a7321386c3b821f750bdb605f003c82335c8fefd92f2ee0a1e71914dc2f81a7ce76ba209fc5c1e3ef64fe46292a1879c3b46dac443253913f35b6865bc45607f9640d7d10507e4138aca5dbcbbc60f58a8158379f94bd1e295c9940f2cc79d6695a93d457b6bce010ad53de633157dfef679d1874ec8eaf66358ed638f0964fe57aef31836bf2f24724dc76a368e6beb0ccf5edf3f181b490e952401867d9c0f5035ceff8c406c8f432726af0c62ef974f2caea6e144b59d2ac3a10d9dddf4a8d3204aeab9206534472d5d865caa7ff7366bcf64cc6340a56be98e7305302ece6ff9f73056b34643e9c89a31212f561d7aaf1483b12540b028d8dacac0fd928fd1979dfd34a06a5133cfb0a5d078897096ecf93d369672d17c8c4f5829bd78657a77db2100c16fc4acdec7a6733b6fedacbf1890a2c39823b599085a879891bc3b05a890099abc50ddb9f13747201d696f092974a4c6fca5df63bc7b80481f657d81de84c8b9bb8198e696472a5f4b1fd65efa8fa7c4270f37a40c9570628fc49061d72959502e84f31297e0b1272207c08e39c9225928b067cfe2c79af3ddcafbbae17df897a8528e742f7c9ade94daecda6d101e1bc483f5740827c6d0215d73b692a88b35d91d16eda3407a668f7add23a10701d63cf227a505766aec2f4f9186ba4f8d7aa6e2e240d0fde81670212f8491497c97a690ef66ce9a5ed9757c97791d5ffaefc4ea927b41d30e33f50d023c707dcd6ccc7004c611760e44db890c16b83988904fc980677473ef94140223feec4e24344755f1bc959042e5c182014fbddf18941354d59d3653491d593478b8772678dcb8d40dfb4e06a5da6581dac736066f62411dd62efd7b6f6a9e540139cf5dc7c23f8eb0c36da9489092021cc5f53648fe0e7bc296c35e47fcd63ddbda9a362d5ed326e498c251c01d8f34e4ffe96db566667e8a2323f2d7daae05bc2c375834e566b2e0fd31784ba4759d6e58ed54e0ddafc514a6a7916e2ccd93d78deed865d694e46b19357403a5f286a69620b1d5c3a13158e769e91652ed6bc8903e754ae4712931068dc0c94b6ceb6e7541270cbf1a514dac269570c99220760e2158521363110422c3fd3f95502e576fd251a0b3d19c6bfe64201739007ce14508223bd2ecad58888e37e64479a609ab794682c5b6af1f294137004fd6e3ca90ac647993503fc283b0930bc955935e1d832e190d4b29de4c209b26405f35d8e83e86f59e3be19210930712a9b89996d708b1114fbe26d59aaf1af07b870f02c2ba6e10665a03635338122427fb05c298f976b7f88306d067a58e29e6303923cdb5f28f4856917ecaf59eb30f695b9ab3fd78dec2c1a09262fcfd269baacc77606267e16569d1fcdc05275c62d615fafb3bd7dcc8dbf289eab3aa9f807b176aef646924e84506ad0ceb758cab5b7065cc9dd7bb6f3baa3c742b05f7992f87eb324f8ccd796120ea0084aade8fef02457a1359e8d1bf04ebf47f6470f038a83573a506c012368b06521a102f720d07fddec707838e5c389e7487e0c3677a0575560aece6bdfa14617abc6fea9a8d796dcc0d202d7d8ff335beae03b9eec351a72c232c1cb0014f80f9a0e62f704b4f120df2e000d2097b49c12e12605181e66403e9ea50a302bbd43240b6b3cb9e8a257256d362adc13977e15b153b3b30a124f51b30bc29c8913ccc67525939d87d72215ae7e8bce988ee3ae4b0dc62e97886f4eb888de60b41f1278a74c5546cf42e82ac34f7b35801a66e2cd93ae119681591412e1abd1acad8765cd76892447889f1979c14274a57484ae92707d586ee44d6c126d373e86e3dc7d02476c5232097e99d5124b781edcb1c83b8d28670565c45a3dee9c1369fb63346d55d6050e4a45d2e7f6f3681755c4511898be3b701f490e1ef767016ec6039805a7bd46b3331704869801d42860e1d980d7aa53e2b39df31dfb1d77eb026c3e9f1e6e32b04e1383d3f3cd156bcea488f3ae83ba36e86d83d49fb3d66dd060f1dabfb51ca26a3f71ca4c2792954956224043be41be2b0fa9a01665bc8b83b306533f408247a9c72d726922296c8abb6729e3ac7cf4f2388b6724557f1ca345afb072a713d030efa3ee63e53992b4775732790bc6d56527dcb3b030849fae0427d6f084a26b487df81ee1c9829e44fdb7a44b9378cddab7e16a1a31a9990d0b58204e99e1d4eacf61968862d07dcee284049471e432405dc77abfd9713d4380d59e36eb56476f38679b79ff3a61108f6e52010cf357c73d4005efcaff0ca1410660b129774d7aa5f65e2fda703a92745966cca3d1b7897e569718c70ee46480da8c1aa95c9622126609b64fa7cdb05186fe1f73c1d9e97f15b1d225d4d9cada09195db558ce0e349f33184d756837a282a6d96aa7b46e6bd4fb79d7984049f88a778e541cb6b7b759408bcf99a0e9f2189b223944630c77fad320f604952bfa5748be22c2ae2f9cc38085a41721a8ca146d8fe44e666f2c9e296a7874a9e9142c2ae7a49aaa973701d7048e8417f415e00afc4554345b13ad5b3ba0ab5992ef5a55f39b8d1de0a8d45eeef600497e70b70444e841d409af801f2f0cd6a7acf581bb2b549876685b95337aa91b7c4837a3ec6333219d1d40f47cf38f04e950df2a855fc39a12c0222fdd6a5978a503b5f4a251d6c35f1d8e2c4cf5c8a16dc959c312c769ea5161d31a09e2d771e3eaee183d78886f7d9b620484942493a66284ad74277586bac06e730dec1ee0f22457d7d50b5f3f045b18b8ef8fb314110b56dd5d7aa83a8a4784036aa0d5bad82875e1a568d81425504d321f0746171bb795d504fa985b80d62a8f3beb08e909bfc03efcb990c6713f760e5ef64d680ed4a5800135d89060ca7285c59c47ab48802112caf52751ce9bc57d3096108d7031158139576d7022f4dadf74239edeea78528305bb113b740ae6d13e8d1aaf81a19a5a41c6fc43292c3c03d3f285573d83a26e41d74c371752d0d3cead102d2219a507731d921f3a8ab5f32303ceed07a322a26f1f2003b9618a7c522b468984373287247172619b465ed5d5c20e8e32ff31b6f3bc213acd1f5615f1d30b02bbcd9893733c0914d75beeb93933988529d4133213ef033624025677083a270be7110e8db41b46b0a6fcdfbb97bca007167c7a7673effbe54a2d40a960fdb1b634d16a2e6acb7d4d4eba860c96b8c2c856840ae3b1fd4ce0c5c532c07d12af9b5d0cd6c98d6b79f840a4d5ffc863f1004ab55fc772f464ef3434d53067d099e4fb2c2122cf37ccca9105841089c385737e5e3eb1565eee40bc446cd9953b83776d6671b4eb41720bd7cea0cb0360465ca392d011ecf79cfdf18237a258ac81d9393e990dbac454e19e92c1e943bfe55e8891205f97aadcf2c59e8c6e49862377b97af8e1e51d2741f7ab2745fcb8d59a27662588c1c7a22c443a3bb747520f7d72ef6c9764c7dad6c208692674ecf77c392c3d98015b737818a430e4b7bac2b694fc279b40f6f59a1d381f9da496dfc56ee1a4a5f7bf27da3ecbaae765d6bd3c58ab71836f4ef9ab67926f9b0f254f283157fa8ba961279017232542c4ab537abac732619f8db96fa93493caa6fd37df66cd50dcb5438484685a142e777a56c103c711ec79190cb526c88c948a81a87665d327c73a3995e9cf59f5181bbed4ef0852f4a90565559d112129a16a597c537d833cdcc4de14cfd28617df4fdfa92207a77ee95dc7fab347e8616b411ecfc85429789f89f70b89cac4af85b8f5596d45b2b1b905d34a91b5c5c90db80f0d59d986079fa438c6ddfd607392acccc359f9acd2e1db8503af92c6533ecb4987ac16d7b639860f9947e3f82546092f8ae088fb49074ddde4962371d57472b641000ea658808c9a982a000a7e2f4a83898d3bc09db45e16d21d3b0197421b45d10ceea26f485d3c1144643a75f324585c30c74de0044e9a7a66f4b18fd80007e4b7c3a526d6921cfa2812df5efc320556986d7df175aa032814df1abdf55ec4e20f916f204029646a6f157242ff86e014cb87f3cecfe708f0969344c989c77e0230d9c7e21709dc9362e939a2688489465587449aae29b6d1828b88a3e855ce116e8cf21cc018aad5c59b43ae3235f9b6cee3016682ab08fb09f0403c28b86ff723d28f8b831168b9dcdf4f25d6b3a4ef692faaf4ac4dad8df9c4d933dcf93a30d96e3bd88a2a7976940c1175d12581e7fde9e8c8dc2d63ba1910a51bedbeea91510926011b6c94047acca748d0885f883a8a798ced8ab5a242a4a292ade5a7baca03c8deded4b5298f541489b2fca1bb8ec135a977cf8156a4b231346b77aab1a00c5f977439e68e8fb19e01fc5dbceac746924a3d3cb8374494c8c082511a410cbe6f42b248cce28e6671f2c2dfaa27bdafb05c6d8422afaa9d0262b066f0ce26b0e4fd56c4d51a33312a994a333958b485c7488efa0fc6fac15e5cb19e092caf3b9aa7f318a8a734fecc6eb1b9d86a86c09fc1416cd8650f060e554ee0d6cf1bfee9a89394fde7953d6cf3c019ba560937c99a15c7d13c94f45eb04663e44a7b1b31491a2c727e39e0b69c3034fb382e851702391e7090f0d97e97a543b0190e7f8dfe1eb08a56f376cd5d5d2b40b58db89bfc4748f953c2af58f8466f899cd6dd3555b19a8e3e88cd5c78485b1150be9be7e15478532a32a9c36642498efff684f078c13309cce0d95a5a1b3a30f2c4299241751272983fc4281eb853815bfe0263ee26eaeeadcafe6007b5d103f00302ccd52eaf17439696a47ca7057036ed19d4cec049cbcd3d12d3e1e950d006d43f24b9e02b2a062dd102cf717c1d6483ad372b99b5ebbc1c00811dc7a7148302e49371bd55a41ac5beda67559e55138bb250ac74f6aec5fe9f594783ae67b5e01253d22d86f4c52810839a2e6f32c7d60dacc43a240b51684a67776b6e0da5dd95d3f323eef50c04e04858686ad89bc414d1f92aadcd7672bfd35daccab9415ec6cb235575bb968db2b2ba99b1068eabf0220c19a05df1d1b2e301318669999534d11215e54ea76fb51b433fd46bb425f498ffb2ea258f9db5cdb86564f9a933f4f9deb9e7f7c2a1d3cceb55d6f50cfc0622cfb605197c0549de3a999a5b957b43724a3e682e5e9b3c6fa2b56979584d62c49a8197538b6d025af38d1a48c1578af6bc78e46c1446a4e51a49a2a7b12f251cd5e95e05bbce4b3b4c898b260762c9a58b1e2f3d16144d20033a40b5f6c6f79d3671d004536e8a46b1a49bf5b93f7d57d037277f03e287ccf64ed00c5dc42a40aa851c687420fd91c33681c8efa3d6d0956ce4302ced6226fe29c7929c03d9a81ecb056dbf0280a9f9d7fa681f71eb89e4c7170e6bf3dc586cc32a715c12a5ab6ccca4cf41d83197a772584bfc297b47d3d75d70f56cc5c465246c350ff90bd0dd4530031edc06d421817eb99659c67932410cdaff3448d5c4cc1a64fdafc821353b208cd66eca209e72f46caa64c2a55541447c1b3b4f5b8e6edc709cb5076b8f8de4ad82708402ba3c2124592187e27ee878fe2002d55c682478411de120b8d2a5bbfcfcfab437b898674d60c40a0cf9542f650ba72be6c8cc9dcd49753614d59601616d9b27256961ea7ee90ed9c95ff846a0e1759d17801f3e833f3a6f0d7b4eed17888648e2daf6a7d0c97c3903a9236ab54dd033fc7dc1f3db19901e4659bcdfbcc8465fd93b3de299dc146e039f9a6db58f79daa9d0c874a8dc37be3221ad843e71b8a49a8d0cad457e2b94b8d862a84dfd5348c7b1ca8c2041bc9c8ec04d7a7c1e5ba1ce37b387bd6d01f126b1b2c352af70eacbb9de31cd536868256b8888359c131bbc2889e90adffc3bf885eaadc4ed80b376ba48cbf7aefcdb059a1e0b480230537ed484d586499a14d3fa5c345ae6eaa62b2813fe9011ef57afa295a586f605d485448f2e46ade54a30260a51d87e9a8877a91bb0186a45d8ba101872c2e5c56adf8ec89612fd3718f2a6441696ee3584861e771d5ade842bb4848a17f6d7075c30a7e6dbd0b5586c5fe32c1a02338e44070211f227bb83cce2441a3ed78de0c8b265dc59dd844709c88a04befcbbd414a15e71fb4e77fb9a24c08b70155686a9746d0ea2d83a3e4942d71ef56836cd258a5b10dd611460d2459f60ed0f24b2bd68be19b844c75066351d11eae0a9c0613b196ed2deae47d75eeecbb30e76074dc224f13f92c528d9bcf2813dc39b0bd014a12dbc86ccf2239edcde41de9c143bc18b24ddee567e85eea6f5cdcf00ac891e5b9c787415079bedf0f6da6ec5da5f1a2da0130fcadee81b90ea51c83123ddfdfb96c8b6634972c1c1a2d16e4578bfeebeb0e6f3e06b2a66f70894f1bfc230f823092a269b0163b5ca7e5dc5a267f678d574ea808f4a5b614658c07106ea262e0325a2b4449a93575bd51abadbb4629bd419424eb5343e0f2dd1d98b90764bd8e13faa27413c8813440954f15506f384bb4b9d7befba3ae9ae0701f43ac37e6999e81d6440c1f124949a524c5c315b58e1e523c701071ad824299a364c954d63a73ee59df04d95de9431a6b3f03de8e14826b5b6c6b159963cd6a24ced5e4904cc3c28e0a44e97cf50cbdcb55c316fb8a886f83fda68d8c34750f20db863e0d36f2e17dc5a827e9d263d7758cffd233c467a0cffc5ecfb806b0a5b0d78d4640baf1576d8fe924f004f3f942bed2e112299a2d057bd9ecf2448c36340c10fe51242569fed06e1edc5b79d3727147af6f9e0273f7daa63bc379f496616d71f3509732155dba3c6affcf2590ea56e16f074b128d5aec2c802616ca31774b6cb8c785e282e266f72667c393f6219c48a6b8837ff9e55a698095e498c3b62513207653f8fe0827beaf17e2337005ffe7eda31421aa77acb2c4e96ed4b8df076c32601d9977cd7078c54041f99c10f51fb72070273f01071d11b8527b708b3fafb584579683ed6858ce0cef2df00d88bf09ececa6acf64669241df3c2803ef32a0c04adc2998b3d403b906ae79028d18b8ffae56a1b811175fcf10f73d352b8362eff2289bcd6b6a44a7f8c275b42adeefc1e75f3f8151be64d98f1fe469c33b2fa02dba925e026563b4e0d6e651d4161ebd59c7294ac4da2c8068919dfb4112f02b504cd3f13f5813e0d5de792d51bba56e3cc05ae0e571bf87099e9a5edd4dbcca8fb31763da2e5cbdc5bdf009d6c01e598c89c93a9d0298c3a3bac63e7863b462668987257c4cf3b2d6d8d7ab018b4dd718183369a1efcd96397e459da276649c8809916671842b4ef3106458de128d72578654a4cf6ee960b52a005c329c136540e78920c126e8cedeb442391bbdf6cd6220eb982aaaecf2e134c0391936b892fa65625b1d5dff24441980c6dd14f2cee951b78322a61e6cbb2ce28fdbf5c0a8915739af090b5462a65b6f8cb32264968f671f7d614185e9480a9518e070a6a5c863cddb259bc43b275f792e70dd9c6738f2e9fec04ccb87577e633065a7d87ba9ef60cf3f8901b5f23fade0e8c9911f7033ff17199813d892faee6d22c5557e0acf0f36f2fc23eeab960fabf36972e17668393f24a3e8b23736167a4e0a30410ea1661ba1ba068faf8c2c836d01cf379f8883a2af5ef17363588ec88997b6f339b36da8ede4da0227002d6ce4cb9620d196ef44bc9c2486a192e55f5314db46712809ac8d9ee9b9ed6c6aea8e5143bb35bc63fcf7c2206942b66e6aaa1bbf3b9a26d6642dc3e3af7d830e440d1e8a0a80a9222b789094d14ae8fe2fc83c4af851fe209485507d1b71fe45b17b9c0ce16db68ec083b6d39e6a5e3499fa9c4d8a9ea3f6604c1b3ff4b1ed59ed0c93ea23cec59393b782e7cce93aba0a306cb7c6c6e0006e7f17c72dfbaebea3d78933a546747ef851528b14f9886e6ee75310c0ead25ce66b85f2ced55acf1202754d39f00aa2fa16c4772cefece506da089be06bfb16d4825a95a2e19489e9a9c9381d5990c49bffa357826878972d6d86f6d2f58272e833a064f6e1d8b418be6788bfa6b5748decd83bfaf058e6b57542731543c55635fb99df77a9a91c44b6803af854915904f371f8046675a5fda62099564b0f7b0ae90d81a14e04ff41fbcda2b879cdcca1d1bf8213861907d53a9b02379900f906e6837c769fabd15ad4180eab184601d6a2774ec8d9f6db20fa325f7dfadd1522e7a761f603f3edf8eef850cbcd569f098f21d6b0048e275d4356c70c34b94467e6c320d0cff009f5b92d92848ada6f32b2b7b3f5992d8d45c023f0e0eb4b5348b5170960885531a2241ced717fe10713b273ae84b720afa9b8ba3a1c85b01bd96a7dc61333af788d3a172844188a848010cd5f480d22432d0eae9aeda5a63a54c6e13d2861bfa0456bd96fe92c721f9ed69f60f869b961499785c30c8575ad624eb793e4c7721d19e4baad7a51f19fe6b0492d045d29c2667bae46145820dfb5666e0c7de7aeac7cfd34494d465af3aec464756ce02d27a403870ed63f67b889d39ab535d71d305cbb9269c8352b0b55eef03b85ecbe1269bda2f2f5bc6e37626c40c8fd882e2629a7bab582afa13ad242f692bca2bcec75b240b3dec8a47da3b2c5c24fec46aae3cbcd73db11335e80bd7c6760937eb1923e62b2e7da86098fe583a5c69803bece043d379e2dc1e028123b742a3cdee5130bc0eb0dfb4786a74879586901e89ffba541f23654e82ecc1eab85c6a60dbd357241cc4c8237b664d2e7db7e8d0b16cc4c412a8b090064c0e0cdc1c98830a9f7a777a521e8e2f911fcaedbd188c3a53b0782acc3e09ac7a41276eeef825738244a5c42ffbc530eaaded4a83778342c0c461fccc3dcb7d11687a758d3a07227df438a9357105f6368051ee7d8737e75997ad5e0121e61712ca581834cfce81ae600b209f7e83763ea8a7cf7297f18574b895a42054fedd44e391170ef4fbab9ba434009f9268e30b4a95ffd051cc8d67c6a9c7cf2f72f97ba2d10bd3179c8504a52534edd79bca9b1b8d5418e29dd9796f92fc8a6373d79cadf1fa34a35b4e8047cef0ebf9ecd6d78ca07f659d781d3776a3baf0aca63f2abebeea53e65e174ddee1547906811e863388129d7985fccd272b8619020c21c5a4043217b67c8d6f9d361189ef1477af83e79d7c19841874e2bdb44ea3c5cb790b11523f3cd4c915afab72274545d370f9b3c8cbff35cf1c9166ab4636bd2d4c430ad76f780e6775847a85efc71d4612f4b599c81a4334fae194010a7cb4bb33494ae932155076e766c63274dd092793978a8ccc41b5f3fc32738e53e50d0c1be58fcaf86147f448fdd55c8acdacb030631894ba8e146de8c6aeacafae6f0536087e8972247f34d0cf556d0e466ac674a41145ea795cc08b54e8e4c301de2bcdd9dc8beb24fd55671e6e6cb961bc1642791ea3d8396c2e9a4545f3570982c201591b16379228757fa42ddd06b0f22c836719ffbd16d7eedf3a4b6d62e9ba5b1a9475a4b2d6fc57d4c3e1f9131b45883040b60ee875f42be947171465bfe7f60171f53fee744e0757b9c0a252ea7663c9f9b48dfe39555cbaeab7a5a819e8fc0edc03f9ec38c710beaae8944b1a14e74e24f17337198bf2fa64cf0657a2e21aa6f6f7434d561072b1705edb39e5a28931dcc094bcecb6717452b3267d734e817d0d529c977d767203ea09c2a4b4da33d0877d3c3c1ee973c4cecce798084e9daeb28086b0b66382236ec3ee4933476c33b5da96ff6a2402eebf1e0c7d885a349a26482576138f666f0c528267cac6206d92c51227720026ec2d04b4e3849e6c4d13b9fff57afd35aaec1419e0e2007519f547486b63a0ad9424d31198b4f6f08579ad3a995cd41cf41acacea5db631c564208b7879a7370056f1566160f107ce148faff9b2bd717cbc3cd215f395671145b271b0d746fc4b09ed5c601bd984e2bea871401984b927b1e35924489b3d0492a4f84d899d45c36854627406c065bda7c6c12845c52704c718dd74b6e0bd524582ba7137972f9cdd5d8656dda4f982165702de563b