Postfix sebezhetőség(ek)

Címkék

A népszerű Postfix MTA-val kapcsolatban adott ki biztonsági figyelmeztetőt ma a SUSE, és Wietse Venema vezető fejlesztő. A figyelmeztető(k) szerint a Postfix a beállításától függően újabb Linux, IRIX és Solaris rendszereken sebezhető lehet. A hibákat a SUSE Security-Team fedezte fel kódauditálás közben.

Egyes rendszereken a korlátozott jogokkal rendelkező támadó tetszőleges parancsokat futtathat a "root" nevében és hozzáférhet más felhasználók mailbox filejaihoz.

Venema szerint az idők folyamán a Linux, IRIX és a Solaris rendszerek filerendszer-viselkedése megváltoztott, és ebből kifolyólag a Postfix velük kapcsolatos feltételezései közül az egyik már nem állja meg a helyét. A Postfix nem érintett olyan rendszereken - például "*BSD, AIX, MacOS, HP-UX, és nagyon régi Sun/Linux rendszerek" -, amelyek szabványos filerendszer-viselkedést tudnak felmutatni.

A SUSE figyelmeztetője itt, Venema levele pedig itt olvasható.

Hozzászólások

Mi a helyzet azzal, ha Mailbox-ot hasznalok, de az a $HOME/-ban van, es nem a spool (/var/mail) directory-ban?

ASK Me No Questions, I'll Tell You No Lies

Hm, akkor ma ezért frissült a postfix :)

Andi, really. Take it from me. If I tell you something, I'm usually right.

"In some UNIX systems, the link(symlink, newpath) operation has changed over time: instead of recursively following the symlink and creating a hardlink to the file thus found, it creates a hardlink to the symlink itself. This behavior disagrees with, for example, the POSIX.1-2001 and X/Open XPG4v2 standards, and is the default on current Solaris, IRIX and Linux systems. On systems with this non-standard behavior, Postfix may be vulnerable depending on how it is configured."

IEEE Std 1003.1-2001: http://www.opengroup.org/onlinepubs/009695399/functions/link.html

A Postfix nem érintett olyan rendszereken - például "*BSD, AIX, MacOS, HP-UX, és nagyon régi Sun/Linux rendszerek" -, amelyek szabványos filerendszer-viselkedést tudnak felmutatni.

:-D

Ave, Saabi.

Mindenesetre megnyugtató, hogy alapvetően nem a Postfix a sz*r. :)

Pont a nemrégi hackathon-riportban hivatkoznak rá az OpenSSH-val kapcsolatban, hogy ez az egyik olyan szoftver, ami hasonlóan jó security-előélettel rendelkezik.

--
Ruby takes the elegance and simplicity of Perl, and mixes it with the library support of Lisp.

Alapvetően a Postfix fejlesztőjének kellene lekövetnie ezeket a változásokat a szoftverében. Vagy ha erre nem képes elegendő figyelmet fordítani, akkor dobnia a támogatott platformok közül azokat, amelyekkel nem bír. A változások - ha jól értem - nem ma következtek be, ráadásul benyújtották őket szabványként való elfogadásra.

--
trey @ gépház

De ki fejleszt ezekre a platformokra? Ha valaki fejleszt egy platformra, az ne ősrégi feltételezésekre építgessen, hanem legyen képben a változásokkal. Mely rendszereken érintett?

Linux kernel >= 2.0

A 2.0-s kernel kiadásának időpontja 1996. szeptember 06.

--
trey @ gépház

Úgy tűnik, hogy a GNU ln tisztában van a változással, de azzal is, hogy ez nem szabványos. Megcsináltam a leírt tesztet, igaz, hirtelen csak egy 2.4.18-as kernelű gép volt kéznél:

