libarchive 也存在一些由 Jia Tan 提交的可疑代码

238 天前
 yyzh
https://github.com/libarchive/libarchive/pull/1609
请各位要留意了.
4817 次点击
所在节点    信息安全
15 条回复
Sayuri
238 天前
我感觉这里并没有引入恶意的什么代码。

只是因为这个人做的事情让大家失去信任了。
xiaozecn
238 天前
@Sayuri 可能尚未来得及引入🤣
lisxour
238 天前
@Sayuri 不对吧,虽然我不懂这个项目和 c ,但是他直接将 safe_fprintf 换成 fprintf ,确定没问题?
GenericT
238 天前
@lisxour strerror 给的东西是 libc 传过来的,本身就是安全的
daveh
237 天前
@Sayuri GenericT #1 #4
safe_fprintf 改 fprintf 确实很可疑,真没这个必要改,对代码功能来讲真没啥鸟用。

但是正是这种改动,让人看不到攻击者的真实意图。
理论上讲这个改动其实是有问题的,这要从这次 xz/sshd 漏洞利用的原理上讲,主要这个 IFUNC 机制,感兴趣上网找找理解一下。
简单讲,safe_fprintf 并不是什么标准库或三方库的函数,可能是自己写的,编译优化、符号隐藏、剥离调试信息、strip 等等,都会让程序运行时,根本看不到什么 safe_fprintf ,IFUNC 也无法替换它;而 fprintf 不同,它是标准库函数,能被 IFUNC 替换掉。
攻击者可能不想让用户看到一些莫名其妙或不相干的错误输出,他就可以通过 IFUNC 机制截获 fprintf ,修改输出内容,从而达到隐藏自己的目的。
seers
237 天前
换成 std 库的符号就可以 plt hook 了
est
237 天前
所以 IFUNC 这玩意是干嘛的。?
gsfish
237 天前
苦心经营多年,在最后关头给人发现了,泪目
Aloento
237 天前
@est #7 间接函数,创建对一个既有函数的多个实现,在运行时来选择具体的某个实现
est
237 天前
@Aloento 听上去。。很容易出问题的样子。。。
GenericT
237 天前
@daveh 你在说啥呢,这是个自己写的函数,你去看下实现啊,内部还是调 fprintf 的,你说的这些完全不成立
daveh
237 天前
@GenericT #11 这哪一样啊?虽然都是 fprintf ,但是传参可能不一样,写 hook 最好要原始输入参数,变化后 hook 不好写。
GenericT
237 天前
@daveh 他都能任意代码执行了,他还需要管啥参数吗
luozic
236 天前
gcc 编译器下面才可用,使用的是 gcc 的一个 feature ?
jackleeforce3615
236 天前
凡是此人的 PR/MR ,都得拉出来讨论或者干脆回滚,太危险了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1028331

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX