LiveActive security incident?Get immediate response
CVE Record

CVE-2026-22986: gpiolib: fix race condition for gdev->srcu

In the Linux kernel, the following vulnerability has been resolved: gpiolib: fix race condition for gdev->srcu If two drivers were calling gpiochip_add_data_with_key(), one may be traversing the srcu-protected list in gpio_name_to_desc(), meanwhile other has just added its gdev in gpiodev_add_to_list_unlocked(). This creates a non-mutexed and non-protected timeframe, when one instance is dereferencing and using &gdev->srcu, before the other has initialized it, resulting in crash: [ 4.935481] Unable to handle kernel paging request at virtual address ffff800272bcc000 [ 4.943396] Mem abort info: [ 4.943400] ESR = 0x0000000096000005 [ 4.943403] EC = 0x25: DABT (current EL), IL = 32 bits [ 4.943407] SET = 0, FnV = 0 [ 4.943410] EA = 0, S1PTW = 0 [ 4.943413] FSC = 0x05: level 1 translation fault [ 4.943416] Data abort info: [ 4.943418] ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000 [ 4.946220] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 [ 4.955261] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 [ 4.955268] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000038e6c000 [ 4.961449] [ffff800272bcc000] pgd=0000000000000000 [ 4.969203] , p4d=1000000039739003 [ 4.979730] , pud=0000000000000000 [ 4.980210] phandle (CPU): 0x0000005e, phandle (BE): 0x5e000000 for node "reset" [ 4.991736] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP ... [ 5.121359] pc : __srcu_read_lock+0x44/0x98 [ 5.131091] lr : gpio_name_to_desc+0x60/0x1a0 [ 5.153671] sp : ffff8000833bb430 [ 5.298440] [ 5.298443] Call trace: [ 5.298445] __srcu_read_lock+0x44/0x98 [ 5.309484] gpio_name_to_desc+0x60/0x1a0 [ 5.320692] gpiochip_add_data_with_key+0x488/0xf00 5.946419] ---[ end trace 0000000000000000 ]--- Move initialization code for gdev fields before it is added to gpio_devices, with adjacent initialization code. Adjust goto statements to reflect modified order of operations [Bartosz: fixed a build issue, removed stray newline]

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysismoderate

Security readout for executives and security teams

Plain-English summary

This is a Linux kernel reliability flaw in GPIO device registration. A race can let one driver use a GPIO device's SRCU state before another has initialized it, causing a kernel crash. The public record does not show data theft, privilege escalation, or active exploitation.

Executive priority

Track and patch through normal kernel maintenance, with higher priority for embedded, appliance, industrial, or custom-hardware fleets. Current evidence supports stability and availability risk, not confirmed exploitation or broad remote compromise.

Technical view

During gpiochip_add_data_with_key(), gpiodev_add_to_list_unlocked() can expose a gdev to gpio_name_to_desc() before gdev->srcu is initialized. A concurrent traversal can dereference uninitialized SRCU state and fault in __srcu_read_lock(). The fix moves gdev field initialization before insertion into gpio_devices.

Likely exposure

Exposure is most relevant to Linux systems using GPIO infrastructure and drivers that can concurrently register GPIO chips. The source lists Linux kernel versions including 6.9, 6.12.83, 6.18.6, and 6.19 as affected; downstream vendor backports may differ.

Exploitation context

No KEV listing or provided source indicates active exploitation. The described impact is a kernel crash from a race condition during driver activity, not a documented remote attack path. Triggerability likely depends on kernel configuration, hardware, and driver timing.

Researcher notes

Evidence is limited to the CVE text and upstream stable commits. The source describes the race, crash trace, and initialization-order fix, but provides no CVSS, CWE, exploit report, or precise downstream package matrix.

Mitigation direction

  • Apply Linux kernel stable updates containing the referenced gpiolib fix.
  • Check distribution or device-vendor advisories for backported kernel packages.
  • Prioritize systems with GPIO-heavy hardware or custom kernel drivers.
  • Avoid treating upstream version numbers as definitive for vendor kernels.

Validation and detection

  • Inventory Linux kernel versions and vendor patch levels.
  • Check whether deployed kernels include one of the referenced stable commits.
  • Review crash logs for __srcu_read_lock and gpio_name_to_desc traces.
  • Confirm GPIO driver registration paths in custom or embedded kernels.
Prepared
Confidence
medium
Sources
5

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cve · low confidence lookup

CVE-2026-22986 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Unknown
CVSS
Not scored
Known Exploited
No
Published
Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

0CVSS vectors
3Timeline events
0ADP providers
4Source links

Vulnerability timeline

Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.

  1. CVE reservedCVE Program

    The CVE ID was reserved by the assigning CNA.

  2. CVE publishedCVE Program

    The CVE record was published.

  3. CVE updatedCVE Program

    The CVE record metadata indicates this as the latest update time.

Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinux47d8b4c1d868148c8fb51b785a89e58ca2d02c4d, 47d8b4c1d868148c8fb51b785a89e58ca2d02c4d, 47d8b4c1d868148c8fb51b785a89e58ca2d02c4dunaffected
LinuxLinux6.9, 0, 6.12.83, 6.18.6, 6.19affected
Weakness

CWE details

No CWE listed

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.