$ touch src
$ ln -s src dst1
$ ln dst1 dst2
ln: `dst1': warning: making a hard link to a symbolic link is not portable

--
Ruby takes the elegance and simplicity of Perl, and mixes it with the library support of Lisp.

Gondolom az alderaan a laptopod, Ubuntuval, ugye? Etch nekem valóban ugyanígy tesz, illetve most megnéztem egy RHEL5.1-en, az is. Mindkettő GNU coreutils 5.97. A "warningos" ln még egy ősi Redhat 7.1, GNU fileutils 4.1.

Úgy tűnik, hogy a GNU naprakészebben követi a Linux baromságait. :))

--
Ruby takes the elegance and simplicity of Perl, and mixes it with the library support of Lisp.


# uname -a
HP-UX B2000 B.11.11 U 9000/785 2010063359 unlimited-user license
#  touch src
# ln -s src dst1
# ln dst1 dst2
# ls -l src dst1 dst2
lrwxrwxrwx   1 root       sys              3 Aug 18 14:18 dst1 -> src
-rw-rw-rw-   2 root       sys              0 Aug 18 14:18 dst2
-rw-rw-rw-   2 root       sys              0 Aug 18 14:18 src
$ uname -a
AIX f50 1 5 004082BA4C00
$ touch src
$ ln -s src dst1
$ ln dst1 dst2
$ ls -l src dst1 dst2
lrwxrwxrwx   1 turul    staff             3 Aug 18 13:43 dst1 -> src
-rw-r--r--   2 turul    staff             0 Aug 18 13:43 dst2
-rw-r--r--   2 turul    staff             0 Aug 18 13:43 src
$ 

Linux 2.6.27-rc3:


turul@gep /tmp $ touch src
turul@gep /tmp $ ln -s src dst1
turul@gep /tmp $ ln dst1 dst2
turul@gep /tmp $ ls -l src dst1 dst2
lrwxrwxrwx 2 turul users 3 Aug 18 14:19 dst1 -> src
lrwxrwxrwx 2 turul users 3 Aug 18 14:19 dst2 -> src
-rw-r--r-- 1 turul users 0 Aug 18 14:19 src

$ uname -a
SunOS unknown 5.11 snv_79a sun4u sparc SUNW,Ultra-60
$ touch src
$ ln -s src dst1
$ ln dst1 dst2
$ ls -l src dst1 dst2
lrwxrwxrwx   2 turul    other          3 Aug 18 14:22 dst1 -> src
lrwxrwxrwx   2 turul    other          3 Aug 18 14:22 dst2 -> src
-rw-r--r--   1 turul    other          0 Aug 18 14:22 src

gep# touch src
gep# ln -s src dst1
gep# ln dst1 dst2
gep# ls -l src dst1 dst2
lrwxr-xr-x  1 root  wheel  3 Aug 18 15:12 dst1 -> src
-rw-r--r--  2 root  wheel  0 Aug 18 15:12 dst2
-rw-r--r--  2 root  wheel  0 Aug 18 15:12 src
gep# uname
FreeBSD

Amit nem lehet megirni assemblyben, azt nem lehet megirni.
2.6.27-rc3-00171-gb635ace-dirty

A kérdés, hogy hol van az megírva, hogy egy OS-t 100%-ban (sokszor obscure) szabványok mentén kell fejleszteni. Ezek szerint sem a Sun-nál, sem az SGI-nél sem a közösségben nincs ilyen házirend. Én továbbra is azt mondom, hogy a fejlesztőnek kell alkalmazkodnia az OS-hez, nem fordítva. Persze, tudom, hogy a kódbetyároknak ez nem tetszik, mert naponta hallom fejlesztőket ócsárolni, hogy a nem a programjuk a rossz, rajtuk kívül mindenki hülye, az OS szar, a hardver szar, de ezek rólam már leperegnek :)

--
trey @ gépház

>> Mi a kérdés?

Az, hogy mit ünnepelnek az USÁ-ban január 13-án, az UK-ban szeptember 5-én, az EU-ban július 30-án, illetve a Távol-Keleten október 22-én?

A szabványosítási világnapot. :)

--
Ruby takes the elegance and simplicity of Perl, and mixes it with the library support of Lisp.

"During a source code audit the SuSE Security-Team discovered a local privilege escalation bug"

manyeyeball úr megtalálta

--
trey @ gépház