CVE-2026-74371
WysokieCVSS 7.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 3 - wyżej niż 3% wszystkich znanych CVE
Streszczenie
W jądrze Linux wykryto podatność w funkcji BPF_PROG_QUERY, która powoduje zapis poza zakresem (OOB) podczas zapisywania pola 'query.revision' do przestrzeni użytkownika. Problem występuje, gdy użytkownik przekaże mniejszą strukturę bpf_attr (np. 40 bajtów, sprzed dodania pola revision), co prowadzi do zapisu poza przydzielony bufor. Poprawka polega na propagowaniu rozmiaru atrybutu użytkownika do handlerów zapytań cgroup i warunkowym pomijaniu zapisu pola revision, gdy bufor jest zbyt mały.
Ocena ryzyka
Podatność może prowadzić do uszkodzenia pamięci jądra, co może skutkować awarią systemu, eskalacją uprawnień lub wyciekiem informacji. Organizacje korzystające z BPF (np. w systemach kontenerowych, sieciach czy monitorowaniu) są narażone na ataki z poziomu nieuprzywilejowanego użytkownika.
Rekomendacja
Zaleca się natychmiastowe zaktualizowanie jądra Linux do wersji zawierającej poprawkę (commit dla CVE-2026-74371). Jeśli aktualizacja nie jest możliwa, należy ograniczyć dostęp do operacji BPF_PROG_QUERY dla nieuprzywilejowanych użytkowników (np. przez odpowiednie polityki LSM lub ograniczenie uprawnień).
Oryginalny opis (angielski, źródło NVD)
In the Linux kernel, the following vulnerability has been resolved: bpf: fix BPF_PROG_QUERY OOB write and cgroup backward compat BPF_PROG_QUERY writes back the 'query.revision' field unconditionally to userspace. If userspace passes a smaller 'bpf_attr' structure (e.g. 40 bytes, which was the layout before the addition of 'query.revision'), the kernel performs an out-of-bounds write. Fix this by propagating the user-provided attribute size 'uattr_size' down to the cgroup query handlers, and conditionally skipping writing the revision field to userspace when the provided buffer size is insufficient. query.revision in bpf_mprog_query is structurally identical to the cgroup case: a late tail field, written unconditionally. But the backward-compat hazard is not the same. The min-historical-size test is per command, and bpf_mprog_query only serves attach types that were born with revision in the struct: - tcx_prog_query -> BPF_TCX_INGRESS/EGRESS - netkit_prog_query -> BPF_NETKIT_PRIMARY/PEER tcx, netkit, the revision field, and bpf_mprog_query itself all landed in the same v6.6 merge window (053c8e1f235d added the mprog query API + revision; tcx in e420bed02507, netkit in 35dfaad7188c). There has never been a tcx/netkit BPF_PROG_QUERY userspace that doesn't know about revision. So for these commands the minimum legitimate struct already covers offset 56-64 — no old binary can be broken here. Contrast with cgroup: BPF_PROG_QUERY on cgroup attach types shipped in 2017; revision write-back was bolted on years later (120933984460). That path has a real population of pre-revision callers.

