CPATH-2026-0007 · Wearable health

Unauthenticated BLE measurement-flood denial of service

At a glance

What this record establishes

Affected product
QardioQardio BLE unauthenticated DoS (startMeasurement flood)Blood-pressure monitor and companion applications
  • QardioARM A100
  • Heart Health iOS 2.7.4
  • Heart Health Android 2.5.1
Root cause
The cuff accepts its BLE start-measurement command without pairing, authentication, or effective request throttling, allowing nearby clients to force repeated inflation cycles.
Reachable consequence
  • Repeated unauthenticated measurement commands can force cuff inflation and block legitimate readings, causing discomfort and a bounded monitoring outage rather than severe injury.
Remediation
No vendor patch is available. Limit untrusted BLE proximity, stop using affected cuffs in exposed settings, and replace the product where repeated unauthenticated commands cannot be bounded.
Evidence status
  • Reproduced or documented in detailNVD documents the condition.
Baseline confidence: High

Vulnerability record

Bug mechanics, affected systems, and remediation

The editorial record appears before the modeled consequence so the Path Score remains traceable to the documented vulnerability.

1. Summary

The QardioARM A100 blood-pressure monitor exposes a writable Bluetooth Low Energy (BLE) GATT characteristic that accepts the “start measurement” command with no rate-limiting and no session/state guard, over an unencrypted radio link. Because nothing throttles or gates the write, an attacker within BLE proximity can repeatedly re-issue the command against the characteristic. CISA frames the trigger as unauthenticated and adjacent (BLE-range) with no user interaction, over the unencrypted BLE link, against the affected app and firmware versions [1][2]. The operational impact of sustaining this flood is analyzed in §6.

2. Affected products & versions

product models affected versions fixed version
QardioARM blood-pressure monitor QardioARM A100 All versions / all firmware [1][2] None — no vendor patch [1][3][4]
Qardio Heart Health iOS app n/a 2.7.4 [1][2] not documented
Qardio Heart Health Android app n/a 2.5.1 [1][2] not documented

Note: CISA scopes the hardware as “QardioARM A100” specifically, while NVD lists “QardioARM (all versions)”; whether other QardioARM hardware is affected is not resolvable from public advisories [1][2].

3. The vulnerability in detail

The flaw lives in the QardioARM A100’s BLE GATT interface — the wireless command surface the cuff exposes to the Qardio Heart Health iOS and Android companion apps — and in the firmware behind it. The device advertises under the BLE name “QardioARM” and offers a writable characteristic identified by UUID 583CB5B3-875D-40ED-9098-C39EB0C1983D. Writing the two-byte payload f101 (hex) to that characteristic is the “start measurement” command: it tells the cuff to begin inflating and taking a reading [3]. This is normal, intended functionality — the companion app issues exactly this write when a user starts a measurement.

The actual defect is what the firmware does not do around that command. The characteristic accepts the start-measurement write with no rate-limiting, no debounce, and no connection/session state guard that would reject a new measurement while one is already in progress or while the motor is active. In a correctly hardened design, the firmware would gate this command behind a state machine — refusing a fresh f101 while a measurement cycle is running, or bounding how often the command can be honored per connection — so that a second write during an active cycle is a no-op rather than a re-trigger. Concretely, such a guard would need three things the firmware lacks: (a) a “busy”/measurement-in-progress flag that the command handler checks before actuating the pump, (b) a per-connection command budget or minimum inter-command interval enforced in firmware rather than trusting the well-behaved app, and (c) a link-layer requirement (encryption/bonding) that would at least raise the bar for an arbitrary peer to reach the write path at all. None of those guards is present. Combined with the fact that the BLE link is unencrypted and — per CISA’s framing — reachable without authentication or pairing, this means any BLE peer in range can drive the command as fast as it can issue writes [1][2]. Each write re-triggers the inflation motor and enqueues another request for the microcontroller to process. Because nothing throttles or gates these writes, an attacker can hold the motor on and keep the microcontroller busy servicing the flood [3].

