← CVE Veritabanı

CVE-2026-68388

Kritik

Teknik Veri (Otomatik)

CVSS Skoru
9.8
EPSS
0.5%
CWE
—
KEV Durumu
Hayır

Yayım tarihi: 10 Ağustos 2026

Linux çekirdeğinde aşağıdaki güvenlik açığı çözülmüştür: smb/client: fallocate'de örtüşen atanmış aralıkları işle smb3_simple_fallocate_range(), sunucu tarafından döndürülen atanmış bir aralık, geçerli fallocate ofsetinden önce başladığında delikleri atlayabilir. Atlanan delik sıfır dolu değildir, ancak fallocate başarıyla döner. Bu deliğe daha sonra yazma işlemi ENOSPC ile başarısız olabilir. Bu işlev, mevcut içeriği korumak ve yalnızca deliklere sıfır yazmak için atanmış aralıkları sorgular. Ancak sunucu, geçerli fallocate ofsetinden önce başlayan bir aralık döndürebilir. Örneğin, fallocate isteği [100, 400) ve sunucu tarafından döndürülen tek atanmış aralık [0, 200) olsun: İstek: [100, 400) Sunucu aralığı: [ 0, 200) atanmış Doğru: [100, 200) atanmış veri, atla [200, 400) delik, sıfır dolu Mevcut: [100, 300) atlandı [300, 400) daha sonra sıfır dolu Mevcut kod, sunucu aralığı uzunluğunun tamamını, 200'ü, geçerli ofset 100'e ekler ve 300'e ilerler. Sonuç olarak, [200, 300) aralığındaki delik sıfır dolu olmadan atlanır. Bu sorunu, geçerli fallocate ofsetinin örtüştüğü atanmış aralığın yalnızca bir kısmına ilerleyerek çözün. Geçerli ofsetten önce biten aralıkları yoksayın ve bitiş ofseti taşan aralıkları reddedin. Bu ayrıca bozuk bir aralık uzunluğunun, sınırlar dışına sıfır tampon okumasına neden olmasını da engeller.

Orijinal açıklama (İngilizce)

In the Linux kernel, the following vulnerability has been resolved: smb/client: handle overlapping allocated ranges in fallocate smb3_simple_fallocate_range() can skip holes when an allocated range returned by the server starts before the current fallocate offset. The skipped hole is not zero-filled, but fallocate still returns success. A later write to that hole may therefore fail with ENOSPC. The function queries allocated ranges so that it can preserve existing contents and write zeroes only into holes. However, the server may return a range that starts before the current fallocate offset. For example, assume the fallocate request is [100, 400) and the only allocated range returned by the server is [0, 200): Request: [100, 400) Server range: [ 0, 200) allocated Correct: [100, 200) allocated data, skip [200, 400) hole, zero-fill Current: [100, 300) skipped [300, 400) zero-filled afterwards The current code adds the full server range length, 200, to the current offset 100 and moves to 300. As a result, the hole in [200, 300) is skipped without being zero-filled. Fix this by advancing only over the part of the allocated range that overlaps the current fallocate offset. Ignore ranges that end before the current offset and reject ranges whose end offset overflows. This also prevents a malformed range length from causing an out-of-bounds zero-buffer read.

Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.