Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Bezpečnostní díra v jádře

Na jednom z blogů na itworld.com, zabývajícího se bezpečností, se objevil zápisbezpečnostní díře, která umožňuje získat práva roota i těm uživatelům, kteří by tato práva mít neměli. Jestli je chyba zneužitelná si jednoduše ověříte přes:

cat /proc/sys/vm/mmap_min_addr

Pokud na výstupu uvidíte 0 nebo se nevypíše nic, tak je váš systém zranitelný. Nulu uvidíte na většině systémů majících něco společného s Red Hatem (RHEL, CentOS, Fedora) případně s Novellem (SLES, openSUSE). Distribuce jako Ubuntu by měly být v bezpečí, nicméně na mém desktopu s Ubuntu 9.10 je tato hodnota také nastavená na nulu. Druhá instalace Ubuntu 9.10 na mém Eee je v pořádku. Pravděpodobně to souvisí s Wine, jehož balíčky mohou měnit toto nastavení při instalaci.

Oprava byla zahrnuta do jádra 2.6.32 a pro starší jsou k dispozici patche. Vývojový tým vaší distribuce ale problém s velkou pravděpodobností vyřeší nebo už vyřešil za vás.

Za upozornění děkujeme Eduardu Šurinovi.

Dále čtěte…         

Předchozí zprávička Následující zprávička        
Izak
Izak (neregistrovaný) ---.storyflex.cz
9. 11. 2009 15:10 Nový

FC8 - OK

celé vlákno

[root@fc8-x86~]# cat /proc/sys/vm/­mmap_min_addr
65536

Solitary aura:90
9. 11. 2009 18:17 Nový

Re: FC8 - OK

celé vlákno

Fedora 11, to same…

Tomáš Nesrovnal aura:49
9. 11. 2009 15:22 Nový

jak jsem na tom já .)

celé vlákno

nesro@nesro-desktop:~$ cat /proc/sys/vm/­mmap_min_addr
0

mikie
mikie (neregistrovaný) ---.itsys.cz
9. 11. 2009 15:22 Nový

Archlinux

celé vlákno

[root@Archie ~]# uname -sr
Linux 2.6.31-ARCH
[root@Archie ~]# pacman -Q | grep kernel26
kernel26 2.6.31.5–1
kernel26-firmware 2.6.31–1
[root@Archie ~]# cat /proc/sys/vm/­mmap_min_addr
4096

:)

Jirka
Jirka (neregistrovaný) ---.img.cas.cz
9. 11. 2009 15:38 Nový

Re: Archlinux

celé vlákno

Mandriva (cooker, 2.6.31, x86_64) ma „prekvapive“ taky 4096 ;-)

linuxnew
linuxnew (neregistrovaný) ---.cust.sloane.cz
9. 11. 2009 15:27 Nový

oprava

celé vlákno

mohu tu hodnotu zmeni v tom /proc… ? aniz by se stalo neco katastrofalniho?

Jirka P
Jirka P (neregistrovaný) ---.172.broadband13.iol.cz
9. 11. 2009 15:42 Nový

Re: oprava

celé vlákno

Můžeš, ale (prý) pak přestanou fungovat některé emulátory, jako dosemu.

Izak
Izak (neregistrovaný) ---.storyflex.cz
9. 11. 2009 16:29 Nový

Re: oprava

celé vlákno

Podle me to neni pravda, viz prispevky podemnou, co znamena ta hodnota.
I kdyz kdo pouziva dnes DOSemu ;-)) kdyz zde mame KVM a dosbox

Petr Uzel
9. 11. 2009 15:30 Nový

openSUSE Factory - OK

celé vlákno

openSUSE Factory:

> cat /proc/sys/vm/­mmap_min_addr
65536

Peter Fodrek aura:87
9. 11. 2009 15:32 Nový

Re: Bezpečnostní díra v jádře

celé vlákno

>Nulu uvidíte na většině systémů mající něco společného s Red Hatem (RHEL, CentOS, Fedora) případně s Novellem (SLES, openSUSE)

openSUSE 11.1 jadro 2.6.27.37 chyba nie je vid vypis…

