LiveActive security incident?Get immediate response
CVE Record

CVE-2025-21684: gpio: xilinx: Convert gpio_lock to raw spinlock

In the Linux kernel, the following vulnerability has been resolved: gpio: xilinx: Convert gpio_lock to raw spinlock irq_chip functions may be called in raw spinlock context. Therefore, we must also use a raw spinlock for our own internal locking. This fixes the following lockdep splat: [ 5.349336] ============================= [ 5.353349] [ BUG: Invalid wait context ] [ 5.357361] 6.13.0-rc5+ #69 Tainted: G W [ 5.363031] ----------------------------- [ 5.367045] kworker/u17:1/44 is trying to lock: [ 5.371587] ffffff88018b02c0 (&chip->gpio_lock){....}-{3:3}, at: xgpio_irq_unmask (drivers/gpio/gpio-xilinx.c:433 (discriminator 8)) [ 5.380079] other info that might help us debug this: [ 5.385138] context-{5:5} [ 5.387762] 5 locks held by kworker/u17:1/44: [ 5.392123] #0: ffffff8800014958 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:3204) [ 5.402260] #1: ffffffc082fcbdd8 (deferred_probe_work){+.+.}-{0:0}, at: process_one_work (kernel/workqueue.c:3205) [ 5.411528] #2: ffffff880172c900 (&dev->mutex){....}-{4:4}, at: __device_attach (drivers/base/dd.c:1006) [ 5.419929] #3: ffffff88039c8268 (request_class#2){+.+.}-{4:4}, at: __setup_irq (kernel/irq/internals.h:156 kernel/irq/manage.c:1596) [ 5.428331] #4: ffffff88039c80c8 (lock_class#2){....}-{2:2}, at: __setup_irq (kernel/irq/manage.c:1614) [ 5.436472] stack backtrace: [ 5.439359] CPU: 2 UID: 0 PID: 44 Comm: kworker/u17:1 Tainted: G W 6.13.0-rc5+ #69 [ 5.448690] Tainted: [W]=WARN [ 5.451656] Hardware name: xlnx,zynqmp (DT) [ 5.455845] Workqueue: events_unbound deferred_probe_work_func [ 5.461699] Call trace: [ 5.464147] show_stack+0x18/0x24 C [ 5.467821] dump_stack_lvl (lib/dump_stack.c:123) [ 5.471501] dump_stack (lib/dump_stack.c:130) [ 5.474824] __lock_acquire (kernel/locking/lockdep.c:4828 kernel/locking/lockdep.c:4898 kernel/locking/lockdep.c:5176) [ 5.478758] lock_acquire (arch/arm64/include/asm/percpu.h:40 kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5851 kernel/locking/lockdep.c:5814) [ 5.482429] _raw_spin_lock_irqsave (include/linux/spinlock_api_smp.h:111 kernel/locking/spinlock.c:162) [ 5.486797] xgpio_irq_unmask (drivers/gpio/gpio-xilinx.c:433 (discriminator 8)) [ 5.490737] irq_enable (kernel/irq/internals.h:236 kernel/irq/chip.c:170 kernel/irq/chip.c:439 kernel/irq/chip.c:432 kernel/irq/chip.c:345) [ 5.494060] __irq_startup (kernel/irq/internals.h:241 kernel/irq/chip.c:180 kernel/irq/chip.c:250) [ 5.497645] irq_startup (kernel/irq/chip.c:270) [ 5.501143] __setup_irq (kernel/irq/manage.c:1807) [ 5.504728] request_threaded_irq (kernel/irq/manage.c:2208)

UnknownCVSS not scoredNot KEV-listedUpdated
Glexia's TakeAutomated analysisunknown

Security readout for executives and security teams

Plain-English summary

CVE-2025-21684 is a Linux kernel issue in the Xilinx GPIO driver. Under certain interrupt-handling contexts, the driver used a lock type that could be unsafe, producing an invalid wait-context warning. The available sources do not show active exploitation, CVSS scoring, or a broad remote-attack scenario.

Executive priority

Treat this as a targeted platform-stability issue unless your environment depends on Xilinx GPIO-based Linux systems. Prioritize affected embedded, industrial, or appliance deployments, but do not treat it as internet-wide emergency based on the provided evidence.

Technical view

The Xilinx GPIO driver used gpio_lock where irq_chip callbacks may execute in raw spinlock context. The kernel fix converts the driver’s internal lock to a raw spinlock. The source trace shows this during xgpio_irq_unmask on xlnx,zynqmp hardware while setting up IRQs.

Likely exposure

Exposure appears limited to Linux systems using the Xilinx GPIO driver, especially Xilinx/ZynqMP-style platforms with GPIO interrupt use. The source bundle lists Linux as affected and references stable kernel fixes, but it does not provide complete deployment prevalence or package-level fixed-version mapping.

Exploitation context

The bundle marks KEV as false and provides no cited evidence of exploitation. The available evidence is a kernel lockdep warning and upstream stable fixes, not a public exploit report or weaponized technique.

Researcher notes

Evidence is incomplete for impact severity: no CVSS, CWE, exploitability statement, or detailed affected range semantics are provided. The reliable facts are the driver, locking flaw, lockdep trace, affected Linux listing, upstream stable commit references, Debian LTS notice, and no KEV listing.

Mitigation direction

  • Check the running kernel against vendor and kernel.org stable advisories.
  • Prioritize updates on systems using Xilinx GPIO interrupt functionality.
  • Apply the relevant stable kernel or distribution security update when available.
  • Review Debian LTS guidance if using Debian-packaged kernels.
  • Monitor vendor advisories for package-specific fixed versions.

Validation and detection

  • Inventory Linux hosts and embedded devices using Xilinx GPIO hardware or drivers.
  • Confirm kernel version and distribution package status against advisory sources.
  • Review boot and kernel logs for xgpio_irq_unmask or invalid wait-context warnings.
  • Validate that deployed kernels include the referenced stable fix commits.
  • Test GPIO interrupt behavior after updating affected systems.
Prepared
Confidence
medium
Sources
8

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-2025-21684 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
1ADP providers
7Source 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.

ADP provider summaries

CVECVE Program Container
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
LinuxLinuxa32c7caea292c4d1e417eae6e5a348d187546acf, a32c7caea292c4d1e417eae6e5a348d187546acf, a32c7caea292c4d1e417eae6e5a348d187546acf, a32c7caea292c4d1e417eae6e5a348d187546acf, a32c7caea292c4d1e417eae6e5a348d187546acfunaffected
LinuxLinux5.12, 0, 5.15.179, 6.1.129, 6.6.74, 6.12.11, 6.13affected
Weakness

CWE details

No CWE listed

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