Theo de Raadt heeft een reeks patches aan de codebasis van OpenBSD toegevoegd voor extra bescherming van het geheugen van processen in de gebruikersruimte. Ontwikkelaars hebben een nieuwe systeemaanroep en de bijbehorende bibliotheekfunctie mimmutable voorgesteld, waarmee de toegangsrechten bij geheugenreflectie (memory mappings) kunnen worden vastgezet. Na het vastzetten zijn de vastgestelde rechten voor het geheugengebied, zoals het verbod op schrijven en uitvoeren, niet later te veranderen via volgende aanroepen van de functies mmap(), mprotect() en munmap(), die bij poging tot wijziging de fout EPERM zullen geven.
Voor het beheren van de mogelijkheid om de rechten van gereflecteerd geheugen voor objectbestanden te wijzigen, is een nieuwe sectie Mutable BSS (.openbsd.mutable, Mutable Block Starting Symbol) voorgesteld, evenals nieuwe vlaggen PF_MUTABLE en UVM_ET_IMMUTABLE. De linkertool heeft ondersteuning gekregen voor het definiƫren van secties "openbsd.mutable" en voor het plaatsen daarvan in een apart gebied in BSS, uitgelijnd op de paginarand van het geheugen. Via de aanroep van de functie mimmutable kan de mogelijkheid worden geboden om alle gereflecteerde gebieden als onveranderlijk (immutable) te markeren, met uitzondering van secties die als "openbsd.mutable" zijn gemarkeerd. Deze nieuwe functie zal beschikbaar worden gesteld aan gebruikers in de release van OpenBSD 7.3.
Bron: opennet.ru