cat /proc/sys/vm/­mmap_min_addr
65536
peto@fodrek:~/Do­cuments/Drazda­ny/Drazdany/plaz­ma> uname -a
Linux fodrek 2.6.25.16–0.1-default #1 SMP 2009–10–15 14:56:58 +0200 x86_64 x86_64 x86_64 GNU/Linux

more /boot/grub/menu.lst
# Modified by YaST2. Last modification on Mon Nov 9 15:04:23 CET 2009
# THIS FILE WILL BE PARTIALLY OVERWRITTEN by perl-Bootloader
# Configure custom boot parameters for updated kernels in /etc/sysconfig/bo­otloader

default 3
timeout 8
gfxmenu (hd0,5)/boot/mes­sage

###Don't change this comment – YaST2 identifier: Original name: linux###
title Desktop – openSUSE 11.1 – 2.6.32-rc6–15
root (hd0,5)
kernel /boot/vmlinuz-2.6.32-rc6–15-desktop root=/dev/disk/by-id/scsi-SATA_WDC_WD2500YS-01_WD-WCANY3077952-part6 resume=/d
ev/disk/by-id/ata-WDC_WD2500YS-01SHB1_WD-WCANY3077952-part5 splash=silent showopts vga=0×31a
initrd /boot/initrd-2.6.32-rc6–15-desktop

........

###Don't change this comment – YaST2 identifier: Original name: linux###
title openSUSE 11.1 – 2.6.27.37–0.1 (default)
root (hd0,5)
kernel /boot/vmlinuz-2.6.27.37–0.1-default root=/dev/disk/by-id/scsi-SATA_WDC_WD2500YS-01_WD-WCANY3077952-part6 resume=/d
ev/disk/by-id/ata-WDC_WD2500YS-01SHB1_WD-WCANY3077952-part5 splash=silent showopts vga=0×31a
initrd /boot/initrd-2.6.27.37–0.1-default

.......
###Don't change this comment – YaST2 identifier: Original name: linux###
title Ec2 – openSUSE 11.1 – 2.6.27.37–0.1
root (hd0,5)
kernel /boot/vmlinuz-2.6.27.37–0.1-ec2 root=/dev/disk/by-id/scsi-SATA_WDC_WD2500YS-01_WD-WCANY3077952-part6 resume=/dev/d
isk/by-id/ata-WDC_WD2500YS-01SHB1_WD-WCANY3077952-part5 splash=silent showopts vga=0×31a
initrd /boot/initrd-2.6.27.37–0.1-ec2

###Don't change this comment – YaST2 identifier: Original name: linux###
title Rt – openSUSE 11.1 – 2.6.31-rc8-rt9–10
root (hd0,5)
kernel /boot/vmlinuz-2.6.31-rc8-rt9–10-rt root=/dev/disk/by-id/scsi-SATA_WDC_WD2500YS-01_WD-WCANY3077952-part6 resume=/de
v/disk/by-id/ata-WDC_WD2500YS-01SHB1_WD-WCANY3077952-part5 splash=silent showopts vga=0×31a
initrd /boot/initrd-2.6.31-rc8-rt9–10-rt

poohDA
poohDA (neregistrovaný) 193.245.34.---
9. 11. 2009 15:34 Nový

také pomůže instalace balíčku 'gramatika_CZ_3_trid a'

celé vlákno

… by tato práva …
… na většině systémů majících
Už je mi vlastně jedno o čem zpráva je. Jakmile vidím ‚Adam Štrauch‘ jdu dělat korektury.

Adam Štrauch aura:99
9. 11. 2009 16:13 Nový

Re: také pomůže instalace balíčku 'gramatika_CZ_3_trid a'

celé vlákno

Díky, opraveno.

Daniel Housar
9. 11. 2009 15:40 Nový

co s tím?

celé vlákno

Co je to za číslo? Co bych tam měl dát za číslo? Zatím jsem tam dal hodnotu RAM v MB

Jirka P
Jirka P (neregistrovaný) ---.172.broadband13.iol.cz
9. 11. 2009 15:54 Nový

Re: co s tím?

celé vlákno

