{"id":16671,"date":"2021-07-07T16:36:33","date_gmt":"2021-07-07T14:36:33","guid":{"rendered":"https:\/\/herolab-usd.formwandler.rocks\/security-advisories\/usd-2020-0024\/"},"modified":"2021-07-19T14:15:00","modified_gmt":"2021-07-19T12:15:00","slug":"usd-2020-0024","status":"publish","type":"page","link":"https:\/\/herolab.usd.de\/en\/security-advisories\/usd-2020-0024\/","title":{"rendered":"usd-2020-0024"},"content":{"rendered":"<p>[et_pb_section fb_built=\"1\" _builder_version=\"4.9.4\" _module_preset=\"default\" background_color=\"#2E353D\" custom_padding=\"||0px|||\"][et_pb_row _builder_version=\"4.9.4\" _module_preset=\"default\"][et_pb_column type=\"4_4\" _builder_version=\"4.9.4\" _module_preset=\"default\"][et_pb_text _builder_version=\"4.9.4\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" hover_enabled=\"0\" sticky_enabled=\"0\"]<\/p>\n<h1 class=\"h-custom-headline usd-small-letters h2\"><span>usd-2020-0024 (CVE-2020-14171) | Bitbucket Server 7.2.3<\/span><\/h1>\n<p><span><\/span><br \/><strong>Advisory ID<\/strong><span>: usd-2020-0024<\/span><br \/><strong>CVE Number<\/strong><span>: CVE-2020-14171<\/span><br \/><strong>Affected Product<\/strong><span>: Bitbucket Server<\/span><br \/><strong>Affected Version<\/strong><span>: 4.9.0 &lt;= version &lt; 7.2.4<\/span><br \/><strong>Vulnerability Type<\/strong><span>: Unencrypted Service<\/span><br \/><strong>Security Risk<\/strong><span>: Medium<\/span><br \/><strong>Vendor URL<\/strong><span>: <a href=\"https:\/\/www.atlassian.com\/de\/software\/bitbucket\" target=\"_blank\" rel=\"noopener\">https:\/\/www.atlassian.com\/de\/software\/bitbucket<\/a><\/span><br \/><strong>Vendor Status<\/strong><span>: Fixed<\/span><\/p>\n<h3><\/h3>\n<h3>Description<\/h3>\n<p>Bitbucket allows the import of external repositories. A username and personal access token must be provided when importing repositories from GitHub Enterprise. These credentials get base64 encoded and sent in an import request with Basic Auth.<\/p>\n<p>It is possible to send such import requests using the unencrypted HTTP protocol. In this case, base64 offers no protection to the credentials and an attacker who performs a man-in-the-middle attack can capture the Basic Auth string and convert it into plain text.<\/p>\n<h3><\/h3>\n<h3>Proof of Concept (PoC)<\/h3>\n<p><span>1. Go to the repository import page (\u201e\/plugins\/servlet\/import-repository\/~USERNAME#landing-page\u201c) and enter a URL starting with \u201ehttp:\/\/\u201c into the \u201eServer URL\u201c field and enter your credentials into the \u201eUsername\u201c and \u201ePersonal access token\u201c fields:<\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2021\/07\/usd20200024_01.png\" _builder_version=\"4.9.4\" _module_preset=\"default\" title_text=\"usd20200024_01\" hover_enabled=\"0\" sticky_enabled=\"0\"][\/et_pb_image][et_pb_text _builder_version=\"4.9.4\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" hover_enabled=\"0\" sticky_enabled=\"0\"]<\/p>\n<p><span>2. The MitM attacker can see the unencrypted HTTP request sent by the Atlassian HttpClient:<\/span><\/p>\n<p>[\/et_pb_text][et_pb_image src=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2021\/07\/usd20200024_02.png\" _builder_version=\"4.9.4\" _module_preset=\"default\" title_text=\"usd20200024_02\" hover_enabled=\"0\" sticky_enabled=\"0\"][\/et_pb_image][et_pb_image src=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2021\/07\/usd20200024_03.png\" _builder_version=\"4.9.4\" _module_preset=\"default\" title_text=\"usd20200024_03\" hover_enabled=\"0\" sticky_enabled=\"0\"][\/et_pb_image][et_pb_text _builder_version=\"4.9.4\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" hover_enabled=\"0\" sticky_enabled=\"0\"]<\/p>\n<div class=\"e16902-22 x-container max width\">\n<div class=\"e16902-23 x-column x-sm x-1-1\">\n<h3>Fix<\/h3>\n<p><span>Consider to only allow encrypted (HTTPS) connections for the Github Enterprise importing feature. If this is not possible, it might still be an added benefit to warn the end-user about the possible risks before sending the credentials unencrypted.<\/span><\/p>\n<h3><\/h3>\n<h3>Timeline<\/h3>\n<ul>\n<li>2020-03-12 First contact request via <a href=\"mailto:security@atlassian.com\">security@atlassian.com<\/a><\/li>\n<li>2020-05-20 Contact request via Support forum<\/li>\n<li>2020-07-08 Vendor publishes advisory: <a href=\"https:\/\/jira.atlassian.com\/browse\/BSERV-12434\" target=\"_blank\" rel=\"noopener\">https:\/\/jira.atlassian.com\/browse\/BSERV-12434<\/a><\/li>\n<li><span>2020-07-15 Security advisory released<\/span><\/li>\n<\/ul>\n<h3><\/h3>\n<h3>Credits<\/h3>\n<p><span>This security vulnerability was found by Marcus Nilsson of usd AG.<\/span><\/p>\n<\/div>\n<\/div>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>usd-2020-0024 (CVE-2020-14171) | Bitbucket Server 7.2.3 Advisory ID: usd-2020-0024CVE Number: CVE-2020-14171Affected Product: Bitbucket ServerAffected Version: 4.9.0 &lt;= version &lt; 7.2.4Vulnerability Type: Unencrypted ServiceSecurity Risk: MediumVendor URL: https:\/\/www.atlassian.com\/de\/software\/bitbucketVendor Status: Fixed Description Bitbucket allows the import of external repositories. A username and personal access token must be provided when importing repositories from GitHub Enterprise. These credentials get [&hellip;]<\/p>\n","protected":false},"author":96,"featured_media":0,"parent":16124,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-16671","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/16671","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/users\/96"}],"replies":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/comments?post=16671"}],"version-history":[{"count":0,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/16671\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/16124"}],"wp:attachment":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/media?parent=16671"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}