The mechanism is a classic resource-exhaustion / command-flood denial-of-service. The trigger is simple: scan for the “QardioARM” peripheral, connect over BLE, and issue repeated Write operations of f101 to the target characteristic. Each individual write is indistinguishable from a legitimate “start measurement” issued by the app — the abuse is purely in the rate and repetition that the firmware fails to bound, not in any malformed or privileged input. The researcher’s proof-of-concept loops this write roughly 20,000 times with about half a second between writes, which is enough to keep the cuff continuously inflating and to keep the device saturated servicing the request stream [3]. While the device is in this state it cannot service a legitimate connection from the Heart Health app [1][2][3].

Preconditions, per CISA, are modest: the attacker must be within BLE radio range (adjacent network, AV:A; the issue is explicitly not remotely exploitable over a network), needs no privileges (PR:N), and needs no user interaction (UI:N), operating over the unencrypted BLE link against the affected app/firmware versions [1][2]. There is an important unresolved conflict here: the researcher’s own writeup states that “pairing is required to send commands,” which sits uneasily against CISA/NVD’s unauthenticated PR:N characterization [3][1][2]. If pairing is in fact required, the practical bar to exploitation is higher than the CISA framing implies; the sources cannot be reconciled on this point.

Step-by-step, the exploitation chain is:

  1. The attacker positions within BLE radio range of a target QardioARM A100 (RF adjacency; no network path) [1].
  2. A Python bleak script scans for the peripheral advertising as “QardioARM” [3].
  3. The script establishes a BLE GATT connection over the unencrypted link [3].
  4. It writes the start-measurement command f101 to characteristic 583CB5B3-875D-40ED-9098-C39EB0C1983D [3].
  5. It repeats the write in a tight loop (PoC: ~20,000 iterations, ~0.5s apart) to sustain the flood [3].
  6. The inflation motor runs continuously and the microcontroller is saturated processing the requests [3].
  7. The Heart Health / clinician app can no longer connect [1][2][3].

Proof-of-concept status: a public researcher PoC exists (n0ps), implementing exactly the loop above; CISA and NVD both describe the attack as achievable via a “specially crafted Python script” [1][2][3].

On the CWE: CISA and NVD assign CWE-248: Uncaught Exception, which describes a condition where code raises an exception that is not caught, driving the program into an unexpected or failed state. The implication is that the command flood pushes the firmware into an unhandled failure state rather than merely keeping it busy. This is a weak fit for what the sources actually demonstrate. The researcher describes continuous motor operation plus microcontroller saturation — i.e., resource exhaustion / an unguarded, rate-unlimited command path — not a specific caught-or-uncaught exception, and no source exhibits the exception itself [3]. As an analytical matter, a resource-exhaustion classification along the lines of CWE-400 (uncontrolled resource consumption) or CWE-770 (allocation of resources without limits) would describe the observed behavior more faithfully. CWE-248 is CISA’s label [1][2]; the researcher writeup does not exhibit an exception [3].

4. Discovery & timeline

The vulnerabilities were reported to CISA by Bryan Riggins of Insulet Corporation [1][4]. The original technical reverse-engineering disclosure and the working PoC were published independently by researcher n0ps at n0psn0ps.github.io [3].

  • 2025-02-13 — CISA advisory ICSMA-25-044-01 initial publication [1]; researcher writeup published the same day [3]; NVD CVE record published [2].
  • 2026-06-17 — NVD record last modified [2].
  • The researcher notes roughly 5+ months elapsed before CVE publication and that Qardio was ultimately unresponsive to disclosure [3]. Precise vendor-notification and coordinated-disclosure dates are not documented in the available sources.

Vendor response: Qardio did not respond to CISA’s requests to collaborate on remediation, and the company subsequently declared bankruptcy, so no patch was ever produced [1][3][4].