Je to minimální adresa, na kterou lze z uživatelského prostoru něco namapovat, v bytech. Jako workaround na dereferenci NULL v jádře by tam měl být malý násobek velikosti stránky (=4096 na i386)

Daniel Housar
9. 11. 2009 19:54 Nový

Re: co s tím?

celé vlákno

Tak se mi stalo něco horšího… něco ten soubor přepisuje při restartu a háže tam 0.

Vždy tam napíšu 4096, buď vypnu nebo restartuju a po přihlášení do konzole je tam 0. Jelikož mi systém nabíhá do konzole, ze které pak spouštím GDM, tak to přepisuje něco co se nastaruje během nabíhání nebo při přihlášení.

Lze nějak zjistit, který proces k tomu souboru přistupoval?

Daniel Housar
9. 11. 2009 20:40 Nový

Re: co s tím?

celé vlákno

tak to jsem zase něco vymyslel… :-( nj, když je to v sysfs, tak to asi po restartu bude opravdu zpátky.

PM
PM (neregistrovaný) 88.81.74.---
9. 11. 2009 22:08 Nový

Re: co s tím?

celé vlákno

A nebo doplnte nasledujici do souboru /etc/sysctl.conf (pokud ho mate ve Vasi distribuci):

vm.mmap_min_addr = 4096

Ash
Ash (neregistrovaný) ---.net.upc.cz
9. 11. 2009 20:59 Nový

Re: co s tím?

celé vlákno

…především to totiž není žádný soubor, ale virtuální filesystém jádra, takže hodnoty se po restartu neuchovávají. Buď to tam pište vždy po startu, nebo si překompilujte patchnutý kernel s již nastavenou hodnotou.

PM
PM (neregistrovaný) ---.vsb.cz
9. 11. 2009 15:44 Nový

Neni tahle "novinka" uz pekne stara?

celé vlákno

Neni tohle nahodou ta dira, ktera je i s exploitem znama z poloviny srpna (http://blog.cr0.org/…-due-to.html) a byla jiz v te dobe diskutovana, tusim i tady na rootu?

Reseni tehdy pokud vim spocivalo v nastaveni vm.mmap_min_addr = 4096 coz by odpovidalo popsane chybe. Nebo se jedna o neco noveho se stejnym resenim?

Jirka P
Jirka P (neregistrovaný) ---.172.broadband13.iol.cz
9. 11. 2009 16:05 Nový

Re: Neni tahle "novinka" uz pekne stara?

celé vlákno

Ne, je to jiná chyba (obávám se, že dereferencí NULL bude v jádře víc).

Jinak „řešení“ s vm.mmap_min_addr = 4096 je spíš workaround.

merlyn
merlyn (neregistrovaný) ---.range81-152.btcentralplus.com
9. 11. 2009 16:07 Nový

v OpenBSD uz davno opraveny

celé vlákno

Tento problem x86 architektury je v OpenBSD uz davno opravenej…

_xxx
_xxx (neregistrovaný) 212.63.206.---
9. 11. 2009 16:32 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

problem x86 architektury? co je tam specificke pre x86?

Martens Lox aura:98
9. 11. 2009 20:52 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

IMHO mají jiné architektury lépe vyřešenou ochranu paměti, takže není potřeba zbytečně všem aplikacím mapovat kusy jádra do paměti – včetně nulové stránky.

Jirka P
Jirka P (neregistrovaný) ---.172.broadband13.iol.cz
10. 11. 2009 0:22 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

Ale tohle je nedorozumění – nulová stránka v žádném případě není součástí jádra. Dále, jádro se do paměťového prostoru aplikací mapuje i na jiných architekturách – ne proto, aby aplikace mohla přistupovat k jádru, ale naopak, aby jádro mohlo přistupovat k paměti aplikace. Ne, že by to nešlo jinak (i na 32bitu), viz např. 4G/4G patch, ale je to takový opruz, že se vám na to programátoři víte co… Například na MIPSu je rozdělení paměti dokonce zadrátované v architektuře.

Zabránit, aby jádro spouštělo kód z userspace, by šlo i na x86, ale zas to má svá ale.

Martens Lox aura:98
10. 11. 2009 6:43 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

No, to, co jsem řekl určitě není úplně přesné, nejsem expert, proto je tam to IMHO. Zkrátka některé jiné architektury jinak mapují paměť a tak k této chybě nemusí dojít.

qaaz
qaaz (neregistrovaný) ---.cust.selfnet.cz
10. 11. 2009 3:31 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

Ano, 8 měsíců po vydání Linuxu 2.6.23 (2007/09) s podporou mmap_min_addr vyšlo OpenBSD 4.3 (2008/05) se zvýšenou hodnotou VM_MIN_ADDRESS. Naštěstí jsou oba systémy tak děravé, že šaškárny s NULLem nejsou vůbec potřeba. Ještě něco nám povíš?

q
q (neregistrovaný) ---.cust.selfnet.cz
10. 11. 2009 3:32 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

± 8 :)

x
x (neregistrovaný) ---.net.upc.cz
10. 11. 2009 8:07 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

Doporucuji napred se vzdelavat, testovat a pak odpovidat. Pak se nestane, ze ze sebe udelate osla ;-)

