The OpenNET Project
 
Search (keywords):  SOFT ARTICLES TIPS & TRICKS SECURITY
LINKS NEWS MAN DOCUMENTATION


Linux and world-writable /tmp - workaround


<< Previous INDEX Search src Set bookmark Go to bookmark Next >>
Date: Fri, 10 Jul 1998 10:26:07 +0200
From: Michal Zalewski <lcamtuf@BOSS.STASZIC.WAW.PL>
To: BUGTRAQ@NETSPACE.ORG
Subject: Linux and world-writable /tmp - workaround

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--8323328-401275207-900058938=:535
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.LNX.3.96.980710102541.589C@lcamtuf>

Due to several problems with /tmp directory, which (in typical Linux) must
be kept for compatibility, but allows DoS attack, race conditions and
other problems (as described in my previous post), I've tried to write
something helpful.

Following Linux 2.0/2.1 kernel module is designed to fix problems with
world-writable /tmp. If you simply remove superfluous privledges from it,
many of your programs will fail to work properly, because '/tmp' is often
hard-coded as temporary file storage. RedTmp module can solve problem by
redirectin requests from '/tmp' to choosen user-owned directory. It's
location is obtained from environment (I think it gives more flexibility).

Module tries to redirect requests to directory pointed by TMPDIR variable.
If it isn't set, HOME + '/tmp' is used.

NOTES:

