ืืืงืจื ืืืืื ืืืืื ืืืื ืคืืืขืืช ืืืืืช ืืืขืจืืช Linux ืงืืืืช ืคืืืขืืช ืฉื ืืกืืืช ืืจืฉืืืช (CVE-2025-38236). ืืื ืืืชืจ, ืืคืืืขืืช ืืืคืฉืจืช ืืขืงืืฃ ืืช ืื ืื ืื ืืืืื ืืจืื ืืืื (sandbox) ืืืฉืืฉ ืืืืื ืืจืื ืืืืฉืื ืืืฆืืข ืงืื ืืจืืช ืืืืื ืืขืช ืืืฆืืข ืงืื ืืืงืฉืจ ืฉื ืชืืืื ืืจืื ืืืจ ืืืจืื ืืื ืฉื ืืจืื (ืืืืืื, ืขื ืืื ื ืืฆืื ืคืืืขืืช ืืืจืช ื-Chrome). ืืืขืื ืืชืืืืช ืืื ืืืืื. Linux 6.9 ืืชืืงื ืืขืืืื ื ืืืืื Linux 6.1.143, 6.6.96, 6.12.36 ื-6.15.5. ืื ืืืคืืก ืฉื ื ืืฆืื ืืจืขื ืืืื ืืืืจืื.
ืืคืืืขืืช ื ืืจืืช ืืฉืืืืช ืืืฉืื ืืืื MSG_OOB, ืฉื ืืชื ืืืืืืจ ืขืืืจ sockets AF_UNIX. ืืืื MSG_OOB ("ืืืืฅ ืืคืก") ืืืคืฉืจ ืืืกืคืช ืืืื ื ืืกืฃ ืื ืชืื ืื ืื ืฉืืืื, ืืืชื ืื ืืขื ืืืื ืืงืจืื ืืคื ื ืงืืืช ืฉืืจ ืื ืชืื ืื. ืืื ืื ื ืืกืฃ ืืืจืขืื. Linux ืืจืกื 5.15 ืืชืืงืฉื ืขื ืืื ืืืจืงื ืืืืฆืขื ืืืืฆืื ืืฉืืืืฉ ืืฉื ื ืฉืขืืจื ืืืืืื ืฉืื ืืืืฆื ืืืืคื ื ืจืื.
ืืืฉืื ืืจืื ืืืื ืฉื ืืจืื ืืืคืฉืจ ืคืขืืืืช socket ืฉื UNIX ืืงืจืืืืช ืืขืจืืช send()/recv() ืืืฉืจ ืืืื MSG_OOB ืืืชืจ ืืื ืขื ืืคืฉืจืืืืช ืืืจืืช ืืื ืกืื ื ืื ืคืจื. ืืื ืืืืืืฉ MSG_OOB ืืืคืฉืจ ืืชืจืืฉืืช ืฉื ืชื ืื use-after-free ืืืืจ ืืืฆืืข ืจืฆืฃ ืืกืืื ืฉื ืงืจืืืืช ืืขืจืืช: char dummy; int socks[2]; socketpair(AF_UNIX, SOCK_STREAM, 0, socks); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[1], "A", 1, MSG_OOB); recv(socks[0], &dummy, 1, MSG_OOB); send(socks[0], "A", 0, MSG_OOB); recv(socks[1], &dummy, XNUMX, XNUMX); recv(ืืจืืืื[XNUMX], &dummy, XNUMX, MSG_OOB);
ืืงืืจ: OpenNet.ru