http://marc.info/?…

Linux mel toto jen jako option a ne jako opravu, takze default bylo nula. I kdyz to ted ma nastavane, tak staci stupidne napsany program (Wine), Pulseaudio (Ubuntu 8.04, 8.10 a kdovi kde jeste) a je to zpatky na nule a navic nektere distra to maji porad na nule. Takze to, ze Linus zacne tvrdit, ze ma nejakou opravu a pritom staci nainstalovat nejaky program aby se to znova zmenilo zpatky na nulu nepovazuji lide co tomu rozumi za opravu ;-) Oprava je neco takoveho, ze uz se s predchozim problemem nesetkate, coz neni v pripade Linuxu pravda. Navic ti co tu chybu zkoumali zjistili, ze RedHat (Fedora,…) se sice tvari jako ze tu volby ma zapnutou, ale skutecnost je uplne jina ;-) OpenBSD zkoumalo skoro dva roky jak tu opravu udelat tak, aby to bylo pouzitelne, bezpecne a neovlivnilo to ostatni programy. Timhle se Linux nezabyval a tezko nekdy bude, protoze si nemuze dovolit to opravit poradne.

q
q (neregistrovaný) ---.cust.selfnet.cz
11. 11. 2009 3:03 Nový

Re: v OpenBSD uz davno opraveny

celé vlákno

> Doporucuji napred se vzdelavat, testovat a pak odpovidat.

Stalo se. Proto jsem napsal to, co jsem napsal a myslel jsem tím právě a jen to.

> Pak se nestane, ze ze sebe udelate osla ;-)

Tak jako vy dalším odstavcem.

s
s (neregistrovaný) 80.250.5.---
9. 11. 2009 16:41 Nový

Re: Bezpečnostní díra v jádře

celé vlákno

# cat /proc/sys/vm/­mmap_min_addr
cat: /proc/sys/vm/­mmap_min_addr: No such file or directory

tak nevim… ;-)

PM
PM (neregistrovaný) ---.karneval.cz
9. 11. 2009 17:21 Nový

Re: Bezpečnostní díra v jádře

celé vlákno

To je ta horsi varianta, pak se tenhle workaround neda pouzit, ale dira tam asi stale je exploitovatelna.

Jakub Šenk
9. 11. 2009 18:14 Nový

Můj výsledek

celé vlákno

[jakub@localhost Dokumenty]$ cat /proc/sys/vm/­mmap_min_addr
4096

Čili ok.

Mám Mandrivu 2010.0, jádro 2.6.31.5.

Hulka
Hulka (neregistrovaný) 94.138.100.---
9. 11. 2009 18:46 Nový

Vysledek na Debianu

celé vlákno

Výsledek na Debian 5.0 (Lenny) s vlastně sestavovaným jadrem:

hulka@Axson:~$ uname -srm
Linux 2.6.29.6 x86_64
hulka@Axson:~$ cat /proc/sys/vm/­mmap_min_addr
0
hulka@Axson:~$

Poslední dobou se chyby v linuxovém jádře objevují jak houby po dešti. Začínám být rozpačitý … je to dobře nebo špatně?

