---
id: "CVE-2026-102537"
page: "https://infrastack.ai/live/CVE-2026-102537"
kind: "vulnerability"
aliases: ["CVE-2026-102537"]
title: "BACnet Stack: Linux WebSocket client accepts self-signed hub certificates"
severity: "high"
cvss: 7.7
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["bacnet", "bacnet-sc", "embedded", "libwebsockets", "linux", "package"]
not_affected_if: ["fixed-version", "no-bacnet-sc", "non-linux-port"]
published_at: "2026-11-13T19:17:37+00:00"
first_seen_at: "2026-11-13T19:52:09+00:00"
updated_at: "2026-11-13T19:54:08+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-102537", "first_seen_at": "2026-11-13T19:52:09+00:00"}]
exploit_sources: []
---

# BACnet Stack: Linux WebSocket client accepts self-signed hub certificates

Link for people: https://infrastack.ai/live/CVE-2026-102537 (this .md is for agents)

The BACnet Stack Linux WebSocket client accepts any self-signed certificate from a hub, even when it does not chain to the trusted CA. An attacker running a rogue hub can receive the node's identity and all later BACnet traffic.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the BACnet Stack version in use against the fixed versions below.
- Look for `ports/linux/websocket-cli.c` in the build and confirm whether `LCCSCF_ALLOW_SELFSIGNED` is set in `bws_cli_connect()`.

## Fix

- Move to `1.4.6`, `1.5.2`, `1.6.1`, or `1.7.0`, the versions the description names as patched.

## Timeline

- 2026-11-13T19:52:09+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-102537

## Documents

- [advisory] Vendor advisory: github.com https://github.com/bacnet-stack/bacnet-stack/security/advisories/GHSA-jgm4-2wg9-jwfg

## From the sources

BACnet Stack is a BACnet open source protocol stack C library for embedded systems. Prior to versions 1.4.6, 1.5.2, and 1.6.1, bws_cli_connect() in ports/linux/websocket-cli.c loads the trusted CA cert into the libwebsockets context, then always sets LCCSCF_ALLOW_SELFSIGNED in the connection flags. So lws accepts any self-signed hub certificate, whether or not it chains to the loaded CA. A BACnet/SC node finishes the TLS handshake to a rogue hub that presents a self-signed cert. It then hands the attacker its identity (VMAC, UUID) and all later BACnet traffic. This issue has been patched in versions 1.4.6, 1.5.2, 1.6.1, and 1.7.0.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
