Go Darwin 构建代码执行漏洞CVE-2025-22867
Go(又称Golang)是一种开源的编程语言,由Google开发,于2009年首次公开发布,旨在提供简洁、高效、可靠的软件开发解决方案。
Golang是一种静态强类型、编译型语言,具有强表达能力,得益于其并发机制,用它编写的程序可非常有效地利用多核与联网的计算机。
一、基本情况
Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可媲美C或C++代码的速度,且更加安全、支持并行进程。
Go 语言具有垃圾回收、内存安全和强大的并发支持(goroutines),其编译的程序广泛应用于服务器端开发、网络编程和云计算等领域。
Go 代码编译成机器码不仅非常迅速,还具有方便的垃圾收集机制和强大的运行时反射机制,因此特别适合需要高性能和可扩展性的应用。
栋科技漏洞库关注到Go语言官方关于CVE-2025-22867漏洞的公告,该漏洞影响存在于Darwin(macOS)平台中,漏洞CVSS评分为7.5。
二、漏洞分析
CVE-2025-22867漏洞影响了Go 1.24rc2版本,存在于Darwin(macOS)平台上,具体而言,这一漏洞存在于Darwin端的Go构建过程中。
由于“#cgo ldFLAGS”指令中使用@executable_path、@loader_path或@rpath特殊值,构建包含CGO的Go模块会在使用Apple版本的LD。
如此就可能触发任意代码执行,当然需要说明的是,漏洞出现在CGO模块与Apple版本的ld(链接器)配合使用时,只影响了go1.24rc2。
这一漏洞的存在,意味着攻击者可以通过精心构造的Go模块触发这一漏洞,然后就在构建过程中执行恶意代码,从而就会危及系统安全。
三、影响范围
Go 1.24rc2
四、修复建议
Go >= 1.24rc3 或更高版本
五、参考链接