CVE-2026-19809
Last modified
CVE-2026-19809 is a low-severity vulnerability rated 3.3/10 on the CVSS scale. The user-mode system call verifier z_vrfy_charger_get_prop() in drivers/charger/charger_handlers.c declares an uninitialized union charger_propval k_val on the kernel (privileged) stack, passes it to the charger driver back end via z_impl_charger_get_prop(), and then copies the full sizeof(union charger_propval) back into the calling user thread's buffer with k_usermode_to_copy(). That discloses kernel stack contents on two paths: On error.
Description
The user-mode system call verifier z_vrfy_charger_get_prop() in drivers/charger/charger_handlers.c declares an uninitialized union charger_propval k_val on the kernel (privileged) stack, passes it to the charger driver back end via z_impl_charger_get_prop(), and then copies the full sizeof(union charger_propval) back into the calling user thread's buffer with k_usermode_to_copy(). That discloses kernel stack contents on two paths: On error. The copy-out ignores the driver's return code. In-tree back ends return an error without writing through the value pointer for properties they do not implement: charger_gpio_get_prop() returns -ENOTSUP unconditionally, and bq24190_get_prop() has a default: return -ENOTSUP; arm that never touches val. The whole union is then stack residue. On success. A back end writes only the one union member the requested property selects (for example sbs_charger.c writes the one-byte val->present for CHARGER_PROP_PRESENT and returns 0), yet the handler still copies the whole union, so every byte beyond that member is uninitialized. The handler is compiled only when CONFIG_USERSPACE=y and is reachable by any user-mode thread that has been granted access to a charger device object. K_SYSCALL_DRIVER_CHARGER() validates only the device object and its API pointer, not the property identifier, so an unprivileged thread can choose prop freely: an unimplemented property forces the error path, a narrow one the success path, and the call can be repeated at will. Each call discloses up to the size of the union (12 bytes on a 32-bit target, 16 bytes on 64-bit targets where the function-pointer members widen it) of supervisor-stack memory. The bytes are residue of earlier kernel-side frames on the thread's privileged stack and can contain kernel object addresses and saved return addresses, which an unprivileged thread cannot otherwise observe and which help defeat address-layout assumptions when exploiting a separate memory-safety defect. There is no integrity or availability impact. Two commits fix it, and both are needed. 5054384e983c skips the copy-out when the back end reports an error. c31cac727d02 zeroes the union before the driver call, so the bytes copied out on success are driver-written data or zeros. A tree carrying only the first still leaks on every successful call.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 3.5.0, < 4.3.2; >= 4.4.0, < 4.5.0 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-19809?
How severe is CVE-2026-19809?
How do I fix CVE-2026-19809?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-19801The BetterLinks – Link Shortener, Link Cloaking, Redirects, …4.3
- CVE-2026-19802The Checkout Custom Fields Builder for WooCommerce plugin fo…4.3
- CVE-2026-19803The Printcart Store – Web to Print Product Designer for WooC…9.8
- CVE-2026-19804The s2Member – Excellent for All Kinds of Memberships, Conte…8.8
- CVE-2026-19806The Support Genix – Helpdesk, AI Chatbot, Knowledge Base & C…8.8
- CVE-2026-19807The ByteCoreStack – MCP Connector for AI Tools plugin for Wo…8.8
- CVE-2026-1981The HUMN-1 AI Website Scanner & Human Certification by Winst…4.3
- CVE-2026-19810Symantec Endpoint Detection and Response (SEDR) Console, pri…5.4
- CVE-2026-19811A security flaw has been discovered in TOTOLINK A800R 4.1.2c…8.8
- CVE-2026-19812A weakness has been identified in TOTOLINK A800R 4.1.2cu.513…8.8
- CVE-2026-19813A security vulnerability has been detected in TOTOLINK A800R…8.8
- CVE-2026-19814A vulnerability was detected in TOTOLINK A800R 4.1.2cu.5137_…8.8
Are you affected by CVE-2026-19809?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
