Linuss Torvalds plānoja publicēt kodola versiju Linux 6.13 versijas palaišana ir paredzēta šajā svētdienā, taču 6.13 versijas testēšana, visticamāk, tiks pagarināta par nedēļu stabilitātes problēmu dēļ, kas saistītas ar izmaiņām, kuras sagatavoja Microsoft darbinieks un novembrī tika pieņemtas 6.13 versijā. Tiek arī atzīmēts, ka ielāps, kas izraisīja avāriju, tika iesniegts nestandarta veidā — tas tika pieņemts, neskatoties uz to, ka no x86 arhitektūras uzturētājiem netika saņemts neviens apstiprinājums (ACK), kas ir vispārpieņemtās prakses pārkāpums.
Plāksteris pievienoja iespēju izmantot lielas atmiņas lapas ROX (Read Only Execute) režīmā, piešķirot atmiņu, kas paredzēta izpildāmā koda ievietošanai. ROX ļauj atmiņu ar izpildāmo kodu izmantot tikai lasīšanas režīmā, kas apgrūtina dažu ievainojamību izmantošanu. Kodolā 6.13 moduļu izpildāmais kods x86_64 sistēmās pēc noklusējuma tika iespējots, lai izmantotu lielu izpildāmās atmiņas lapu kešatmiņu, kas atspoguļota kā ROX. Izmaiņas atrisināja problēmu ar lapu kartēšanu ROX režīmā izpildāmajam kodam, kas vēl nebija pilnībā izveidots, un ļāva izvairīties no īslaicīgas ROX lapu pārveidošanas rakstīšanas režīmā, līdz kodola moduļi tika sagatavoti darbam.
Kodola 6.13 testēšanas pēdējā posmā Intel inženieris konstatēja kļūdu, kas neļāva kodolam pareizi pamosties no miega režīma dažos klēpjdatoros ar Intel procesoriem (piemēram, procesoriem, kuru pamatā ir Alderlake mikroarhitektūra). Kļūme radās, kad kodolu kompilēja kompilators Clang ar iespējotu CFI (Control Flow Integrity) aizsardzības režīmu, kas bloķē parastās izpildes secības (kontroles plūsmas) pārkāpumus, kas rodas, izmantojot ekspluatācijas, kas maina funkciju norādes, kas saglabātas atmiņa. Kā pagaidu risinājumu uzturētāji no Intel un AMD, kas atbildīgi par x86 arhitektūru, ierosināja atspējot EXECMEM_ROX izmantošanu 6.13 kodolā, līdz tiek sagatavots un pārbaudīts pilns ielāps, kas atrisina problēmu (pirmais labojums problēmu neatrisināja).
Avots: opennet.ru