Peter Helcmanovsky aura:65
9. 11. 2009 22:19 Nový

Re: Vysledek na Debianu

celé vlákno

Otazka zni jestli se objevuji, nebo jsou tam pridavane.
Jestli je to stara chyba, ktera se objevi, tak je to myslim dobre, i kdyz ty updaty kernelu jsou docela otravne.
Jestli tam pridavaji nove a nove, tak je to spatne. :) Alespon pro mne, vzhledem k tomu ze aktualne umi kernel vse co potrebuji, takze mne osobne dalsi vyvoj nechybi. :P

byczech
10. 11. 2009 22:04 Nový

Re: Vysledek na Debianu

celé vlákno

Také Debian 5.0, také vlastně sestavované jádro:

$ uname -srm
Linux 2.6.31.5–2-byczech x86_64

$ cat /proc/sys/vm/­mmap_min_addr
4096

;-)

miso
miso (neregistrovaný) 217.75.87.---
9. 11. 2009 19:52 Nový

CentOS release 5.4 (Final)

celé vlákno

# cat /proc/sys/vm/­mmap_min_addr
65536

Lukas
Lukas (neregistrovaný) 66.230.230.---
9. 11. 2009 21:26 Nový

Re: Bezpečnostní díra v jádře

celé vlákno

To uz je tak trosku dost stara zpravicka ne ? Exploit na tohle uz jsem si prohlizel minuly tyden.

ano, mam
ano, mam (neregistrovaný) ---.bluetone.cz
10. 11. 2009 0:39 Nový

Toto není chyba v jádře

celé vlákno

Jde jen o politováníhodné opomenutí několika package mainteinerů. Je to o tom, že když člověk rozbalí zdrojáky nového kernelu, dělá make oldconfig a ono se ho to ptá na něco, o čem nemá ani páru, tak by neměl odentrovat defaultní 0, ale třísknout do otazníku a přečíst si, že:

CONFIG_DEFAUL­T_MMAP_MIN_AD­DR:

This is the portion of low virtual memory which should be protected
from userspace allocation. Keeping a user from writing to low pages
can help reduce the impact of kernel NULL pointer bugs.

For most ia64, ppc64 and x86 users with lots of address space
a value of 65536 is reasonable and should cause no problems.
On arm and other archs it should not be higher than 32768.
Programs which use vm86 functionality or have some need to map
this low address space will need CAP_SYS_RAWIO or disable this
protection by setting the value to 0.

This value can be changed after boot using the
/proc/sys/vm/­mmap_min_addr tunable.

Každý normální člověk, tam po přečtení tohodle přece na ia64/ppc64/x86 dá buď 65536 nebo číslo, které mu z nějakého důvodu příjde ještě lepší.

hawran diskuse aura:61
10. 11. 2009 11:47 Nový

Re: Toto není chyba v jádře

celé vlákno

42?⠀

ps
ps (neregistrovaný) ---.182.broadband11.iol.cz
10. 11. 2009 1:17 Nový

zdroj informaci

celé vlákno

docela by me zajimalo odkud se vzala ta informace o /proc/sys/vm/­mmap_min_addr na tom linkovanem blogu.

sedim tady na dosud nepatchnutem gentoo-cku s 2.6.30-r6 a ze zabavy jsem zkusil stahnout prvni exploit pro CVE-2009–3547 na ktery jsem na webu narazil a nestih jsem se divit:

$ cat /proc/sys/vm/­mmap_min_addr
4096
$ whoami
domuize
$ gcc ImpelDown-2.6.31only.c -o imp
$ ./imp
$ whoami
root

je to prosim nekdo schopny reprodukovat?
pavel

ventYl
ventYl (neregistrovaný) ---.chello.sk
11. 11. 2009 13:20 Nový

Re: zdroj informaci

celé vlákno

negativne, na slacku 13 nejde spustit

x
x (neregistrovaný) ---.net.upc.cz
10. 11. 2009 8:13 Nový

Myslim, ze lide pochopi vice naslednych souvislosti z tohoto linku

celé vlákno
Miroslav Prýmek aura:58
10. 11. 2009 14:20 Nový

Re: Myslim, ze lide pochopi vice naslednych souvislosti z tohoto linku