5. Technical reference

  • CVE: CVE-2025-24836 (the DoS). Part of a three-CVE advisory alongside CVE-2025-20615 (CWE-359 information exposure) and CVE-2025-23421 (CWE-552 files/directories accessible / firmware access) [1].
  • CWE: CWE-248 Uncaught Exception (as assigned by ICS-CERT/NVD) [1][2]. See §3 for why this is a contested fit.
  • CVSS — CISA [1]:
  • v3.1: 7.1 HIGHAV:A/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:H
  • v4.0: 7.2 HIGHAV:A/AC:L/AT:N/PR:N/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N
  • CVSS — NVD [2]:
  • v3.1: 7.1 HIGHAV:A/AC:H/...
  • v4.0: 6.1 MEDIUMAV:A/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:H
  • What the key metrics mean here: AV:A (adjacent) captures that the attacker must be in BLE radio range, not on the internet — this is the single most important limiter. PR:N/UI:N reflect CISA’s unauthenticated, no-interaction framing (contested by source [3]). VA:H/A:H is the high availability impact, while confidentiality/VC:L is minor. The CISA and NVD v4.0 vectors disagree on Attack Complexity (AC:L vs AC:H) and therefore on both score and band (7.2 HIGH vs 6.1 MEDIUM); this is an unresolved discrepancy between the two authoritative sources.
  • Code/commit refs: no firmware source or patch exists. The load-bearing technical artifact is the researcher PoC and the characteristic/payload pair: write f101 to 583CB5B3-875D-40ED-9098-C39EB0C1983D [3].

6. Consequence & CFSE path analysis

Real-world consequence: while an attacker within BLE range actively runs the flood, the QardioARM A100 cannot pair with its app and cannot take a blood-pressure reading, and the cuff inflates continuously. This is the availability/denial-of-service impact that defines this CVE: a clinician or patient is blocked from taking a reading and must intervene [1][2][3]. It is a bounded operational and safety nuisance plus an availability outage of a single device. The sources describe availability/DoS impact only; no source confirms actual patient injury from over-inflation, so severe-injury or wrong-therapy consequences are not established [1][3][4]. Recovery is routine and local — disconnect the attacker, move out of range, or remove the battery.

Why the CFSE Path Score differs from CVSS: CVSS (7.1 HIGH / 7.2 HIGH) is anchored on the high availability metric and the medical context. The CFSE path reasons about the terminal consequence and the authority actually gained, which is narrower: bounded command authority over one cuff, no cross-domain authority transfer, and trivial local recovery. That produces an ELEVATED band that is deliberately more measured than a raw “HIGH” reading — hence direction OVER relative to the published CVSS baseline.

The CFSE path verdict below is reproduced in full. Two figures inside it — the “~10m” proximity and the RE:2 “no pairing” authority — are analytical assumptions not stated in public advisories; source [3] in fact asserts pairing is required:

Verdict: ELEVATED. The entry models a single risk path with terminal type DEVICE_AVAILABILITY (family: recovery), banded ELEVATED, which is also the dominant path and the overall path_verdict (ELEVATED, direction OVER relative to the published CVSS baseline). The path reasons that an attacker within BLE proximity (~10m) with no pairing or authentication (RE:2) can run a simple connect-and-write bleak script (EC:4) to repeatedly invoke the unauthenticated startMeasurement command, forcing continuous cuff inflation and blocking legitimate clinical readings. The consequence is scored as a bounded operational/safety nuisance and availability outage (PH:2) rather than credible severe injury or wrong-therapy, with only bounded command authority over the cuff (AT:2), minor data exposure (DP:1), and a single bounded physical/device boundary crossing that does not transfer authority across domains (CH:1). Reuse is product-class portable (SR:3) but execution is proximity-bound per device rather than remote/fleet-scale (SX:2), and recovery is routine and local via disconnect/battery removal (OR:1). The condition is documented/reproduced (EV:3, HISTORICAL) with no in-the-wild exploitation and no perception-feeds-action dynamic, so the base ELEVATED band is retained as final with no cap or systemic uplift.

7. Remediation & mitigations

