极光ios SDK引入了不安全的代码memcpy
在做安全漏洞扫描时,发现极光推送ios sdk中包含不安全的代码,建议修复。
不安全代码详情如下:
JCORETcpChannelController.parsePacketData:---------memcpy
JCOREMacAddressManager.getDeviceMacFromMDNS:---------
memcpy
JCORESm4Crypt.ecbEncrypt:withKey:---------memcpy
JCORESm4Crypt.ecbDecrypt:withKey:---------memcpy
JCORESm4Crypt.cbcEncrypt:withKey:iv:---------memcpy
JCORESm4Crypt.cbcDecrypt:withKey:iv:---------memcpy
JCORETcpSocket.doRead---------memcpy
以上类的对应方法中,都使用了memcpy,这个函数是不安全的,可能被攻击者利用,具体可以参考以下解释:
memcpy
是一种用于内存复制的函数,但它存在内存越界和缓冲区溢出等安全问题。
由于 memcpy
没有在执行复制操作之前进行边界检查,因此可能会导致复制超出目标缓冲区的范围,从而破坏程序的数据结构或攻击者利用该漏洞执行恶意代码。
为了修复这个问题,可以使用 memcpy_s
函数来代替 memcpy
函数,该函数在执行复制操作之前可以执行边界检查以确保不会发生缓冲区溢出。如果 memcpy_s
检测到源缓冲区或目标缓冲区的大小与要复制的字节数不匹配,则会返回错误代码。
我们使用的JCore版本是3.1.2