Description
In the Linux kernel, the following vulnerability has been resolved:

gpio: tegra: do not call pinctrl for GPIO direction

tegra_gpio_direction_input() and tegra_gpio_direction_output() already
program the GPIO controller direction registers directly. The additional
pinctrl_gpio_direction_input/output() calls do not add a Tegra pinctrl
operation, because the Tegra pinmux ops provide GPIO request/free
handling but no gpio_set_direction hook.

The extra call still enters the pinctrl core and takes pctldev->mutex.
Shared GPIO users can call the direction path while holding their
per-line spinlock, so this otherwise redundant pinctrl direction call can
sleep in an atomic context.

This was found by our static analysis tool and then confirmed by manual
review of tegra_gpio_probe(), the Tegra GPIO direction callbacks and the
Tegra pinctrl ops. The reviewed path has a default non-sleeping
struct gpio_chip while the direction callback still enters the pinctrl
mutex path.

A directed runtime validation kept the same non-sleeping chip registration
and drove:

gpio_shared_proxy_direction_output()
gpiod_direction_output_raw_commit()
tegra_gpio_direction_output()
pinctrl_gpio_direction_output()

Lockdep reported a sleep-in-atomic warning with the shared GPIO spinlock
held and pinctrl_get_device_gpio_range() plus tegra_gpio_direction_output()
on the stack.

Do not mark the whole chip as can_sleep to paper over this: can_sleep
describes whether get()/set() may sleep, and Tegra value access is MMIO.
Remove the redundant pinctrl direction calls and keep pinctrl involvement
in the existing request/free path.
Published: 2026-08-15
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel Tegra GPIO driver makes an unnecessary call to the pinctrl framework when setting a GPIO’s direction. Because the pinctrl mutex can sleep, this call is executed while the driver holds an atomic‑context spinlock, violating kernel locking rules. The resulting sleep‑in‑atomic warning can cause a deadlock, kernel panic, or system hang, potentially leading to denial of service for the entire machine. The vulnerability is an instance of improper locking (CWE‑663). Based on the description, it is inferred that an attacker who can trigger the affected driver path might bring the system down, but the CVE does not disclose a direct exploitation vector or privilege escalation mechanism.

Affected Systems

Any Linux kernel that includes the tegra_gpio driver, which is built for Tegra SoCs, may be impacted. The CVE data lists no specific kernel version, so all kernels shipping the affected driver could be affected.

Risk and Exploitability

The CVSS score of 5.5 indicates medium severity. The EPSS score of less than 1% suggests a low likelihood of exploitation, and the vulnerability is not listed in CISA KEV. The attack vector lies in internal kernel code; an attacker would need to exercise the path that calls tegra_gpio_direction_input/output while holding a GPIO spinlock. While the risk to confidentiality or integrity is low, a successful trigger could result in a kernel panic or lockup, causing a high impact on availability.

Generated by OpenCVE AI on August 18, 2026 at 03:58 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest Linux kernel release that includes the commit which removes the redundant pinctrl calls for Tegra GPIO direction setting.
  • If updating the kernel is not possible, manually apply the patch that deletes the pinctrl_gpio_direction_input and pinctrl_gpio_direction_output calls from the Tegra GPIO driver source and rebuild the kernel module.
  • Reboot the system (or reload the driver if the kernel is already updated) so the changes take effect, then monitor dmesg for any remaining "sleep‑in‑atomic" warnings to confirm the issue is resolved.

Generated by OpenCVE AI on August 18, 2026 at 03:58 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 23 Aug 2026 13:15:00 +0000


Tue, 18 Aug 2026 00:15:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Low


Sat, 15 Aug 2026 09:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-663

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: gpio: tegra: do not call pinctrl for GPIO direction tegra_gpio_direction_input() and tegra_gpio_direction_output() already program the GPIO controller direction registers directly. The additional pinctrl_gpio_direction_input/output() calls do not add a Tegra pinctrl operation, because the Tegra pinmux ops provide GPIO request/free handling but no gpio_set_direction hook. The extra call still enters the pinctrl core and takes pctldev->mutex. Shared GPIO users can call the direction path while holding their per-line spinlock, so this otherwise redundant pinctrl direction call can sleep in an atomic context. This was found by our static analysis tool and then confirmed by manual review of tegra_gpio_probe(), the Tegra GPIO direction callbacks and the Tegra pinctrl ops. The reviewed path has a default non-sleeping struct gpio_chip while the direction callback still enters the pinctrl mutex path. A directed runtime validation kept the same non-sleeping chip registration and drove: gpio_shared_proxy_direction_output() gpiod_direction_output_raw_commit() tegra_gpio_direction_output() pinctrl_gpio_direction_output() Lockdep reported a sleep-in-atomic warning with the shared GPIO spinlock held and pinctrl_get_device_gpio_range() plus tegra_gpio_direction_output() on the stack. Do not mark the whole chip as can_sleep to paper over this: can_sleep describes whether get()/set() may sleep, and Tegra value access is MMIO. Remove the redundant pinctrl direction calls and keep pinctrl involvement in the existing request/free path.
Title gpio: tegra: do not call pinctrl for GPIO direction
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-23T12:46:39.651Z

Reserved: 2026-08-09T03:40:39.903Z

Link: CVE-2026-72063

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:15.887

Modified: 2026-08-23T13:16:38.950

Link: CVE-2026-72063

cve-icon Redhat

Severity : Low

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72063 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T04:00:10Z

Weaknesses
  • CWE-663

    Use of a Non-reentrant Function in a Concurrent Context