Skip to content

Datasource interface listing hangs when optional capture helpers segfault during --list #618

Description

@jamesleytevidal

Hi there, I ran into an issue with kismet on a ubuntu 26.04 vm I built recently. working with Copilot I found a workaround that gets me going but I wanted to report it. The below writeup is from Copilot. Let me know if you need any help with reproducing.

Environment

  • Ubuntu 26.04 Resolute
  • architecture: amd64
  • Kismet package: 9999+git2026-07-21r06fc9c9c3-1
  • Kismet version reported by datasource: 2026.07.0-06fc9c9c3
  • Kismet UI served locally on port 2501
  • Attached Wi-Fi adapter: MediaTek MT7612U, visible as wlan0

Problem

Opening the Kismet Datasources window causes "Finding available interfaces..." to spin and eventually display an error indicating it cannot connect to Kismet. The Kismet webserver itself remains running.

The UI requests:

/datasource/list_interfaces.json

That endpoint does not return before the UI's 30-second AJAX timeout.

What works

The Linux Wi-Fi capture helper sees the attached adapter immediately:

$ /usr/bin/kismet_cap_linux_wifi --list
linuxwifi supported data sources:
    wlan0 (mt76x2u)

The user belongs to the kismet group, and the capture helper has the expected capabilities:

/usr/bin/kismet_cap_linux_wifi cap_net_admin,cap_net_raw=eip

Failing helpers

Testing all installed capture helpers individually with:

timeout 10 /usr/bin/kismet_cap_* --list

shows these helpers exit with status 139 when their corresponding hardware is not attached:

kismet_cap_ti_cc_2531: exit 139
kismet_cap_ti_cc_2540: exit 139
kismet_cap_wch_ble_analyzer_pro: exit 139

Other helpers, including kismet_cap_linux_wifi, complete promptly.

Workaround

Adding the following to /etc/kismet/kismet_site.conf makes interface listing work immediately:

mask_datasource_type=ticc2531
mask_datasource_type=ticc2540
mask_datasource_type=wch-ble-pro

After restarting Kismet:

curl -u <user>:<password> \
  http://127.0.0.1:2501/datasource/list_interfaces.json

returns HTTP 200 and includes:

{
  "kismet.datasource.probed.interface": "wlan0",
  "kismet.datasource.probed.hardware": "mt76x2u",
  "kismet.datasource.type_driver": {
    "kismet.datasource.driver.type": "linuxwifi"
  }
}

Expected behavior

  • Optional capture helpers should not segfault when asked to list hardware that is absent.
  • A failing or stalled capture helper should not block the aggregate datasource-list endpoint or make the web UI appear disconnected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions