CVE-2026-80671
KritikTeknik Veri (Otomatik)
- CVSS Skoru
- 9.3
- EPSS
- 0.2%
- CWE
- —
- KEV Durumu
- Hayır
Yayım tarihi: 28 Ağustos 2026
Linux çekirdeğinde aşağıdaki güvenlik açığı çözülmüştür: perf sched: register_pid() taşması, strcpy ve BUG_ON düzeltmeleri register_pid(), güvenilmeyen perf.data işlerken birkaç sorun içerir: 1. Tamsayı taşması: (pid + 1) * sizeof(struct task_desc *) ifadesi, pid büyükse (örneğin 0x40000000) 32-bit sistemlerde küçük bir değere sarabilir, bu da realloc'in küçük bir tampon döndürmesine ve başlatma döngüsünde sınırların dışına yazılmasına neden olur. 2. Yığın tampon taşması: strcpy(task->comm, comm) güvenilmeyen comm dizgisini sabit 20 baytlık COMM_LEN tamponuna uzunluk kontrolü olmadan kopyalar. 3. Allocation başarısızlığında BUG_ON: perf.data güvenilmeyen bir girdidir, bu nedenle allocation başarısızlıkları process'i sonlandırmak yerine nazik bir şekilde ele alınmalıdır. 4. sched->tasks için yeniden tahsis doğrudan atanır ve allocation başarısızlığında eski işaretçi sızdırılır; nr_tasks, yeniden tahsis önce artırılır ve başarısızlık durumunda bozulmuş bir durum bırakılır. pid, PID_MAX_LIMIT (4194304, 64-bit çekirdeğin maksimumuna eşdeğer) ile sınırlanır, strcpy yerine strlcpy kullanılır, NULL comm karşı korunur, BUG_ON NULL döndürme kullanarak güvenli yeniden tahsis kalıpları ile değiştirilir ve sonuçların referanslarını alan çağrıların NULL kontrolleri eklenir.
Orijinal açıklama (İngilizce)
In the Linux kernel, the following vulnerability has been resolved: perf sched: Fix register_pid() overflow, strcpy, and BUG_ON register_pid() has several issues when processing untrusted perf.data: 1. Integer overflow: (pid + 1) * sizeof(struct task_desc *) can wrap to a small value on 32-bit systems when pid is large (e.g. 0x40000000), causing realloc to return a tiny buffer followed by out-of-bounds writes in the initialization loop. 2. Heap buffer overflow: strcpy(task->comm, comm) copies the untrusted comm string into a fixed 20-byte COMM_LEN buffer with no length check. 3. BUG_ON on allocation failure: perf.data is untrusted input, so allocation failures should be handled gracefully rather than killing the process. 4. Realloc of sched->tasks assigned directly back, leaking the old pointer on failure; nr_tasks incremented before the realloc, leaving corrupted state on failure. Cap pid at PID_MAX_LIMIT (4194304, matching the kernel's maximum on 64-bit), replace strcpy with strlcpy, guard against NULL comm, replace BUG_ON with NULL returns using safe realloc patterns, and add NULL checks in callers that dereference the result.
Referanslar
- https://git.kernel.org/stable/c/2003918e13f43cf6c5698be3cc9aa3657dd676a8
- https://git.kernel.org/stable/c/22263d241bad753217d545f8085b7ead52e2873b
- https://git.kernel.org/stable/c/261d2b5f4afa0570ca906e553c93811c5abe4590
- https://git.kernel.org/stable/c/29639f00bfa49da7904ba0a499e0da7a0e5d735e
- https://git.kernel.org/stable/c/344e59fc4f2cba6dc04ce5e2a77388645d4ca834
- https://git.kernel.org/stable/c/5949d339f5ec98752d56dcd4e36f619a59d513a5
Bu CVE için henüz editoryal inceleme yapılmadı. Sadece otomatik teknik veri gösteriliyor.