{"id":57101,"date":"2024-05-28T17:10:09","date_gmt":"2024-05-28T13:10:09","guid":{"rendered":"https:\/\/packetstormsecurity.com\/files\/178813\/SA-20240524-0.txt"},"modified":"2024-05-28T17:10:09","modified_gmt":"2024-05-28T13:10:09","slug":"siemens-cp-xxxx-series-exposed-serial-shell","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/siemens-cp-xxxx-series-exposed-serial-shell\/","title":{"rendered":"Siemens CP-XXXX Series Exposed Serial Shell"},"content":{"rendered":"<p>SEC Consult Vulnerability Lab Security Advisory &lt; 20240524-0 &gt;<br \/>=======================================================================<br \/>title: Exposed Serial Shell on multiple PLCs<br \/>product: Siemens CP-XXXX Series (CP-2014, CP-2016, CP-2017, CP-2019, CP-5014)<br \/>vulnerable version: All hardware revisions<br \/>fixed version: Hardware is EOL, no fix<br \/>CVE number: &#8211;<br \/>impact: Low<br \/>homepage: https:\/\/www.siemens.com<br \/>found: ~2023-06-01<br \/>by: Steffen Robertz (Office Vienna)<br \/>Gerhard Hechenberger (Office Vienna)<br \/>Constantin Schieber-Kn\u00f6bl (Office Vienna)<br \/>SEC Consult Vulnerability Lab<\/p>\n<p>An integrated part of SEC Consult, an Eviden business<br \/>Europe | Asia<\/p>\n<p>https:\/\/www.sec-consult.com<\/p>\n<p>=======================================================================<\/p>\n<p>Vendor description:<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br \/>&#8220;We are a technology company focused on industry, infrastructure,<br \/>transport, and healthcare. From more resource-efficient factories,<br \/>resilient supply chains, and smarter buildings and grids, to cleaner<br \/>and more comfortable transportation as well as advanced healthcare,<br \/>we create technology with purpose adding real value for customers.&#8221;<\/p>\n<p>Source: https:\/\/new.siemens.com\/global\/en\/company\/about.html<\/p>\n<p>Business recommendation:<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>The hardware is no longer produced nor offered to the market. Hence<br \/>HW adaptions resulting in modified products are not possible anymore.<br \/>The described HW behavior on this generation of devices cannot be<br \/>corrected by means of FW patches.<\/p>\n<p>The risk of successful exploitation is considered low as physical access to<br \/>those devices is needed.<\/p>\n<p>SEC Consult highly recommends to perform a thorough security review of the product<br \/>conducted by security professionals to identify and resolve potential further<br \/>security issues.<\/p>\n<p>Vulnerability overview\/description:<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>1) Exposed Serial Shell on multiple Siemens PLCs<br \/>A serial interface can be accessed with physical access to the PCB. After<br \/>connecting to the interface, access to a shell with various debug functions<br \/>as well as a login prompt is possible.<\/p>\n<p>Proof of concept:<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>1) Exposed Serial Shell on multiple Siemens PLCs<\/p>\n<p>* CP-2016 (Figure 1)<br \/>The serial interface on the CP-2016 can be accessed by connecting to the<br \/>following through hole pins of an unpopulated header:<\/p>\n<p>+-+<br \/>|o|<br \/>|o|RX<br \/>|o|TX<br \/>|o|<br \/>|o|<br \/>|o|GND<br \/>+-+<\/p>\n<p>* CP-2019 (Figure 2)<br \/>The serial interface on the CP-2019 can be accessed by connecting to the<br \/>following through hole pins of an unpopulated header:<\/p>\n<p>+-+<br \/>|o|<br \/>|o|RX<br \/>|o|TX<br \/>|o|<br \/>|o|<br \/>|o|GND<br \/>+-+<\/p>\n<p>* CP-2014 (Figure 3)<br \/>The serial interface on the CP-2014 can be accessed by connecting to the<br \/>following through hole pins of an unpopulated header:<\/p>\n<p>+-+<br \/>|o|GND<br \/>|o|<br \/>|o|<br \/>|o|RX<br \/>|o|TX<br \/>|o|<br \/>+-+<\/p>\n<p>* CP-2017 (Figure 4)<br \/>The serial interface on the CP-2017 can be accessed on the compute module<br \/>by connecting to pins 9 and 10 on the populated SMD connector:<\/p>\n<p>1 TX RX<br \/>&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;<br \/>\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\\<br \/>| |<br \/>|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-|<br \/>+&#8217;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;+<br \/>11 20<\/p>\n<p>* CP-5014 (Figure 5)<br \/>The serial interface on the CP-5014 can be accessed on the compute module<br \/>by connecting to pins 1 and 2 on the populated SMD connector:<\/p>\n<p>RX TX 10<br \/>&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;<br \/>\/&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-\\<br \/>| |<br \/>|&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-|<br \/>+&#8217;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;-&#8216;+<br \/>11 20<\/p>\n<p>All serial connections allow access to the SH1703 shell in version 1.00.<br \/>The shell requires no authentication and allows the usage of multiple<br \/>commands.<\/p>\n<p>The following output can be seen on all devices:<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>XXXXX XXX XXX X XXXXX XXX XXX<br \/>X X X X XXX X X X X X X<br \/>X X X X X X X X<br \/>XXXXX XXXXX X X X X XX<br \/>X X X X X X X X<br \/>X X X X X X X X X X<br \/>XXXXX XXX XXX XXXXX X XXX XXX<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<\/p>\n<p>1703 Shell [V1.00](c) by 1703 Development Team<\/p>\n<p>type &#8216;help&#8217; or &#8216;?&#8217; or press &#8216;F1&#8217; for help<\/p>\n<p>SH1703&gt;<\/p>\n<p>Initialize system ..<br \/>. Init Done.<\/p>\n<p>system startup after Power-Up &#8230;<br \/>Install device &#8216;USB Server&#8217;.<\/p>\n<p>RTC time not valid<\/p>\n<p>RTC time not valid<\/p>\n<p>RTC time not valid<br \/>Reg: 100 Komp: 2 BSE: 20<br \/>Hello from &lt;R#100 \/ K#2 \/ BSE#2&gt; FW-ID: 2019 FW-Version: 0.06A01<br \/>Startup ZBGs &#8230; done.<\/p>\n<p>system ready<br \/>SH1703&gt;help<br \/>Available commands:<br \/>hist Display command history<br \/>!&lt;n&gt; Execute &lt;n&gt; command from stack<br \/>? [&lt;cmd&gt;] Display this message<br \/>help [&lt;cmd&gt;] Display this message<br \/>echo &lt;text&gt; Displays text<br \/>call &lt;file&gt; Run script file<br \/>cls Clear screen<br \/>loop &lt;cmd&gt; Loop-execution of cmd<br \/>ldfile &lt;file&gt; Load ascii file<br \/>db &lt;a&gt; [-b|w|d&lt;x&gt; [-n&lt;x&gt;]] Display memory byte\/word\/dword<br \/>wb &lt;a&gt; &lt;val&gt; [-b|w|d&lt;x&gt;] Write memory byte\/word\/dword<br \/>mb &lt;a&gt; [-b|w|d&lt;x&gt; [-n&lt;x&gt;]] Monitoring memory byte\/word\/dword<br \/>login Login<br \/>logoff Logoff<br \/>pci &#8230; PCI Commands<br \/>bemrk Run Benchmark<br \/>drv List installed drives<br \/>dir List files in directory<br \/>del [&lt;drv:&gt;]&lt;file&gt; Delete file<br \/>ren &lt;src&gt; &lt;dest&gt; Rename or move file<br \/>cd &lt;dir&gt;|&lt;..&gt; Change current directory or drive<br \/>md &lt;dir&gt; Make directory<br \/>rd &lt;dir&gt; Remove directory<br \/>type [&lt;drv:&gt;]&lt;file&gt; Displays the contents of a file<br \/>copy &lt;src&gt; &lt;dest&gt; Copy a file<br \/>findstr &lt;file&gt; &lt;str&gt; Find a string in a textfile<br \/>mkdisk &lt;drvname&gt; &lt;size&gt; Make a Ramdisk<br \/>uidisk &lt;drvname&gt; Close and uninstall a disk<br \/>format &lt;drvname&gt; Format drive<br \/>mem_wr &lt;addr&gt; &lt;size&gt; &lt;des&gt; Write mem to file<br \/>idr Read from diagnostic ring<br \/>icr Clear diagnostic ring<br \/>idd Debug-Trace ON<br \/>bp Read all breakpoint settings<br \/>bpf [&lt;file&gt;] Set File for Debugprint (no arg = stdout)<br \/>is &#8230; Debugger settings<br \/>ig [f|s] Display BPs \/ Clear all BPs<br \/>idb Read DB-Breaks<br \/>idt Read DB-Trace Settings<br \/>icz Clear breakpoint counters<br \/>dev &#8230; ZIO-Device commands<br \/>bsp &#8230; bsp commands<br \/>ftrc &#8230; FTRC Commands<br \/>banner Display the banner<br \/>pl Display process list<br \/>pi [&lt;appl_nr&gt;] Display process info<br \/>ad -c|d|k|s APP-Debug Create|Detach|Kill|Start<br \/>tl Display task list (all processes)<br \/>tm [-r] Display task monitor (-r = runtime)<br \/>tc &lt;taskname&gt; Display task context<br \/>td &lt;taskID&gt; Display task descriptor<br \/>tq Display task queues<br \/>sysztsk Display ZOS-tasks of system process<br \/>appztsk [&lt;appl_nr&gt;] Display ZOS-tasks of appl-process(es)<br \/>stack Display stack usage of all tasks<br \/>stsk -c|d|e|s|r ZOS-Task Create|Del|Exch|Suspend|Resume<br \/>tsktrc -s|r|c ZOS-Task-Trace Start|Read|Clear<br \/>set [&lt;name&gt;=&lt;val&gt;] Display, set or remove environment variables<br \/>time Display the current time<br \/>timeset Set the current time<br \/>mem Display memory usage<br \/>status Display system status informations<br \/>ver Display version informations<br \/>r Reset system element (R,R Cxx,R Pxx,R Zxx<br \/>klog [dis|ena|all] Display, disable or enable kernel logging<br \/>psp_info Display prozessor configuration infos<br \/>int_info Interrupt-Info-List<br \/>int_gen Generate Interrupt (for Admin only)<br \/>tlbs Display TLBs<br \/>ga [&lt;appl_nr&gt;] Start Subshell of application<br \/>tsd Debug Timeserver<br \/>mci MCI Commands<br \/>usb &lt;cmd&gt; USB commands<br \/>mmc &lt;cmd&gt; MMC Commands<br \/>zhs ZHS commands<br \/>zpv Parameter infos<br \/>zdt data transporter<br \/>fsn ZIO\/FSN statistics<br \/>net &lt;enet|emac|mal&gt; &lt;dev&gt; Network statistics<br \/>prd &lt;pg&gt; &lt;reg&gt; &lt;len&gt; Read PHY register (len: 8|16|32)<br \/>pwr &lt;pg&gt; &lt;reg&gt; &lt;len&gt; &lt;data&gt; Write PHY register (len: 8|16|32)<br \/>rmib Reset all statistic counters<br \/>scfg Display broadcom switch registers<br \/>ipaddr &lt;dev&gt; Display ip addresses on interface<br \/>route Display routing table<br \/>socket Display socket statistic<br \/>tcp Display tcp statistic<br \/>udp Display udp statistic<br \/>arp Display arp cache<br \/>ping host-ipaddr send ICMP ECHO_REQUEST to a host<br \/>arl Switch Address Resolution table<br \/>ebuf Statistic for Buffer handling FSN<br \/>tls_ciph print cipher suites for all connections<br \/>tls_obj idx print connection objects<br \/>tls_log log level for tls lib<br \/>tls_deb idx print connection debug cnts<br \/>tlscache print cert\/key cache<br \/>opensslm print mem pool statistic for openssl<br \/>tlsdeb_s START mem pool debug function<br \/>tlsdeb_e END mem pool debug function<br \/>tlsdeb_r print mem pool debug for openssl<br \/>tlsdeb_c CLEAR mem pool debug function<br \/>sap special application function<br \/>Available Function-Keys:<br \/>F1 Help<br \/>F2 Display system status informations<br \/>F3 Display Last command<br \/>F5 Display the current time<br \/>F7 History<br \/>F8 Display memory usage<br \/>F9 Display ZOS-Task Infos<br \/>F10 Display Tasklist<br \/>F11 Execute Last command<br \/>SH1703&gt;<\/p>\n<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<\/p>\n<p>Vulnerable \/ tested versions:<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>The following versions have been tested which were the latest version available<br \/>at the time of the test:<br \/>* CP-2016: CPCX26 V0.06A01<br \/>* CP-2019: PCCX26 V0.06A01<br \/>* CP-2014: CPCX25 V0.05A04<br \/>* CP-2017: PCCX25 V0.11A10<br \/>* CP-5056: CPCX55 V0.10A04<\/p>\n<p>Vendor contact timeline:<br \/>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>2024-03-05: Contacting vendor through productcert@siemens.com<br \/>2024-03-06: Siemens tracks this issue as case #04393<br \/>2024-04-03: Requested status update.<br \/>2024-04-03: Product is EOL, no fix planned.<br \/>2024-04-29: Informed Siemens about planned publication of advisory.<br \/>2024-04-30: Siemens, requests draft of advisory. Advisory is sent for review.<br \/>2024-05-07: Siemens requested small changes in the Solution and Business<br \/>Recommendation.<br \/>2024-05-24: Public release of security advisory.<\/p>\n<p>Solution:<br \/>&#8212;&#8212;&#8212;<br \/>The hardware is no longer produced nor offered to the market. Hence HW<br \/>adaptions resulting in modified products are not possible anymore. The<br \/>described HW behavior on this generation of devices cannot be corrected<br \/>by means of FW patches.<\/p>\n<p>The risk of successful exploitation is considered low as physical access to<br \/>those devices is needed.<\/p>\n<p>Workaround:<br \/>&#8212;&#8212;&#8212;&#8211;<br \/>Make sure to strictly limit physical access to the PLC during and also<br \/>after its life cycle.<\/p>\n<p>Advisory URL:<br \/>&#8212;&#8212;&#8212;&#8212;-<br \/>https:\/\/sec-consult.com\/vulnerability-lab\/<\/p>\n<p>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<\/p>\n<p>SEC Consult Vulnerability Lab<br \/>An integrated part of SEC Consult, an Eviden business<br \/>Europe | Asia<\/p>\n<p>About SEC Consult Vulnerability Lab<br \/>The SEC Consult Vulnerability Lab is an integrated part of SEC Consult, an<br \/>Eviden business. It ensures the continued knowledge gain of SEC Consult in the<br \/>field of network and application security to stay ahead of the attacker. The<br \/>SEC Consult Vulnerability Lab supports high-quality penetration testing and<br \/>the evaluation of new offensive and defensive technologies for our customers.<br \/>Hence our customers obtain the most current information about vulnerabilities<br \/>and valid recommendation about the risk profile of new technologies.<\/p>\n<p>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br \/>Interested to work with the experts of SEC Consult?<br \/>Send us your application https:\/\/sec-consult.com\/career\/<\/p>\n<p>Interested in improving your cyber security with the experts of SEC Consult?<br \/>Contact our local offices https:\/\/sec-consult.com\/contact\/<br \/>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<\/p>\n<p>Mail: security-research at sec-consult dot com<br \/>Web: https:\/\/www.sec-consult.com<br \/>Blog: https:\/\/blog.sec-consult.com<br \/>Twitter: https:\/\/twitter.com\/sec_consult<\/p>\n<p>EOF Steffen Robertz, Gerhard Hechenberger, Constantin Schieber-Kn\u00f6bl \/ @2024<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SEC Consult Vulnerability Lab Security Advisory &lt; 20240524-0 &gt;=======================================================================title: Exposed Serial Shell on multiple PLCsproduct: Siemens CP-XXXX Series (CP-2014, CP-2016, CP-2017, CP-2019, CP-5014)vulnerable version: All hardware revisionsfixed version: Hardware is EOL, no fixCVE number: &#8211;impact: Lowhomepage: https:\/\/www.siemens.comfound: ~2023-06-01by: Steffen Robertz (Office Vienna)Gerhard Hechenberger (Office Vienna)Constantin Schieber-Kn\u00f6bl (Office Vienna)SEC Consult Vulnerability Lab An integrated part 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-57101","post","type-post","status-publish","format-standard","hentry","category-vulnerability"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/57101","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=57101"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/57101\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=57101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=57101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=57101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}