1
Sayuri 266 天前
我感觉这里并没有引入恶意的什么代码。
只是因为这个人做的事情让大家失去信任了。 |
5
daveh 266 天前 3
@Sayuri GenericT #1 #4
safe_fprintf 改 fprintf 确实很可疑,真没这个必要改,对代码功能来讲真没啥鸟用。 但是正是这种改动,让人看不到攻击者的真实意图。 理论上讲这个改动其实是有问题的,这要从这次 xz/sshd 漏洞利用的原理上讲,主要这个 IFUNC 机制,感兴趣上网找找理解一下。 简单讲,safe_fprintf 并不是什么标准库或三方库的函数,可能是自己写的,编译优化、符号隐藏、剥离调试信息、strip 等等,都会让程序运行时,根本看不到什么 safe_fprintf ,IFUNC 也无法替换它;而 fprintf 不同,它是标准库函数,能被 IFUNC 替换掉。 攻击者可能不想让用户看到一些莫名其妙或不相干的错误输出,他就可以通过 IFUNC 机制截获 fprintf ,修改输出内容,从而达到隐藏自己的目的。 |
6
seers 266 天前 via iPhone
换成 std 库的符号就可以 plt hook 了
|
7
est 266 天前
所以 IFUNC 这玩意是干嘛的。?
|
8
gsfish 266 天前 4
苦心经营多年,在最后关头给人发现了,泪目
|
12
daveh 265 天前 via iPhone
@GenericT #11 这哪一样啊?虽然都是 fprintf ,但是传参可能不一样,写 hook 最好要原始输入参数,变化后 hook 不好写。
|
14
luozic 265 天前
gcc 编译器下面才可用,使用的是 gcc 的一个 feature ?
|
15
jackleeforce3615 264 天前
凡是此人的 PR/MR ,都得拉出来讨论或者干脆回滚,太危险了
|