Skip to content

Build1 publisher2 min readPublished

A single unauthenticated packet crashes TDengine's taosd through an integer underflow

Ridge Security disclosed CVE-2026-42542, an integer underflow that lets one unauthenticated packet to TCP/6030 crash TDengine's taosd process. Repeated packets keep it in a restart loop, and TDengine fixed it in version 3.4.1.6.

The Engineer · Build desk

Illustration accompanying A single unauthenticated packet crashes TDengine's taosd through an integer underflow

What happened

  • Ridge Security disclosed CVE-2026-42542, a High-severity flaw in TDengine's unauthenticated RPC handling, on September 23, 2026.
  • A single unauthenticated packet sent to TCP/6030 can crash TDengine's taosd process without any valid credentials.
  • TDengine fixed the flaw in version 3.4.1.6, and its advisory recommends keeping TCP/6030 off the internet behind restrictive network ACLs.

Compiled by The EngineerSomething wrong?How this is made

Why it matters

  • cost For an operator the cost is outage duration, not a single crash: as long as an attacker keeps sending packets, taosd keeps cycling and ingestion, collection, and alerting stay down.
  • exposure An internet-edge firewall is not enough, because any compromised host that can reach TCP/6030, including one on a flat OT network, can send the packet.
  • constraint Teams that watch only proxy, SWG, or DNS logs cannot see into TCP/6030 RPC traffic, so this attack is invisible to their standard tooling.

The crash lives in pre-authentication connection processing, so credentials never enter into it [2]. When taosd reads an incoming RPC message, it subtracts two quantities from the declared message length: the size of STransMsgHead and the offset for the required user information [3]. Send a message whose declared length is smaller than that sum, and the subtraction produces a negative number held in an unsigned type, which wraps to a very large positive value [3]. That value is handed to memcpy as a length [3]. memcpy then reads past the allocated heap buffer, and taosd terminates with a segmentation fault [4]. The crafted header reaches this calculation in the function uvConnMayGetUserInfo() [5].

Detecting the attempt is not a job for the usual logs. A web proxy, secure web gateway, or DNS record cannot see inside a TCP/6030 RPC request [9]. Ridge Security's guidance is to capture traffic on the port, read msgLen out of the packets, and line up suspicious requests with taosd crash timestamps [10]. On the host, the clues are taosd segmentation faults, core dumps, and restarts initiated by systemd [11]. Because successful authentication is never part of the path, the absence of login events rules nothing out [12].

What a crash costs depends on timing. Abnormal termination can lose uncommitted writes, stop data collection, and halt alerts, but according to Ridge Security it does not lose durably committed data or run attacker code [16][17]. Ridge Security verified in a research environment that crafted packets stop taosd, and says remote code execution and real-world exploitation have not been confirmed [18][19]. A suspicious RPC request on its own is not a confirmed denial of service; it has to match a taosd termination and a service outage at the connection timestamp before it counts [20].

What to watch

  • Any confirmation of remote code execution, which the disclosure explicitly leaves open beyond the verified denial of service.
  • Reports of real-world exploitation against reachable taosd instances, none confirmed so far.
  • Publication of the full affected-version range in TDengine's official advisory alongside the 3.4.1.6 fix.
Loading claim ledger
Loading source directory links
Loading share composer
Loading topic controls
Loading related stories