{"id":3471,"date":"2024-05-08T11:31:33","date_gmt":"2024-05-08T16:31:33","guid":{"rendered":"https:\/\/www.darkreading.com\/cloud-security\/critical-bug-50k-tinyproxy-servers-dos-rce"},"modified":"2024-05-08T11:31:33","modified_gmt":"2024-05-08T16:31:33","slug":"critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce","status":"publish","type":"post","link":"https:\/\/ddi.mohflo.net\/index.php\/2024\/05\/08\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce\/","title":{"rendered":"Critical Bug Could Open 50K+ Tinyproxy Servers to DoS, RCE"},"content":{"rendered":"<div class=\"media_block\"><a href=\"https:\/\/i0.wp.com\/eu-images.contentstack.com\/v3\/assets\/blt6d90778a997de1cd\/blt6dd6792d2cf08732\/6602d0d1155626040a65e99f\/Hacker_Anthony_Spratt_Alamy.jpg?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?w=640&#038;ssl=1\" class=\"media_thumbnail\"><\/a><\/div>\n<div><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?w=640&#038;ssl=1\" class=\"ff-og-image-inserted\"><\/div>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">Around 50,000 instances of an open source proxy server used for small networks are exposed to <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/www.darkreading.com\/application-security\/patch-now-opennms-bug-steals-data-triggers-denial-of-service\" rel=\"noopener\">denial-of-service (DoS)<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> attacks and even potentially <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/www.darkreading.com\/application-security\/sneaky-shellcode-windows-fibers-edr-proof-code-execution\" rel=\"noopener\">remote code execution<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> (RCE), via a flaw that can be exploited by an HTTP request.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">A use-after-free flaw tracked as <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/www.tenable.com\/cve\/CVE-2023-49606\" rel=\"noopener\">CVE-2023-49606<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> is present in Tinyproxy versions 1.11.1 and 1.10.0; it allows attackers to send a simple, specially crafted HTTP Connection header to trigger memory corruption that can cause DoS, according to <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/censys.com\/cve-2023-49606\/\" rel=\"noopener\">a recent advisory<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> by threat-hunting platform provider Censys. Further, a more complex attack also can allow for RCE attacks. The flaw garners a critical rating of 9.8 out of 10 on the CVSS vulnerability-severity scale.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/tinyproxy.github.io\/\" rel=\"noopener\">Tinyproxy<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> is a lightweight, open source HTTP\/S proxy for Unix-like operating systems that&#8217;s designed for use in small networks, so most of its users are likely to be small businesses, public Wi-Fi providers, and home users, according to Censys. However, it&#8217;s also used by enterprises for testing or development, so attackers can compromise these instances of the server as well.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">&#8220;Despite its design for smaller networks, compromising a proxy server can have serious consequences such as data breaches and service disruptions,&#8221; according to the advisory.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">Though there is as yet no known active exploitation of the flaw, an Internet search conducted by Censys showed that as of May 3, there are more than 90,000 hosts exposing a Tinyproxy service. Of those, more than 57% are potentially vulnerable to the exploit, according to the advisory.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">The network with the greatest concentration of Tinyproxy servers is AMAZON-02 from Amazon Web Services, &#8220;which makes sense given that this software is likely used by smaller, individual users,&#8221; according to Censys.&nbsp;<\/span><\/p>\n<h2 class=\"ContentText ContentText_variant_h2 ContentText_align_left\" data-testid=\"content-text\" id=\"Public Exploit Available \u2014 but Does It Work?\">Public Exploit Available \u2014 but Does It Work?<\/h2>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">Cisco Talos on May 1 published <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/talosintelligence.com\/vulnerability_reports\/TALOS-2023-1889\" rel=\"noopener\">proof-of-concept exploit<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> for the flaw, saying that it demonstrates how a simple HTTP request can trigger CVE-2023-49606. But a <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/github.com\/tinyproxy\/tinyproxy\/commits\/master\/\" rel=\"noopener\">post on GitHub<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> by the maintainer of the Tinyproxy project \u2014 who goes by the online name &#8220;rofl0r&#8221; \u2014 called Cisco Talos&#8217; description of the flaw and how it&#8217;s exploited &#8220;useless details&#8221; that don&#8217;t focus on the actual bug or paint a true depiction of how to exploit it.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">The maintainer goes on in the post to describe the flaw, deemed as &#8220;nasty,&#8221; and includes a link to an <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/github.com\/tinyproxy\/tinyproxy\/commit\/12a8484265f7b00591293da492bb3c9987001956\" rel=\"noopener\">update<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> that Tinyproxy&#8217;s maintainer said fixes the vulnerability.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">Cisco Talos did not immediately respond to request for comment Wednesday on the claims made by rofl0r that refute its researchers&#8217; assessment of the flaw and its exploit.<\/span><\/p>\n<h2 class=\"ContentText ContentText_variant_h2 ContentText_align_left\" data-testid=\"content-text\" id=\"Breaking Down the Tinyproxy Bug\">Breaking Down the Tinyproxy Bug<\/h2>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">The flaw resides in code to remove the &#8220;connection&#8221; and &#8220;proxy-connection&#8221; headers from the list of headers received in the src\/reqs.c, remove_connection_headers() request in Tinyproxy, according to rofl0r&#8217;s GitHub post.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">The affected code was written in 2002 and was never updated, according to rofl0f, and it triggers the following chain of events: The value of either &#8220;connection&#8221; or &#8220;proxy-connection&#8221; is retrieved from the key-value (KV) store, it is split up in pieces using a number of potential delimiters, and each piece is removed from the KV store.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">&#8220;The bug is that if one of those pieces is either &#8216;connection&#8217; or &#8216;proxy-connection&#8217; (case-insensitive) and the same as the key used earlier to retrieve the value,&#8221; the maintainer explained. &#8220;It will be deleted (freed) from the [KV] store, but the code continues accessing the value pointer it retrieved earlier.&#8221;<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">The bug &#8220;certainly allows&#8221; <\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"><a class=\"ContentText-BodyTextChunk ContentText-BodyTextChunk_link\" target=\"_blank\" href=\"https:\/\/www.darkreading.com\/application-security\/cisco-ios-bugs-unauthenticated-remote-dos-attacks\" rel=\"noopener\">a DoS attack<\/a><\/span><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\"> on the server if it &#8220;is either using musl libc 1.2+ &#8211; whose hardened memory allocator automatically detects UAF, or built with an address sanitizer,&#8221; according to the post. It also &#8220;can indeed&#8221; potentially lead to RCE.<\/span><\/p>\n<h2 class=\"ContentText ContentText_variant_h2 ContentText_align_left\" data-testid=\"content-text\" id=\"Exposure &amp; Mitigation for CVE-2023-49606\">Exposure &amp; Mitigation for CVE-2023-49606<\/h2>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">While Cisco Talos claims that an attacker can make a simple unauthenticated HTTP request to trigger the vulnerability, rofl0r refuted that claim, noting that the code is &#8220;only triggered after access list checks and authentication have succeeded.&#8221;<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">This means that if a Tinyproxy administrator uses basic authentication with a reasonably secure password, they are protected against compromise. Additionally, if the proxy is available only on a trusted private network, such as inside a corporate environment, it can&#8217;t be exploited by external attackers, according to rofl0r.<\/span><\/p>\n<p class=\"ContentParagraph ContentParagraph_align_left\" data-testid=\"content-paragraph\"><span class=\"ContentText ContentText_variant_bodyNormal\" data-testid=\"content-text\">In addition to installing the update provided on GitHub, Tinyproxy administrators also can avoid potential compromise by ensuring that a Tinyproxy service is not exposed to the public Internet, particularly if it&#8217;s in use in a development or testing environment, according to Cisco Talos.<\/span><\/p>\n<p><a href=\"https:\/\/www.darkreading.com\/cloud-security\/critical-bug-50k-tinyproxy-servers-dos-rce\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Around 50,000 instances of an open source proxy server used<\/p>\n","protected":false},"author":12,"featured_media":3472,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[809],"class_list":["post-3471","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-dark-reading"],"featured_image_urls":{"full":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=1815%2C1083&ssl=1",1815,1083,false],"thumbnail":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?resize=150%2C150&ssl=1",150,150,true],"medium":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=300%2C179&ssl=1",300,179,true],"medium_large":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=640%2C382&ssl=1",640,382,true],"large":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=640%2C382&ssl=1",640,382,true],"1536x1536":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=1536%2C917&ssl=1",1536,917,true],"2048x2048":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=1815%2C1083&ssl=1",1815,1083,true],"chromenews-featured":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=1024%2C611&ssl=1",1024,611,true],"chromenews-large":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?resize=825%2C575&ssl=1",825,575,true],"chromenews-medium":["https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?resize=590%2C410&ssl=1",590,410,true]},"author_info":{"display_name":"Dark Reading","author_link":"https:\/\/ddi.mohflo.net\/index.php\/author\/darkreading\/"},"category_info":"<a href=\"https:\/\/ddi.mohflo.net\/index.php\/category\/uncategorized\/\" rel=\"category tag\">Uncategorized<\/a>","tag_info":"Uncategorized","comment_count":"0","jetpack_featured_media_url":"https:\/\/i0.wp.com\/ddi.mohflo.net\/wp-content\/uploads\/2024\/05\/critical-bug-could-open-50k-tinyproxy-servers-to-dos-rce.jpg?fit=1815%2C1083&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/3471","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/comments?post=3471"}],"version-history":[{"count":0,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/posts\/3471\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/media\/3472"}],"wp:attachment":[{"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/media?parent=3471"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/categories?post=3471"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ddi.mohflo.net\/index.php\/wp-json\/wp\/v2\/tags?post=3471"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}