« Cooperativa Solis publicará estudos de casos sobre adoção do software livre | Main | Pesquisa: Para quais projetos livres a sua distribuição favorita contribui diretamente? »

sexta-feira, 7 de janeiro de 2005

Descoberta falha de segurança no kernel do Linux

Prepare-se para os upgrades, pois a falha descoberta na função uselib() pode permitir obtenção de privilégios de administrador para usuários com acesso à shell do sistema. O a... (Ler na íntegra)

Publicado por brain às 21:55

Comentários dos leitores

(Termos de Uso)

» Comentário de Adalberto () em 07/01 22:28

Alguem poderia me corrigir, mas pelo post de atualização da referida falha, há uma informação de que para o kernel de serie 2.4 já existia uma correção no release rc1 feito pelo Marcelo Tossati, isso estaria correto, e se nao, como proceder a atualizaçao para esta serie.....agradeço...

» Comentário de Mandark () em 08/01 00:28

Estranho, testei o código que o cara propões e não deu certo.

» Comentário de Matheus Villela () em 08/01 01:15

Aqui o código nem compila :(

$ gcc root_exploit.c
root_exploit.c: In function `scan_mm_start':
root_exploit.c:425: error: storage size of `l' isn't known
root_exploit.c:425: error: storage size of `l' isn't known
root_exploit.c: In function `check_vma_flags':
root_exploit.c:545: warning: deprecated use of label at end of compound statement

» Comentário de flaviothunder () em 08/01 03:11

Matheus,
Depois de fazer algumas escavações no Google consegui fazer o programa compilar, experimente trocar o modify_ldt_ldt_s na linha 425 por user_desc caso voce tenha os fontes do kernel 2.6.9, rodando neste kernel o processamento sobe lá em cima (no meu modesto K6II 500MHz) mas não parece ocorrer nada mais que isso (em 1 minuto com o programa rodando), creio que seja necessario ter o fonte do kernel que ocorre o problema (2.4.seilaoque), assim como a mesma versão rodando.

Assim acredito que a série 2.6 está livre, mas quem sou eu pra afirmar uma coisa destas não é ?

Depois vou testar no 2.4.18 do Debian pra ver o que acontece.

Sucesso

» Comentário de Mandark () em 08/01 12:20

Matheus,

Use o comando abaixo para compilar:

gcc -O2 -fomit-frame-pointer elflbl.c -o elflbl

» Comentário de Douglas Augusto () em 08/01 13:28

> Assim acredito que a série 2.6 está livre, mas quem sou eu pra afirmar uma coisa destas não é ?

Afeta a série 2.6 também, inclusive a versão 2.6.10, segundo o link apontado pela notícia.

» Comentário de linfluX () em 08/01 16:17

Usei o comando abaixo para compilar:

gcc -O2 -fomit-frame-pointer bug.c -o elflbl

mas deu erro

gcc -O2 -fomit-frame-pointer bug.c -o elflbl
bug.c: In function `scan_mm_start':
bug.c:426: warning: useless keyword or type name in empty declaration
bug.c:433: error: `l' undeclared (first use in this function)
bug.c:433: error: (Each undeclared identifier is reported only once
bug.c:433: error: for each function it appears in.)
bug.c: In function `check_vma_flags':
bug.c:545: warning: deprecated use of label at end of compound statement

» Comentário de flaviothunder () em 08/01 21:45

A série 2.6 deve estar com problemas sim, eu baixei o fonte do kernel 2.6.9 via apt-get há alguns dias e hoje (08/01) veio atualização dele, vou dar uma olhada no changelog...

» Comentário de anms () em 09/01 09:36

Compilou certinho aqui mas...

tds@matrix:/tmp$ ./elflbl

[+] SLAB cleanup
child 1 VMAs 61
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xcf400000 - 0xde635000
[-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied)
Killed
tds@matrix:/tmp$ uname -a
Linux matrix 2.4.26 #6 Mon Jun 14 19:07:27 PDT 2004 i686 unknown unknown GNU/Linux

» Comentário de Fcpn () em 10/01 08:47

O meu deu a mesma coisa... nada de root...
to usando slack-current

» Comentário de marcelo () em 10/01 11:40

E' dificil fazer o exploit funcionar (e' um "race condition" que as vezes demora varias vezes para aperecer), mas o problema existe em ambos v2.4 e v2.6

» Comentário de Matheus Villela () em 10/01 21:39

flaviothunder, acho que era isso pois compilou, talvez funcione normalmente em outros da série 2.6.x, a estrutura deve ter virado "deprecated" recentemente :-/

Aqui uso 2.6.9-rc1-mm5

Porém... o "programa" tá dando segdefault, e mesmo compilando com -g3 e debugando ele não acha onde está o erro, provavelmente então deve estar no código asm, aí fica difícil :P, ou até mesmo meu kernel é imune :D

Mandark, flags de optimização não fazem algo com erro compilar ;), só flags como -ansi que fazem diferença no código em si.

Bom, se isso não funciona pra ninguém por aqui é um excelente sinal, quando vi sobre o problema fiquei pensando que durante muito tempo servidores rodando kérneis antigos iriam ser rootados por gente usando isso, mas como aparentemente não é uma tática muito eficaz talvez isso não ocorrerá muito :)

O formulário de comentários está desativado devido à mudança de sistema de gerenciamento de conteúdo.