Dav*_*nes 7 linux rpath shared-libraries ld suid
我正在使用python并启用了setcap CAP_NET_RAW.我的python脚本导入一个共享库,其RPATH中有$ ORIGIN.由于我的python现在是一个suid应用程序,因此不评估$ ORIGIN并且库未正确加载(这是由于glibc中发现的安全漏洞).有没有办法告诉链接器我的库路径是安全的并且还加载了库?
还有一些说明:
谢谢,戴夫
你尝试过须藤吗?
在开发过程中使用固定路径而不是 $ORIGIN,因为它们将在 setuid 程序上工作。不要更改您的主要构建过程,只需使用 patchelf 将 rpath 设置为您需要的即可。你可以制作一个 shell 脚本来执行以下操作:
ln=`readelf -d |grep RPATH`
IFS=:
set -- $ln
newrpath=`echo $2 |sed 's/\$ORIGIN/\/devel\/myprog\/lib/'`
patchelf --set-rpath newrpath myprogram
Run Code Online (Sandbox Code Playgroud)
然后你的二进制文件将不再搜索 $ORIGIN/../lib 而是 /devel/myprog/lib/../lib
归档时间: |
|
查看次数: |
1179 次 |
最近记录: |