There is no vendor patch and none is forthcoming — Qardio did not engage with CISA and has since declared bankruptcy [1][3][4]. Remediation is therefore operational only, and specific to this BLE-proximity command-flood:

  • Disable Bluetooth on the device when it is not actively taking a measurement, so there is no advertising “QardioARM” peripheral for an attacker to connect to and flood [1][4]. This is the single highest-value control, because the entire attack surface is the writable characteristic reachable only while the device is discoverable/connectable.
  • Do not operate the device in public spaces or within BLE range of untrusted parties — since the attack requires RF proximity (AV:A) and no network path, physically controlling who is in range is the primary defense [1][4].
  • Use only the trusted Heart Health apps from trusted providers [1][4].
  • Given the vendor’s insolvency and the “all versions/all firmware” scope, fleet operators (e.g., clinics) should treat the device as unpatchable and consider replacement where continuous BLE availability in shared/public spaces is required [1].
  • Detection, where feasible, would look for anomalous repeated GATT writes of f101 to characteristic 583CB5B3-...C1983D from a single peer — the signature of this specific flood. But the device itself offers no logging or hardening, so this is only actionable with an external BLE monitor, not on-device [3].

8. Sources

[1] ICS Medical Advisory ICSMA-25-044-01: Qardio Heart Health iOS/Android Application and QardioARM A100 — CISA / ICS-CERT — https://www.cisa.gov/news-events/ics-medical-advisories/icsma-25-044-01 — Authoritative coordinating advisory: all three CVEs, CWE-248, affected versions, both CVSS vectors, researcher credit, DoS mechanism, and mitigations. Credibility: primary-advisory.

[2] NVD — CVE-2025-24836 Detail — NVD (NIST) — https://nvd.nist.gov/vuln/detail/CVE-2025-24836 — Canonical CVE record: DoS description, CWE-248, both CVSS scores/vectors (v4.0 6.1 MEDIUM here), ICS-CERT as assigner. Credibility: primary-advisory.

[3] Reversing the QardioArm — n0ps (independent researcher) — https://n0psn0ps.github.io/2025/02/13/Reversing-the-QardioArm/ — Original technical disclosure and root cause: BLE characteristic UUID + f101 payload, the ~20,000-write bleak PoC, the motor-flood/microcontroller-saturation mechanism, the pairing-required claim, and Qardio’s non-response/bankruptcy. Credibility: researcher-primary.

[4] Zero-Day Flaws Found in Qardio Heart Health iOS & Android Apps — CyberInsider — https://cyberinsider.com/zero-day-flaws-found-in-qardio-heart-health-ios-and-android-apps/ — Independent press synthesis of all three CVEs; confirms DoS framing, researcher credit, vendor non-response, no in-the-wild exploitation, and CISA mitigations. Credibility: reputable-press.

[5] High-Severity Qardio App Vulnerability (CVE-2025-24836) Puts Personal Health Data at Risk — IntegSec — https://integsec.com/blog/high-severity-qardio-app-vulnerability-cve-2025-24836-puts-personal-health-data-at-risk — Analyst blog adding context on plist credentials, the hex-command engineering panel, and HIPAA/GDPR framing. Secondary/analyst quality. Credibility: reputable-press.

[6] CVE-2025-24836 — CVEDetails (SecurityScorecard) — https://www.cvedetails.com/cve/CVE-2025-24836/ — Aggregator mirror of NVD/ICS-CERT; corroborating cross-reference only, superseded by [1][2]. Credibility: low.

Causal model

How the exploit reaches this consequence

1 modeled path · each transition states what supports it.

Recovery · Dominant path

Device availability and recovery

Repeated unauthenticated measurement commands can force cuff inflation and block legitimate readings, causing discomfort and a bounded monitoring outage rather than severe injury.