celé vlákno

Jak to souvisí se zprávičkou?

Zasílat nově přidané příspěvky e-mailem        

Přehled názorů

FC8 - OK
Izak 9. 11. 2009 15:10
└ 
Re: FC8 - OK
Solitary 9. 11. 2009 18:17
jak jsem na tom já .)
Tomáš Nesrovnal 9. 11. 2009 15:22
Archlinux
mikie 9. 11. 2009 15:22
└ 
Re: Archlinux
Jirka 9. 11. 2009 15:38
oprava
linuxnew 9. 11. 2009 15:27
└ 
Re: oprava
Jirka P 9. 11. 2009 15:42
 
└ 
Re: oprava
Izak 9. 11. 2009 16:29
openSUSE Factory - OK
Petr Uzel 9. 11. 2009 15:30
Re: Bezpečnostní díra v jádře
Peter Fodrek 9. 11. 2009 15:32
také pomůže instalace balíčku 'gramatika_CZ_3_trid a'
poohDA 9. 11. 2009 15:34
└ 
Re: také pomůže instalace balíčku 'gramatika_CZ_3_trid a'
Adam Štrauch 9. 11. 2009 16:13
co s tím?
Daniel Housar 9. 11. 2009 15:40
├ 
Re: co s tím?
Jirka P 9. 11. 2009 15:54
└ 
Re: co s tím?
Daniel Housar 9. 11. 2009 19:54
 
├ 
Re: co s tím?
Daniel Housar 9. 11. 2009 20:40
 
│
└ 
Re: co s tím?
PM 9. 11. 2009 22:08
 
└ 
Re: co s tím?
Ash 9. 11. 2009 20:59
Neni tahle "novinka" uz pekne stara?
PM 9. 11. 2009 15:44
└ 
Re: Neni tahle "novinka" uz pekne stara?
Jirka P 9. 11. 2009 16:05
v OpenBSD uz davno opraveny
merlyn 9. 11. 2009 16:07
├ 
Re: v OpenBSD uz davno opraveny
_xxx 9. 11. 2009 16:32
│
└ 
Re: v OpenBSD uz davno opraveny
Martens Lox 9. 11. 2009 20:52
│
 
└ 
Re: v OpenBSD uz davno opraveny
Jirka P 10. 11. 2009 00:22
│
 
 
└ 
Re: v OpenBSD uz davno opraveny
Martens Lox 10. 11. 2009 06:43
└ 
Re: v OpenBSD uz davno opraveny
qaaz 10. 11. 2009 03:31
 
├ 
Re: v OpenBSD uz davno opraveny
q 10. 11. 2009 03:32
 
└ 
Re: v OpenBSD uz davno opraveny
x 10. 11. 2009 08:07
 
 
└ 
Re: v OpenBSD uz davno opraveny
q 11. 11. 2009 03:03
Re: Bezpečnostní díra v jádře
s 9. 11. 2009 16:41
└ 
Re: Bezpečnostní díra v jádře
PM 9. 11. 2009 17:21
Můj výsledek
Jakub Šenk 9. 11. 2009 18:14
Vysledek na Debianu
Hulka 9. 11. 2009 18:46
├ 
Re: Vysledek na Debianu
Peter Helcmanovsky 9. 11. 2009 22:19
└ 
Re: Vysledek na Debianu
byczech 10. 11. 2009 22:04
CentOS release 5.4 (Final)
miso 9. 11. 2009 19:52
Re: Bezpečnostní díra v jádře
Lukas 9. 11. 2009 21:26
Toto není chyba v jádře
ano, mam 10. 11. 2009 00:39
└ 
Re: Toto není chyba v jádře
hawran diskuse 10. 11. 2009 11:47
zdroj informaci
ps 10. 11. 2009 01:17
└ 
Re: zdroj informaci
ventYl 11. 11. 2009 13:20
Myslim, ze lide pochopi vice naslednych souvislosti z tohoto linku
x 10. 11. 2009 08:13
└ 
Re: Myslim, ze lide pochopi vice naslednych souvislosti z tohoto linku
Miroslav Prýmek 10. 11. 2009 14:20