Збавенне ядра Linux ад кода, які змяняе паводзіны для працэсаў, якія пачынаюцца на сімвал X

Джэйсан Даненфілд (Jason A. Donenfeld), аўтар VPN WireGuard, звярнуў увагу распрацоўшчыкаў на прысутны ў кодзе ядра Linux брудны хак, які змяняе паводзіны для працэсаў, імя якіх пачынаецца на сімвал "X". На першы погляд падобныя выпраўленні звычайна ўжываюцца ў руткітах для пакідання ўтоенай шчыліны ў прывязцы да працэсу, але разбор паказаў, што змена была дададзена ў 2019 году для часавага ўхілення ўсплылага парушэння сумяшчальнасці з прасторай карыстача, у адпаведнасці з прынцыпам, што змены ў ядры не павінны. парушаць сумяшчальнасць з праграмамі.

Праблемы ўзнікалі пры спробе выкарыстання механізму атамарнай змены відэарэжыму ва ўжывальным у X.Org-серверы DDX-драйверы xf86-video-modesetting, чым і была абумоўленая прывязка да працэсаў, якія пачынаюцца на знак "X" (малася на ўвазе, што абыходны манеўр ужываецца да працэсу. Xorg»). Амаль адразу праблема ў X.Org была ўхіленая (выкарыстанне атамарнага API было адключана па змаўчанні), але з ядра часавае выпраўленне прыбраць забыліся і спроба адпраўкі ioctl для атамарнай змены рэжыму для ўсіх працэсаў, якія пачынаюцца на знак "X", дагэтуль працягвае прыводзіць да вяртання памылкі. if (current->comm[0] == 'X' && req->value == 1) { pr_info("broken atomic modeset userspace detected, disabling atomic\n"); return -EOPNOTSUPP; }

Крыніца: opennet.ru

Дадаць каментар