DEBIAN-CVE-2025-40009

Source
https://security-tracker.debian.org/tracker/CVE-2025-40009
Import Source
https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-40009.json
JSON Data
https://api.test.osv.dev/v1/vulns/DEBIAN-CVE-2025-40009
Upstream
Published
2025-10-20T16:15:37.593Z
Modified
2026-03-11T07:38:00.944435Z
Summary
[none]
Details

In the Linux kernel, the following vulnerability has been resolved: fs/proc/taskmmu: check p->vecbuf for NULL When the PAGEMAPSCAN ioctl is invoked with veclen = 0 reaches pagemapscanbackoutrange(), kernel panics with null-ptr-deref: [ 44.936808] Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP DEBUGPAGEALLOC KASAN NOPTI [ 44.937797] KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] [ 44.938391] CPU: 1 UID: 0 PID: 2480 Comm: reproducer Not tainted 6.17.0-rc6 #22 PREEMPT(none) [ 44.939062] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [ 44.939935] RIP: 0010:pagemapscanthpentry.isra.0+0x741/0xa80 <snip registers, unreliable trace> [ 44.946828] Call Trace: [ 44.947030] <TASK> [ 44.949219] pagemapscanpmdentry+0xec/0xfa0 [ 44.952593] walkpmdrange.isra.0+0x302/0x910 [ 44.954069] walkpudrange.isra.0+0x419/0x790 [ 44.954427] walkp4drange+0x41e/0x620 [ 44.954743] walkpgdrange+0x31e/0x630 [ 44.955057] __walkpagerange+0x160/0x670 [ 44.956883] walk_pagerangemm+0x408/0x980 [ 44.958677] walkpagerange+0x66/0x90 [ 44.958984] dopagemapscan+0x28d/0x9c0 [ 44.961833] dopagemapcmd+0x59/0x80 [ 44.962484] _x64sysioctl+0x18d/0x210 [ 44.962804] dosyscall64+0x5b/0x290 [ 44.963111] entrySYSCALL64afterhwframe+0x76/0x7e veclen = 0 in pagemapscaninitbouncebuffer() means no buffers are allocated and p->vecbuf remains set to NULL. This breaks an assumption made later in pagemapscanbackoutrange(), that pageregion is always allocated for p->vecbufindex. Fix it by explicitly checking p->vecbuf for NULL before dereferencing. Other sites that might run into same deref-issue are already (directly or transitively) protected by checking p->vecbuf. Note: From PAGEMAPSCAN man page, it seems veclen = 0 is valid when no output is requested and it's only the side effects caller is interested in, hence it passes check in pagemapscangetargs(). This issue was found by syzkaller.

References

Affected packages

Debian:13 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.12.57-1

Affected versions

6.*
6.12.38-1
6.12.41-1
6.12.43-1~bpo12+1
6.12.43-1
6.12.48-1
6.12.57-1~bpo12+1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Database specific

source
"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-40009.json"

Debian:14 / linux

Package

Name
linux
Purl
pkg:deb/debian/linux?arch=source

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.16.10-1

Affected versions

6.*
6.12.38-1
6.12.41-1
6.12.43-1~bpo12+1
6.12.43-1
6.12.48-1
6.12.57-1~bpo12+1
6.12.57-1
6.12.63-1~bpo12+1
6.12.63-1
6.12.69-1~bpo12+1
6.12.69-1
6.12.73-1~bpo12+1
6.12.73-1
6.13~rc6-1~exp1
6.13~rc7-1~exp1
6.13.2-1~exp1
6.13.3-1~exp1
6.13.4-1~exp1
6.13.5-1~exp1
6.13.6-1~exp1
6.13.7-1~exp1
6.13.8-1~exp1
6.13.9-1~exp1
6.13.10-1~exp1
6.13.11-1~exp1
6.14.3-1~exp1
6.14.5-1~exp1
6.14.6-1~exp1
6.15~rc7-1~exp1
6.15-1~exp1
6.15.1-1~exp1
6.15.2-1~exp1
6.15.3-1~exp1
6.15.4-1~exp1
6.15.5-1~exp1
6.15.6-1~exp1
6.16~rc7-1~exp1
6.16-1~exp1
6.16.1-1~exp1
6.16.3-1~bpo13+1
6.16.3-1
6.16.5-1
6.16.6-1
6.16.7-1
6.16.8-1
6.16.9-1

Ecosystem specific

{
    "urgency": "not yet assigned"
}

Database specific

source
"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2025-40009.json"