---
id: CVE-2026-23207
title: 'spi: tegra210-quad: Protect curr_xfer check in IRQ handler'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  spi: tegra210-quad: Protect curr_xfer check in IRQ handler

  Now that all other accesses to curr_xfer are done under the lock,
  protect the curr_xfer NULL check in tegra_…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= c934e40246da2c5726d14e94719c514e30840df8 <
    513587caec66b67243027f26867ad3512f06744f
  - >-
    Linux >= 551060efb156c50fe33799038ba8145418cfdeef <
    84e926c1c272a35ddb9b86842d32fa833a60dfc7
  - >-
    Linux >= 01bbf25c767219b14c3235bfa85906b8d2cb8fbc <
    2ac3a105e51496147c0e44e49466eecfcc532d57
  - >-
    Linux >= b4e002d8a7cee3b1d70efad0e222567f92a73000 <
    edf9088b6e1d6d88982db7eb5e736a0e4fbcc09e
  - Linux 88db8bb7ed1bb474618acdf05ebd4f0758d244e2
  - Linux 83309dd551cfd60a5a1a98d9cab19f435b44d46d
  - Linux bb0c58be84f907285af45657c1d4847b960a12bf
  - Linux >= 5.15.198 < 5.16
  - Linux >= 6.1.160 < 6.2
  - Linux >= 6.17.13 < 6.18
  - Linux >= 6.6.120 < 6.6.160
  - Linux >= 6.12.63 < 6.12.80
  - Linux >= 6.18.2 < 6.18.10
published: '2026-02-14'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T12:38:56.082Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-23207'
references:
  - url: 'https://git.kernel.org/stable/c/513587caec66b67243027f26867ad3512f06744f'
  - url: 'https://git.kernel.org/stable/c/84e926c1c272a35ddb9b86842d32fa833a60dfc7'
  - url: 'https://git.kernel.org/stable/c/2ac3a105e51496147c0e44e49466eecfcc532d57'
  - url: 'https://git.kernel.org/stable/c/edf9088b6e1d6d88982db7eb5e736a0e4fbcc09e'
tags:
  - cve.org
epss: 0.00135
epssPercentile: 0.0296
ingestedAt: '2026-10-21T12:48:53.670Z'
---

## Overview

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

spi: tegra210-quad: Protect curr_xfer check in IRQ handler

Now that all other accesses to curr_xfer are done under the lock,
protect the curr_xfer NULL check in tegra_qspi_isr_thread() with the
spinlock. Without this protection, the following race can occur:

  CPU0 (ISR thread)              CPU1 (timeout path)
  ----------------               -------------------
  if (!tqspi->curr_xfer)
    // sees non-NULL
                                 spin_lock()
                                 tqspi->curr_xfer = NULL
                                 spin_unlock()
  handle_*_xfer()
    spin_lock()
    t = tqspi->curr_xfer  // NULL!
    ... t->len ...        // NULL dereference!

With this patch, all curr_xfer accesses are now properly synchronized.

Although all accesses to curr_xfer are done under the lock, in
tegra_qspi_isr_thread() it checks for NULL, releases the lock and
reacquires it later in handle_cpu_based_xfer()/handle_dma_based_xfer().
There is a potential for an update in between, which could cause a NULL
pointer dereference.

To handle this, add a NULL check inside the handlers after acquiring
the lock. This ensures that if the timeout path has already cleared
curr_xfer, the handler will safely return without dereferencing the
NULL pointer.

## Affected

- `Linux >= c934e40246da2c5726d14e94719c514e30840df8 < 513587caec66b67243027f26867ad3512f06744f`
- `Linux >= 551060efb156c50fe33799038ba8145418cfdeef < 84e926c1c272a35ddb9b86842d32fa833a60dfc7`
- `Linux >= 01bbf25c767219b14c3235bfa85906b8d2cb8fbc < 2ac3a105e51496147c0e44e49466eecfcc532d57`
- `Linux >= b4e002d8a7cee3b1d70efad0e222567f92a73000 < edf9088b6e1d6d88982db7eb5e736a0e4fbcc09e`
- `Linux 88db8bb7ed1bb474618acdf05ebd4f0758d244e2`
- `Linux 83309dd551cfd60a5a1a98d9cab19f435b44d46d`
- `Linux bb0c58be84f907285af45657c1d4847b960a12bf`
- `Linux >= 5.15.198 < 5.16`
- `Linux >= 6.1.160 < 6.2`
- `Linux >= 6.17.13 < 6.18`
- `Linux >= 6.6.120 < 6.6.160`
- `Linux >= 6.12.63 < 6.12.80`
- `Linux >= 6.18.2 < 6.18.10`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
