> CVE-2026-10685 [HIGH]

« BACK_TO_HOME
PUBLISHED
2026-07-31 15:16
MODIFIED
2026-07-31 15:16
CVSS_SCORE V3
7.6
EPSS (Prob. Exploit)
0.30%
Top 78.0%
DATA SOURCES:
NVD đź”— 2026-07-31 CWE MITRE đź”— 2026-11-01 FIRST EPSS đź”— 2026-10-25 OSV đź”— 2026-08-07

> DESCRIPTION

The Zephyr Bluetooth GATT client CCC-write response handler gatt_write_ccc_rsp() in subsys/bluetooth/host/gatt.c invoked the application's params->subscribe() callback after it had already called params->notify(conn, params, NULL, 0). Per the public GATT API, a notify callback with NULL data is the documented signal that the subscription has terminated and the bt_gatt_subscribe_params struct may be freed or reused by the application; calling subscribe() on the struct afterwards is a use-after-free, including an indirect call through the freed params->subscribe function pointer. The error branch is remotely (adjacent) reachable: a Zephyr device acting as a GATT client that calls bt_gatt_subscribe() can be driven into this ordering when a connected GATT server peer answers the CCC write with an ATT Error Response (the peer-supplied error code flows through att_error_rsp -> att_handle_rsp into gatt_write_ccc_rsp). For applications that free or recycle subscription parameters in their notification-termination handler, this results in memory corruption, a crash (denial of service), or potentially attacker-influenced control flow. The fix reorders the handler so the subscribe() callback runs before the terminating notify(NULL) in both the error and unsubscribe paths.

> AFFECTED_PRODUCTS

ℹ️ Aucun produit affecté n'a encore été publié par NVD pour cette CVE.

> CVSS V3 METRICS

CVSS_VECTOR
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H
EXPLOITABILITY
2.8
IMPACT
4.7

> MÉTRIQUES CVSS DÉTAILLÉES

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H
Métrique Valeur Interprétation
AV (Vecteur d'Attaque)
Attack Vector
Adjacent (A)
Exploit nécessite un accès au segment réseau local
AC (Complexité d'Attaque)
Attack Complexity
Low (L)
Peu de conditions requises pour exploiter
PR (Privilèges Requis)
Privileges Required
None (N)
Aucune authentification requise
UI (Interaction Utilisateur)
User Interaction
None (N)
Aucune interaction utilisateur nécessaire
S (Périmètre)
Scope
Unchanged (U)
Impact reste dans le périmètre du composant compromis
C (Impact Confidentialité)
Confidentiality Impact
Low (L)
Divulgation limitée d'informations
I (Impact Intégrité)
Integrity Impact
Low (L)
Modification limitée des données possible
A (Impact Disponibilité)
Availability Impact
High (H)
Interruption totale du service possible

> RÉSUMÉ DES IMPACTS

Confidentialité
Low
Divulgation limitée d'informations
Intégrité
Low
Modification limitée des données possible
Disponibilité
High
Interruption totale du service possible

> WEAKNESSES

CWE-416

> CWE DETAILED DESCRIPTIONS

CWE-416: Use After Free - The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.

> OSV (GOOGLE OPEN SOURCE VULNERABILITIES)

Use-after-free of GATT subscribe params in Bluetooth host CCC-write response handler

AFFECTED PACKAGES:
Unknown / Unknown
156 versions affected
ALIASES:
GHSA-29xh-jm2m-4qvx

> HISTORIQUE DES MODIFICATIONS

Première apparition
31/07/2026 15:16
Source: NVD
📊 ENRICHISSEMENT 01/08/2026 06:01
CWE
Champ modifié: Description CWE
Ancienne valeur:
N/A
Nouvelle valeur:
CWE-416: Use After Free - The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original p...
Total des modifications: 1 Dernière mise à jour: 3 months ago

> REFERENCES

https://github.com/zephyrproject-rtos/zephyr/commit/c7292f20223637232b6f96214172...
https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-29xh-jm2m-...
« BACK_TO_HOME