ELEVATED
  1. accessSource-backed

    Proximity or local access

    BLE proximity (~10m), no pairing and auth (local-net and proximity position).

    Evidence NVD

  2. boundaryModel inference

    Single bounded transition

    Limited chaining - crosses physical and device boundary but does not transfer authority across domains.

    Evidence Derived from the cited facts.

  3. capabilityModel inference

    Operational safety effect

    Repeated unauthenticated measurement commands can force cuff inflation and block legitimate readings, causing discomfort and a bounded monitoring outage rather than severe injury.

    Evidence Derived from the cited facts.

  4. consequenceModel inference

    Device availability and recovery

    Repeated unauthenticated measurement commands can force cuff inflation and block legitimate readings, causing discomfort and a bounded monitoring outage rather than severe injury.

    Evidence Derived from the cited facts.

  5. recoveryOperational assumption

    Routine local recovery

    User-visible, recoverable by disconnect and battery removal, no fleet action.

    Evidence Required deployment or recovery condition.

Decision trail

How the final band follows

  1. Base bandELEVATED
  2. No adjustment

    The ELEVATED base band remains final because no separate cap or systemic uplift applies. Repeated unauthenticated measurement commands can force cuff inflation and block legitimate readings, causing discomfort and a bounded monitoring outage rather than severe injury.

  3. Final bandELEVATED
Inspect every metric judgment

Decision rationale

How this band was reached

Reach and effort
ReachabilityRE 2
Proximity or local access

BLE proximity (~10m), no pairing and auth (local-net and proximity position).

Source-backedNVD
Execution complexityEC 4
Straightforward operation

A short BLE script can connect and repeatedly invoke the measurement command; no memory-corruption exploit or paired session is required.

Source-backedNVD
ExposureEX 2
Access position limits exposure

The technique is easier to perform than it is to position against a target, so access is the constraining factor.

Model inference
Consequence
Physical / safetyPH 2
Operational safety effect

Repeated unauthenticated measurement commands can force cuff inflation and block legitimate readings, causing discomfort and a bounded monitoring outage rather than severe injury.

Model inference
Data / perceptionDP 1
Low-sensitivity state

Minor and low-sensitivity data exposure.

Model inference
AuthorityAT 2
Bounded function authority

Bounded command authority over the cuff (startMeasurement) - no administrator and firmware and trust-root control.

Model inference
Scale and recovery
ChainabilityCH 1
Single bounded transition

Limited chaining - crosses physical and device boundary but does not transfer authority across domains.

Model inference
Reuse scaleSR 3
Portable product-class technique

The unauthenticated-write method and script is portable and reusable across any unit.

Operational assumption
Execution scaleSX 2
Proximity-bound repetition

Each request flood requires Bluetooth proximity to one target device; it cannot execute remotely across a fleet.

Operational assumption
Recovery burdenOR 1
Routine local recovery

User-visible, recoverable by disconnect and battery removal, no fleet action.

Operational assumption
Confidence and status
Evidence strengthEV 3
Reproduced or documented in detail

NVD documents the condition.

Source-backedNVD
LivenessLS Historical
Historical condition

This record covers the historical condition.

Source-backedNVD
Technical vector
Compact machine notationCPATH:1.0/TT:DEVICE_AVAILABILITY/RE:2/EC:4/EX:2/PH:2/DP:1/AT:2/CH:1/SR:3/SX:2/OR:1/EV:3/LS:HISTORICALRead the scoring method →

Triage implication

Prioritize the recovery transition.

Use each modeled transition and recovery condition when setting remediation priority.

Evidence ledger

Public sources used by this record.

Published baseline

Why this band differs from CVSS

RelationshipPaths model is lower
Baseline confidencehigh
Scored2026-06-03
v4.0 · 6.1 MEDIUMCISA/ICS-CERT via NVD
CVSS:4.0/AV:A/AC:H/AT:N/PR:N/UI:N/VC:L/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
v3.1 · 7.1 HIGHCISA/ICS-CERT via NVD
CVSS:3.1/AV:A/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:H

Related paths

Compare trust boundaries across products.

Cite this entryCFSE Consequence Paths Registry 1.0, CPATH-2026-0007 (“Unauthenticated BLE measurement-flood denial of service”), paths.cfse.ai/CPATH-2026-0007 (published 2026-06-03).