---
id: CVE-2023-53429
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  btrfs: don't check PageError in __extent_writepage

  __extent_writepage currenly sets PageError whenever any error happens,
  and the also checks for PageError to decide i…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  btrfs: don't check PageError in __extent_writepage

  __extent_writepage currenly sets PageError whenever any error happens,
  and the also checks for PageError to decide i…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
vendor: linux
product: linux_kernel
affected:
  - linux_kernel < 6.4.7
patched:
  - linux_kernel 6.4.7
published: '2025-09-18'
updated: '2026-10-03'
sourceUpdated: '2026-10-03T11:17:27.770'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2023-53429'
references:
  - url: 'https://git.kernel.org/stable/c/3c26023365a955d2d69355f5167508a963e44333'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3e92499e3b004baffb479d61e191b41b604ece9a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/d40be032ecd8ee1ca033bee43c7755d21fb4d72a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-01-14T19:14:32.022612Z'
epss: 0.00134
epssPercentile: 0.02455
ingestedAt: '2026-10-03T11:43:42.108Z'
---

## Overview

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

btrfs: don't check PageError in __extent_writepage

__extent_writepage currenly sets PageError whenever any error happens,
and the also checks for PageError to decide if to call error handling.
This leads to very unclear responsibility for cleaning up on errors.
In the VM and generic writeback helpers the basic idea is that once
I/O is fired off all error handling responsibility is delegated to the
end I/O handler.  But if that end I/O handler sets the PageError bit,
and the submitter checks it, the bit could in some cases leak into the
submission context for fast enough I/O.

Fix this by simply not checking PageError and just using the local
ret variable to check for submission errors.  This also fundamentally
solves the long problem documented in a comment in __extent_writepage
by never leaking the error bit into the submission context.

## Affected

- `linux_kernel < 6.4.7`

## Remediation

Upgrade past the affected range:

- `linux_kernel 6.4.7`