- Only requests to '/tmp', and only from unprivledged processes
  are redirected (and that's the goal). Root and suid programs
  are able to access /tmp directory as-is - there's no reason
  to redirect it, because directory is still root-writable.

- RedTmp won't protect /tmp or any other directory, it will simply
  redirect access. So please chmod your world-writable dirs.
  Usually chmod 755 `find / -perm -2 -type d -user root` is
  sufficient, but if you're paranoid, do it by hand.

- If both TMPDIR and HOME variables are not set, module will
  fail to redirect access (but at least 'HOME' should be set
  and exported automatically).

- Compilation: 'make'. Module should be launched for rc scripts - add
  'insmod /path/to/module/redtmp.o' to /etc/rc.d/rc.sysinit or rc.local.
  You can remove it anytime - 'rmmod redtmp'.

Intercepted system calls:  open, unlink, stat, link, symlink, chdir,
lstat, readlink, mknod, chmod, chown, utime, access, mkdir, rename, rmdir,
acct, execve.

Module is based on slightly modified and simplified AFHaRM module. You
can download it from http://rast.lodz.pdi.net/~lcamtuf/pliki/afhrm.zip.

PS. Code isn't beautiful nor perfect, feel free to report any problems...
It was written under Linux 2.0, but should work under 2.1 as well.

// zipped source code attached.
_______________________________________________________________________
Michal Zalewski [lcamtuf@boss.staszic.waw.pl] <= finger for pub PGP key
Iterowac jest rzecza ludzka, wykonywac rekursywnie - boska [P. Deutsch]
[echo "\$0&\$0">_;chmod +x _;./_] <=------=> [tel +48 (0) 22 813 25 86]

--8323328-401275207-900058938=:535
Content-Type: APPLICATION/ZIP; name="redtmp.zip"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.96.980710102607.589D@lcamtuf>
Content-Description: RedTmp module v0.1

UEsDBBQAAgAIAECz0CRpSnOCoRoAAD5GAAAHABAAQ09QWUlOR1VYDACSzKU1
2NSGNQAAAACdXF1z28ixfQ7q/ogpvViqormxc7PJrlOpoiXaZiJLCknZ0VtA
cigiBgFeDCCZ//6e0z0DDEjK2Xtd2dgigZ6env44/TH63e8M/ny8uTcfxzfj
6eja3N2/v55cGvw3vpmNk9/JA/jzxVYuKwvzdmD+1hTWvPnllzdJYi7L3b7K
Hje1Ob+8wId//mUgX5kPlbVmVq7r57Sy5kPZFKu0BoGBmRTLYWJe/PPzn/5o
PqfOmdGTHZjLdLuostUj/vl5ZH7/9s0fsMD9bJSY8ZOt9iU4yZzZ2Wqb1bVd
mbo0S7Bk0mJlVpmrq2zR1Nbg2QWW3/LLzLrElGtTb/Bmni1t4axZlctma4t6
YPC8WW7S4jErHk1Wk3xR1ibN8/LZroYJRCIyuasseMsthGDmGxsoObMuK7Mt
XW1c2D3/W1mXPRbKYZ1+w4fP6d7sy6ZK1hDVqtzyG7eR58G8sIDN1UNj3u/B
d1FXqQN/NdaSA7OFrdLc3DULLJ1c+42A3ayobbHSpR6btErxs5WlzI+W4ndJ
4Pn1azyyJZ+uwWNctN0OluCzslGIBTw60zjox5CSyFzSZ80E1tLdLofwubjI
R87A9jUl6TTllYskWMhu0mJvSrxTmV1VPlbp1jxvSlJu6k1ZOUhpCz3Ak0nj
9PjA0vms3Fr/2kta2dvcsoS6QHyLfRKEfZ0tqrTamxd2lhWutulqeGHMQ9mY
ZVrIZvdGmRHRe44dTrAsh9SarxtbmGcIdmfTb5SGSDVwMuBX5Kiya1tV3A4k
4A9wQJ1MdhXWxw5vQf40Z+5I9+IzTWtqRbJJn/SEI+2IbEdN5og/c+51p3oU
VUjEnqAGT1jaZGuSNs+Z21wM2qWwl6XNnkikqZYkvcLJVCKwRwtbq5PwIpQW
P0av8hmvqT1txOtQPgMel8oliRSmsM/Kb5D7O1WiQO5bUT63dFclaTpShpyd
nM685Ku1XdZqOuLlnJxKYSNZVpaSWlKLnJKHMBbZKoGy0j1RmLYQU/eLKCUy
TpV23/SrkqdS0XAr2aA+NUzm+k5vFZi0y9NaiC9tVafYMJ7Y4ctskeVZnXk/
RMoq0eTkicaSHJAjL/5tucrWVF8RxQd8Yb+n212Oh/wTJ8m5ZrkxaRA5ZLWx
NLsEP9WZ7Fh8hllbEJJ1GviBx8zrH7QjA6kCwqFf6aQgcqUZGerqUK1M3j1Q
Z7yyFwMbtKoWqRe+TSLNA50RVKLlw22gEnhmG5QBUYU+SKiqwuBfWZWEo6EN
21NaAr2vN6Z+xpnWdud+NedvLiQuaajsSx1qmZy/vYD8YOdeTaLI9LzJIFTK
yMmXuX2EmUvEcxKRfcgbxCcMmj9JGJJjjNcTrke5g4R4FjbliYn7hL/1WyFV
Ggs2pAov1hgU3itcIgK3IQo3VFxX4zXXHoW606LE+xWj0F6WlN31gg0OYrI+
ijHCfCZ+GJ9vLVexudNgsANCwFfEE8828d7CxRoEdv2RgZnnoByiQCGmc8US
R5IVaT7AGrolBhkIAqF9K7G0KlfNUtmQIMLThXaSAFxzzqPnKUS0Eh+PXuGB
XVNLhFF1+cCv8/1AFondE1mqN4AUCN1YC+GesqwRQmT3Pjju+HXNOAu9o28V
D/JUZitZf0XvWOmOEcCCOjAywjhTFXobObmJrFhlT9mqIVOmXIgj0UVaPAOL
L4yFbi7F2iQObToy+BthyNaIjkPvNKETVBccsyiPSHybrghmzDK3qecQIvAb
UvNbtBhqparpVeuVhxv08viYcm+fSwWYDQMG2/H8W8uV+FRih+o1SZOGgh0M
OvfldT1RbVsqGliXRHvD5L88/v0BQMa38/H088yMbq7M5e3N1WQ+ub2ZmQ+3
U/x49zC5+TgwV5PZfDp5f8+v5MHPt1eTD5PLET8g878fCnI6BZW8OoqwsQPF
Mc9l9c17BiJDHJtLUoqGsXeXp15fqRSd29mUOYOLS/ce2m6BQCH1zm+skqaN
PyrDgJNPw4uhiv3sTvk7A3q2ENwgEczSsi9hIdoDuRe/B508k60sUrVmWTlQ
S7YWcc7YTLYcfUMapAtWsyecGPRLqCjz3Ybz9PlXtelMeMHOsaw+68Xm1blH
2ezKStRAwMQg8Qy0OQR3QP8eq4wLLreNzSv6Du5fTizJYZtN+kiRnX+CZ4Qj
WEPEg/YFLijgfZk3BO9comyo64C0/usiCSdjzuLVz4g8x3Tl3jLExaWrFUCB
mIkzZ4gdZzCUEdz7kwKE0suVwOolu+htUsAkgWeHkFU7vDq8UxcrqKypXSYm
jwgK6kFVUnrLdVI1xZHovVMOSMeuBh6xCTX4UbiBchu/kkRgvSwIt9eyIM9W
YoC40ayWiGiOFC0JK5/DDdodoVchWQk8FplbWOBzcVzY5wmOL4bJVwU4plWy
qiHcJi3HVULcaTe5Kq1GgjdDBTHp/rckrAGreTKvXIxjeLwxuCZszgqxkC2i
QAMgBuODm7cd/k0oml22bMrG5bo6fI74cuguPtnR0BFgsAnBCJ7J+KmkszTv
efwmlnmabSEVMB0i/zvzzdodTYIa4NFdoq+5ELGIf5ge9zyhZn7cfLpwtsAq
jGXYW0s64TMCIrv8MAICfdFBEWQrwbH5dZI0L3G6itu6p3FU7SlppiPg1eMY
uNrN3sE4cq/XaswhXdOVFODtPZXU48Ry5z0M99zCowh/Meh+D5l5AM2iOW87
zfH4TijqrqrTChM8pvdsiXo2PNFIXNwquy+64oGPpaqnMdAU1953hN7BmxOh
ZOY39yZJFyXLO0d6CdUA4N5aq0qiu3A2iuO/JlI8Si+6JGCZNk4ziBYzrrNc
w+cSshXBYo80b69yQsPRr4pNhxxT5K0+RykED7RituUVT58aKh+LIz5ENymA
lmwkLwjHW5ZPbeHTSeYZwVm+FQBW1W1Yl8+chjru68AF+oMVGvKewO5yzSSo
h6jgI1K/SkopBH1miBJrzKpVS4UK9BISCKFft7+8CNC9FX0I9AX0SnAlUO1K
azOSHbA8VaUMQ/AzfvNwtHCwUU6ooqSOypc4qYohNXhhWgRVT16PCApIzArP
EGtM1QqRtqK3kMQQ3GV08hUPBUCJCq36VBRlA+/CIqAPwmIUPY9nTnq8VAj4
D17Ofc6JaZG/DAICa/XDW4Hy0b5w0RUspLomFh/BetX4IG05LqFwaDA+jNo8
D/GL5Iwku6V5yuzzgU8UKh3COx9/X1pxV78ywPZCdu1svg41x3AG4E1IMNZJ
SG81QYWvVYKiJ/KBOrGeBwq7OUYI/9NklZZglOIBseEFkHuom8izWy0qSE3O
R5NWX2XNzjwkGU0yYgF8nyINNM76wosIiOmkvKJg6EXTHEhcYu1hQT5SVxag
JqVcQqNKEGKHO/iws7A+6hkXcB7vbSHjJ+ZhNS0htkE9WSIeMdEB61hSq+72
WSK0teyLKR04JKl3pO5gaRadm7p9ITlQOpduI6ngbXE9kmOqi9HUJHO9oJIc
BhVxrDHg9EFLaYSk0L8VvFDSl4AWgLtyiOZ5CgICGEYO8Z0lcX/0CY+28ssE
kNlItNByCD6Q5FO3VdnHtFohGMj54yXzzDCtxbE5XhxEbQJyKvX3unWYXk4S
jAiMovqfAFVXJ3HpCI9pdlexowEUIMxqIQDPvTM4pY0kDt1Skt4k9rutNP0N
hTOtDbGEkZ8UdpRAlRXgXM5qRkin3EkogD1PCqYWmXZztvR06eMjpRTI+pxH
90GpnCKUHGItcZDy4Q+QyAV/Ts1TmTcs6q+R9bq6rJBYeZ/e7U+xb+eFFlXw
fxF36jZFp5mlnIxyf/gxVD/cwiH3TCE1mAb48/aCMapc/Js1lVADx+ktm1r8
DRHZifibzILFvREe3hpBUS+BKDgDlsy8TWlJAxLo8NNoiZi8I1yB/ranwc9y
K7Gu0pqyBMItLAMI6jWDOZlUANUlIQNv88Fqo6LCD5Cgxpr+duSA/eEtQa3c
plUG/W9CYagrEjLoKBp7BxEOWkR2vLO0tSeB3APzlOaZkoPMcnjnWupvuq+9
TStp1HRphQAkcQj7gQfkHkEVbGdpAbrQhp4AI9/hChkCo5+tAtb2gov1dSBR
WGUvFA4lHsXow8PpnYMAPw3Av+0MXpa/7uT/cQbLl7QrKygC9RRRzir41Adm
OSCN/Qd9qBe2TIwi1bM0By+F+jMPY3zbVssDaykfFkSi9JRI247KHaGMwKDH
91v+Yqz1n41X9tsC1LTVOqblkEul5R0zaxYhOixU+oAuRC69Btm6cypaEVNe
pC2ox7FtIycfYjPOV2r7mRnkKR3RD5I0xExrRa41fV09kdV1ydCPOeILn2OR
hrlS1mUtyOzyxklmkjpXLrNQEIMJpFR8u86KTGutzLP88+qHq2ynHWUG7CTE
LzKX+TqZwB5WyPM8jYFDtyPs8hMO/olCJ7ZL3M7KidsAZgdH+4nNRVp8jBq+
HsdunjQH21JPC2rj186Ztmu50FOGjBaSgSQ8p4vOErbpvwUBbKHRgk7PdYfk
+BvU2OYKTRzd+IXfYYIYVWnS6vauBnSTIhMdb3//zJQg1aYQ3CI8t0slHran
3kKl0NyXHoL8+ggtRNQJsSILYLfG18lE0cFfAuqytB/IEHSc+la0aIOUqT2q
DW8ZwnW4ZnJ5QOBI+wLcFjAqxPBFIzjfJadgZc9LsklBfNw8biLfnvmOuRY5
tzskTdFQSUTkoFwUCYNdA2P+u8MM1CItBGm5BvmfFNEVv8aopYclEtVUaq/9
vmMhVxIoH+qDO4+gCruZLDBBK3Z1IhjnWdBg+eLyL69O/8m+kuqg9IrShmGg
9sGMUSTjQfb6nifYSlo7DAImhJamUOtctWYlwghtdjleRoiA0KKaYNt/C5ML
WdWN37SMienIMTG9oS8ODCAfZKML/1s3uXqWPEuRPArc+6MeXUjv4myTKrmr
D3Iwl7EoGZrTojp+3EKcbbt9gmJRcfYwH5nia9m238r1JT248BcOhvWg2h32
PnT2hhlvGrKySpp0m2yR1Vqqz9PntnvvE8Xj/SgdBJeSvenFXhtjUq/oAeyD
4v25LzC+WGS/0OIOG47LVmt0/dQXdXtnXAuAZZuaFccwZvR/aewpxy37yYEQ
D1IcP+rw81D7KHW2tR6g/Ajq/4cd94YaDgzIKz9T5GCNwaUloZHsv9FJETXi
fi0xavAHvmDd4otqtrPtC83QMELh3VOGyOArl+umkn5Vb+DE52BdUf2VaZNN
71y9AxC9hig20uIaJn1L8hMqipKQ2eL/lzynzgJ9Sylyx7KPg4zsT0MzWWtg
l3IKTLTtDDAIIGv/d7N6lFqegpQoO9WecwIkyohjw0Nrf56hf8B6jTnXbvM2
87OFvl8Nc22suxgkkRYKGBY5iiJQd879/As3pVwB+QkiQbocFu489UWI0xz1
g5nUHum3SxzYyEDbbWrLDBcsfnLdNjS+/K6OXPj5J74e1/RLj8Ydp3agXi7b
NjnM1GqzSBsYiCGPHld2Xj+J2zbRtJ7FWUr5PXrNh/6jQyT0Dor5gu35tv/x
ZFIaTrednimbXIGczoiaqtwjTdi/lpGCyLgjnBBWgfNT2FvKGE7ZNth8i2WF
sLDkiIaU7dufkEYKqsA+dIvieSSx8COfVAZwFcS7gJAInrUQFcc5eWxBZ8iO
esWg1ZaD5JB/wL5iuKjpc1SQwj83NieS1mSYk3SFGqUVlKehV0jQGJdNnsLT
ZtWy2Trx2urhFmneuXAbk48mURMtSoZ+SngoakscTK76AcpCVSiJl2UHddIr
ue2aSjzYiZobTqbx8Vl+UquPpk9cN1bBQj9Ude+rZ1KuC4N6vlanhYOs3vtu
UCLVbH3yXX/xTeozGu4u4jB0+fwkDTf9WHmKYQyzS7B7R6ygf9DWV5OMqk9P
oiF+p+MZQft3UpKnwIz5LOdoSzzfjeQkj5zrgFmr1/HLtKn4M1v4lfQgOd13
xJJdJUHbxXX5nESmEb0/LwsteDtxnDLXsoxythRgSV5654uoza5t98oQ1U+r
stADWCH6rGSyVEatjNuIzhAMSnjvFQtaXgN/nTPyTOr4STsv4d2gj4TqiDdl
JphwfmA1sZrKSBwZ5Sqs7suA07NPEhcQg31SA1jY42ilUdXVx3VHJhF/Hobm
2mGd4ic/9XrgsTIXjU+wfRCGQyUxqui0fHZKXem0f7HvOltxnq4+uoMjR7NE
9IqSerkeH8dpgHj0dLXSugOVAMf9aPn4biMd9N4Wo6EXxDXtxSXqiNutDHQ0
M637r/auA2g5pxAQsEUqkHSCUNfROL+AXTEkFtqcWqYaXSNfDJBfwoLZInHi
0CMWYefQylBg9O3HRbnanywn/zKUSZgXR9EpqTB9UdmnTLq3euQcan7Sixgu
8Wf/wki6YgCiWJoT/sb2ZtxbTEOMh4qJCJ/RuYN3t8sqGVsPZSZHw/Vv6PUI
cgjcydEFvLCyULFcXLwOHMkS7QSltjmgiDICKeDaE+NRsb7KeiOPEGfcYNP0
i+GJotkubNXNh4bcWKo5a8nWD549SiTUVUYDdT7SntF5c1CrChTOBl0WJyE7
zGh0xfOogNoH1GFILHQIA1NlFaYGekuFA+7G9KgOyQl1ONp719BQIexPieCg
SbZvZ1jKgPPDK8xNT3Nz6k6Gji79fhjAY5hBjaxDsMLR/InMwqn/jadQne/f
9Sz4AFSrpkmPmCZm+/Eh8TP0hO9dJu2hYRsF2n5k7Ob+g+QPlnvJXt/JFY5y
a2lkLpF40BYZXTvx7K9pMIiJ3KWGAcuDyq86Xjgy/limuVi32F71FNROYQFc
TqPjvHi/KwLIR+GGT+/ejFIqt2Wbs/Pmj842rOBgfBhpX3lUf5Lvu6tON7fm
62g6Hd3MH+T83wzN+/Hl6H42NvNPY3M3vf04HX02k1mYir0yH6bjsbn9YC4/
jaYfxwM+Nx3ziZgWZ2QjAnjqVn4e/3M+vpmbu/H082Q+B7X3D2Z0dwfio/fX
Y3M9+gppjv95Ob6bm6+fxjfJLcl/nYCf2XzEFyY35ut0Mp/cfBSCHMSdTj5+
mptPt9dX46lM6/6E1eVFczeazifjWQI+vkyu+ps6G83A9pn5Opl/ur2ft8xz
c6ObB/P3yc3VwIwnQmj8z7vpeIb9J6A9+QyOx/hycnN5fX8lg8DvQeHmdg45
YWfgc34rognPBupgBvSTz+Mp5HczH72fXE+wJCeHP0zmN1hC5otHyvnl/fUI
m7if3t3OxqzfUIQgAoFPJ7O/m9Es8YL9x/2oJQTpgsbn0c2lHNTBQXK75uH2
nlED+76+4gNJeICCGpur8Yfx5XzyBceLJ7HM7P7z2Mt7NhcBXV+bm/El+B1N
H8xsPP0yuaQckun4bjSB+DkjPZ2Syu2N+pa3Qx4etGT8hTpwf3PN3U7H/7jH
fk5oAmmMPkLbKMzo3JOvEyzOEzo8/IG8gi+6w3+AGt2az6MHHcx+8OoBNtvJ
7b5WQCk67Ry9v6UM3oOfibAFRigQHtHV6PPo43g2SFolkKX9MPnAzO7GlxP+
A99D9XDW1yoVWNE/7nmK+MATMSMcJ7dGPfRHRhukrt0EHcHah3Z53q19oH/U
i+vbGZUNi8xHRjjG3+/HfHo6voG8xJxGl5f3U5gWn+Ab4GZ2D2Ob3MihJNyv
WPNkehXsSeRsPowm1/fTIx3DyrcQIUmKrrUHEpRsdjEQHTCTD1jq8pM/PdOz
2gfzCUfxfozHRldfJvQ8uk4CW5hNvExuPQUvR3FsctcU+5PnTwzwc/Z/tONw
Tvb9VxZxGQdGkpNqnXUuKAAfPtDt3gDy+FjnqMc+Pq4QXvNyhxDtMVE3TRnd
cvOzej5kPsotEFcnyES0WNa4NgppgufzbiYOLClIZXrDREOhj067SyTK6qQf
ETQSttd2OJ7UK3FGF0LblnEoIoZ7caEwW9epbzx1AKkd6S3jlilRjCRELl1z
a+S4fXsbHpYpP+k08RvfaWF/sL0yqvdQdHIQMOHJ7n3nChDeebDWjRzLIA9J
CQ23kXKKwLvQ8xckf9aCgjOg+sIXr8yulDxIBnJknk822mjrQe44MrpDSH4U
8i+Up7wf5gYiAbwCZGOfSkkvkIGsDQJ/qiNFqWiBzIb/VWgdXqve70FfCDDy
C/D5q64quWl0iah32u/aG469M1YE3F0Q0ynK+vTI56nbxt10tuthx3Zi72Ww
1F2m0OvkYZHrriEmVM77k9IXxxh6eFoAcTvWp2IbTvbUXsoBeMGocJgDHRlB
UhMCPB1RCPLv2lsYvl0oJd5cpgbDWCfANkkcxmoI9zeE6pkVLUnaS0YvJHNy
VHKTl7mW81tncT3W6m6Yojcr8jJhPyIRtTI7Wb5jTgtN/xEMlvcP7/YPfuMV
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
AAAA
--8323328-401275207-900058938=:535--

<< Previous INDEX Search src Set bookmark Go to bookmark Next >>



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру