Direct naar de inhoud
Kritieke cyberalerts voor jouw sector & systemen — direct in je inbox. Aanmelden →
CVE's Videos Dagbriefing

← Terug naar CVE-database

CVE-2026-46294

HIGH · 7.8 CVSS Gepubliceerd: CWE-787

Beschrijving NL

In de Linux kernel is de volgende kwetsbaarheid verholpen:

dm: herstel een bufferoverloop in ioctl-verwerking

Tony Asleson (met behulp van Claude) vond een bufferoverloop in dm-ioctl in de
function retrieve_status:

1. De code in retrieve_status controleert of de uitvoerstring erin past
de uitvoerbuffer en schrijft de uitvoerreeks daar
2. Vervolgens lijnt de code de variabele "outptr" uit met de volgende 8-byte
grens:
outptr = align_ptr(outptr);
3. De uitlijning controleert de overloop niet, dus outptr kan voorbij de
buffereind
4. De "voor" -lus wordt opnieuw herhaald, deze voert uit:
resterend = len - (outptr - outbuf);
5. Als "outptr" voorbij "outbuf + len" wijst, wikkelt de rekenkunde zich rond
en de variabele "resterend" bevat een ongewoon hoog aantal
6. Omdat "resterende" hoog is, schrijft de code meer gegevens na het einde van
de buffer

Gelukkig heeft deze bug geen beveiligingsimplicaties omdat:
1. Alleen root kan apparaatmapper-ioctls uitgeven
2. De veelgebruikte bibliotheken die communiceren met apparaatmapper
(libdevmapper en devicemapper-rs) gebruik buffergrootte die is afgestemd op
8 bytes - dus "outptr = align_ptr(outptr)" kan de invoer niet overschrijden
buffer en de bug kan niet per ongeluk gebeuren

Origineel (Engels) tonen

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

dm: fix a buffer overflow in ioctl processing

Tony Asleson (using Claude) found a buffer overflow in dm-ioctl in the
function retrieve_status:

1. The code in retrieve_status checks that the output string fits into
the output buffer and writes the output string there
2. Then, the code aligns the "outptr" variable to the next 8-byte
boundary:
outptr = align_ptr(outptr);
3. The alignment doesn't check overflow, so outptr could point past the
buffer end
4. The "for" loop is iterated again, it executes:
remaining = len - (outptr - outbuf);
5. If "outptr" points past "outbuf + len", the arithmetics wraps around
and the variable "remaining" contains unusually high number
6. With "remaining" being high, the code writes more data past the end of
the buffer

Luckily, this bug has no security implications because:
1. Only root can issue device mapper ioctls
2. The commonly used libraries that communicate with device mapper
(libdevmapper and devicemapper-rs) use buffer size that is aligned to
8 bytes - thus, "outptr = align_ptr(outptr)" can't overshoot the input
buffer and the bug can't happen accidentally

Vendors

Linux

Affected products

Linux Kernel

References