Back to Intelligence

CVE-2026-96274: Baicells Nova 430H eNodeB NAS DoS — Detection, Isolation and Remediation Guide

SA
Security Arsenal Team
September 29, 2026
10 min read

CISA has published ICS advisory ICSA-26-272-04 for Baicells Nova 430H eNodeB, model pBS3101SH, affecting firmware BaiBLQ_3.0.12 and earlier. The issue is tracked as CVE-2026-96274 with a CVSS v3 score of 7.4. According to the advisory summary, an unauthenticated device within radio range can send a malformed uplink message during connection setup containing an invalid NAS payload, triggering an uncaught exception and potentially causing a denial-of-service condition.

This is not a data-theft vulnerability; it is an availability and resilience problem for cellular infrastructure. The affected equipment sits in Communications and Information Technology critical infrastructure and is deployed worldwide. For defenders, the concern is practical: private LTE/CBRS networks, campus wireless, industrial telemetry backhaul, public-safety-adjacent systems, and remote site connectivity can be degraded by anyone close enough to transmit crafted radio frames during setup. Because exploitation requires radio proximity rather than routed IP access, traditional perimeter controls will not see the initial trigger. Your defensive priorities are inventory accuracy, radio and management-plane isolation, restart/crash telemetry, and rapid firmware validation.

Technical Analysis

Affected product and version

  • Vendor: Baicells Technologies
  • Equipment: Nova 430H eNodeB
  • Model: pBS3101SH
  • Affected firmware: BaiBLQ_3.0.12 and earlier
  • CVE: CVE-2026-96274
  • CVSS v3: 7.4
  • Weakness class: Uncaught Exception
  • Source advisory: CISA ICSA-26-272-04, with CSAF metadata available from the advisory page.

How the attack works, from a defender perspective The vulnerable component appears to be the NAS/uplink handling path during LTE connection establishment. An attacker does not need valid credentials, a SIM provisioned on your network, or access to the wired management interface. The prerequisite is being within RF range and able to emit an uplink message while the eNodeB is processing connection setup. The malformed message contains invalid NAS content that reaches code lacking robust exception handling. The immediate observable result is likely service disruption: UE attach failures, dropped RRC setup attempts, S1/NAS parser faults, radio process crash, watchdog restart, or full eNodeB reboot.

The blast radius depends on architecture. A single crashed pBS3101SH may only affect one small cell. In dense private LTE, coordinated RF nuisance against multiple sectors could create rolling outages, attach storms, or repeated crash loops that mask a separate intrusion. The RF requirement limits remote scalability but makes insider, parked-vehicle, drone-borne SDR, or nearby compromised client scenarios realistic for facilities with exposed coverage.

Exploitation status The provided advisory summary does not state confirmed in-the-wild exploitation, public PoC, or CISA KEV inclusion. Treat that as absence of evidence, not evidence of absence. Do not fabricate urgency, but do not deprioritize either: the vulnerability is unauthenticated, affects safety/operations-adjacent communications availability, and has a trigger that occurs before normal authentication completes. Confirm current KEV status directly against CISA and vendor channels during change review.

Detection & Response

Detection for this issue is less about a single signature and more about recognizing an abnormal pattern of malformed connection-setup activity followed by process instability. Collect eNodeB syslog, S1/NAS and RRC logs where available, management-plane authentication logs, SNMP traps, watchdog events, and RF/UE attach metrics into Sentinel or your SIEM. Baseline normal attach failure rates per site; radio noise and mis-provisioned UEs can look superficially similar, so correlate across time, sector, and crash/restart artifacts.

The following Sigma rules are intentionally narrow. They assume eNodeB logs are forwarded as syslog and normalized enough for keyword matching. Tune names to your log pipeline; if your eNodeBs emit vendor-specific event IDs, map these keywords to those fields rather than broad message text.

YAML
---
title: Baicells Nova 430H Malformed NAS Uplink and Crash Pattern
id: 1d8f6c2a-9b41-4f70-8f4a-7e9c2a5b6101
status: experimental
description: Detects syslog messages consistent with malformed NAS/uplink handling, uncaught exceptions, or sudden eNodeB restart on Baicells Nova 430H/pBS3101SH equipment.
references:
  - https://www.cisa.gov/news-events/ics-advisories/icsa-26-272-04
author: Security Arsenal
date: 2026/09/29
tags:
  - attack.impact
  - attack.t1499
detection:
  selection_device:
    Message|contains:
      - 'Baicells'
      - 'Nova 430H'
      - 'pBS3101SH'
      - 'BaiBLQ'
  selection_fault:
    Message|contains:
      - 'malformed NAS'
      - 'invalid NAS'
      - 'uplink message'
      - 'connection setup'
      - 'uncaught exception'
      - 'parser fault'
      - 'watchdog'
      - 'reboot'
      - 'crash'
  condition: selection_device and selection_fault
falsepositives:
  - Lab or RF conformance testing generating malformed frames
  - Legitimate maintenance reboots with change tickets
level: high
---
title: Repeated UE Attach Failure Followed by eNodeB Restart
id: 6f2b4d71-3d8a-4c62-9f31-0f7d4a8b2e55
status: experimental
description: Detects bursts of RRC/NAS attach or setup failures closely followed by eNodeB process restart events, a possible CVE-2026-96274 denial-of-service pattern.
references:
  - https://www.cisa.gov/news-events/ics-advisories/icsa-26-272-04
author: Security Arsenal
date: 2026/09/29
tags:
  - attack.impact
  - attack.t1499
detection:
  selection_fail:
    Message|contains:
      - 'RRC setup fail'
      - 'attach reject'
      - 'NAS error'
      - 'S1 setup failure'
      - 'UE context release'
      - 'radio link failure'
  selection_restart:
    Message|contains:
      - 'enodeb restarted'
      - 'process restarted'
      - 'system boot'
      - 'kernel panic'
      - 'watchdog reset'
  timeframe: 10m
  condition: selection_fail and selection_restart
falsepositives:
  - Poor RF coverage, interference storms, faulty UEs, planned firmware rollback testing
level: medium

For Microsoft Sentinel/Defender, ingest eNodeB syslog through a Linux collector or CEF forwarder. The first query hunts explicit Baicells fault language; the second looks for unusual management-plane probing against known eNodeB subnets. Replace the example subnet and host group with inventory from your CMDB.

KQL — Microsoft Sentinel / Defender
// Hunt: Baicells Nova 430H NAS/uplink crash indicators in syslog/CEF
let Lookback = 7d;
let BaicellsTerms = dynamic(["Baicells","Nova 430H","pBS3101SH","BaiBLQ","invalid NAS","malformed NAS","uncaught exception","watchdog","connection setup"]);
union isfuzzy=true
  (Syslog
  | where TimeGenerated >= ago(Lookback)
  | where SyslogMessage has_any (BaicellsTerms)
  | project TimeGenerated, Computer, Facility, SeverityLevel, HostIP, ProcessName, SyslogMessage),
  (CommonSecurityLog
  | where TimeGenerated >= ago(Lookback)
  | where Message has_any (BaicellsTerms) or DeviceVendor has "Baicells" or DeviceProduct has_any ("Nova 430H","pBS3101SH")
  | project TimeGenerated, SourceIP, DestinationIP, DeviceVendor, DeviceProduct, Message);
// Hunt: unexpected management-plane access to eNodeB subnet
let EnodeBSubnet = "10.40.0.0/16"; // TODO: replace with approved eNodeB management range
let AllowedAdmin = dynamic(["10.10.5.11","10.10.5.12"]); // TODO: replace with NOC jump hosts
DeviceNetworkEvents
| where TimeGenerated >= ago(Lookback)
| where RemoteIP has "10.40." // TODO: use ipv4_is_in_range(RemoteIP, EnodeBSubnet) where supported
| where LocalPort in (22, 80, 443, 161, 162, 830, 8080) or RemotePort in (22, 80, 443, 161, 162, 830, 8080)
| where not(InitiatingProcessAccountName has_any ("snmp-poller","nagios","zabbix"))
| where not(RemoteIP in~ (AllowedAdmin)) and not(LocalIP in~ (AllowedAdmin))
| summarize Connections=count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated) by DeviceName, LocalIP, RemoteIP, RemotePort, InitiatingProcessFileName, InitiatingProcessAccountName
| order by Connections desc;

Velociraptor is not typically deployed on the embedded eNodeB itself. Use it on Windows or Linux NOC jump hosts, SNMP pollers, and security collectors that can reach the Baicells management plane. The artifact below finds unexpected outbound sessions from management hosts to eNodeB services and flags processes that are not your known pollers.

VQL — Velociraptor
-- Hunt management hosts for unexpected connections toward Baicells eNodeB services
LET allowed_admin <= SELECT item AS AllowedAdmin FROM parse_csv(filename='/etc/securityarsenal/allowed_admin.csv', headers=true)
LET enodeb_range <= '10.40.0.0/16' -- TODO: replace with approved eNodeB management range
SELECT Pid, Name, CommandLine, Username, CreateTime,
       netstat().LocalIP AS LocalIP, netstat().LocalPort AS LocalPort,
       netstat().RemoteIP AS RemoteIP, netstat().RemotePort AS RemotePort,
       netstat().Status AS Status
FROM pslist()
WHERE netstat().RemotePort in (22, 80, 443, 161, 162, 830, 8080)
  AND cidr_contains(ip=netstat().RemoteIP, cidr=enodeb_range)
  AND NOT Name =~ '(snmp|zabbix|nagios|librenms|prometheus|ssh-agent)'

Use this Bash script on a secured Linux collector to inventory reachable Baicells devices, attempt version fingerprinting, and flag potentially vulnerable firmware. It deliberately avoids changing device configuration. Run it read-only first, with credentials vaulted and command logging enabled.

Bash / Shell
#!/usr/bin/env bash
# CVE-2026-96274 exposure checker - read-only inventory and version flagging
set -euo pipefail

TARGETS="${1:-baicells_targets.txt}"      # one IP/FQDN per line
OUT="baicells_cve_2026_96274_$(date +%Y%m%d_%H%M%S).csv"
SSH_USER="${SSH_USER:-readonly_noc}"
SSH_OPTS=(-o BatchMode=yes -o ConnectTimeout=5 -o StrictHostKeyChecking=accept-new)

echo "host,reachable,version_evidence,assessment,notes" > "$OUT"

while IFS= read -r host; do
  [[ -z "$host" || "$host" =~ ^# ]] && continue
  reachable="no"; evidence=""; assessment="unknown"; notes=""

  if ping -c1 -W2 "$host" >/dev/null 2>&1; then
    reachable="yes"
    # Prefer SNMP sysDescr if your deployment exposes it read-only from collectors.
    if command -v snmpget >/dev/null 2>&1; then
      evidence+=$(snmpget -v2c -c "$SNMP_COMMUNITY" -Ov -t 3 -r 1 "$host" SNMPv2-MIB::sysDescr.0 2>/dev/null || true)
      evidence+=";"
    fi
    # Fallback: read-only version command over SSH. Adjust command to vendor-supported CLI only.
    if ssh "${SSH_OPTS[@]}" "${SSH_USER}@${host}" 'show version 2>/dev/null || version 2>/dev/null || cat /etc/version 2>/dev/null' >/tmp/baicells_ver.$$ 2>/dev/null; then
      evidence+=$(tr '\n' ' ' </tmp/baicells_ver.$$)
    fi
    rm -f /tmp/baicells_ver.$$

    if echo "$evidence" | grep -Eiq 'pBS3101SH|Nova 430H|BaiBLQ'; then
      if echo "$evidence" | grep -Eo 'BaiBLQ_[0-9]+\.[0-9]+\.[0-9]+' | sort -V | tail -1 | grep -Eq '^BaiBLQ_(0|1|2)\.|^BaiBLQ_3\.0\.(0|1[0-2])([^0-9]|$)'; then
        assessment="potentially_vulnerable"
        notes="Detected BaiBLQ <= 3.0.12 pattern; confirm exact build against vendor advisory/CSAF."
      else
        assessment="needs_manual_review"
        notes="Baicells evidence found but version did not match vulnerable pattern or was incomplete."
      fi
    else
      assessment="not_baicells_or_no_version"
      notes="No Baicells/Nova/BaiBLQ fingerprint returned."
    fi
  fi

  printf '%s,%s,%q,%s,%q\n' "$host" "$reachable" "${evidence:-none}" "$assessment" "$notes" >> "$OUT"
done < "$TARGETS"

echo "Wrote $OUT. Treat 'potentially_vulnerable' as a lead, not proof; validate exact model/firmware before change control."

Remediation

  1. Confirm scope immediately. Build an authoritative list of all Baicells Nova 430H/pBS3101SH eNodeBs, including spares, lab units, temporary event cells, and contractor-managed sites. Cross-check exact firmware build, not only marketing version, because patch trains can differ by region and carrier profile.
  2. Patch per vendor guidance. CISA’s summary identifies affected firmware as <= BaiBLQ_3.0.12 but does not provide a fixed release number in the supplied text. Do not invent one. Open a vendor case referencing CVE-2026-96274 / ICSA-26-272-04, request the corrected build or CSAF remediation guidance, and deploy through change control with RF rollback planning. Validate after upgrade using device CLI/SNMP and a controlled UE attach test.
  3. Reduce RF and protocol exposure while awaiting patch. Where operationally feasible, restrict attach using PLMN/TAC allowlists, closed subscriber groups where supported, eNodeB access control, PCI/RSI planning to limit hostile cell overlap, and directional antenna tuning that reduces spill beyond your property line. None of these eliminate a malformed uplink frame, but they reduce opportunity and improve attribution.
  4. Harden the management plane. Place eNodeB management on a dedicated VRF/VLAN reachable only from named NOC jump hosts. Enforce MFA/keys for SSH, disable telnet/HTTP, restrict SNMP to read-only collectors, log all logins, and alert on any management connection from outside approved sources. Preserve local logs remotely; crash loops can erase evidence.
  5. Add resilience controls. Configure redundant sectors or failover backhaul for critical sites, watchdog/restart notifications to the SOC, and automated isolation of a repeatedly rebooting eNodeB so a crash loop does not destabilize neighboring cells. Establish an RF incident runbook: capture spectrum observations, nearby UE IMSI/IMEI where lawful, timestamps, weather/interference notes, and physical security camera footage around high-value sites.
  6. Verify and monitor continuously. Re-run inventory after maintenance windows, subscribe to CISA ICS advisories and Baicells security notices, check CISA KEV during triage, and track mean time between eNodeB restarts, attach failure rate, RRC setup failure ratio, and NAS error counters as board-level availability metrics.
  7. Reference and deadline. Primary source: https://www.cisa.gov/news-events/ics-advisories/icsa-26-272-04 . The supplied summary does not state a federal remediation deadline; do not assume one. For critical communications availability, set an internal SLA aligned to your risk tier: inventory within 24 hours, compensating controls within 72 hours, and vendor-confirmed patch scheduling through the next approved maintenance window.

Related Resources

Security Arsenal Managed SOC Services AlertMonitor Platform Book a SOC Assessment soc-mdr Intel Hub

Is your security operations ready?

Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.