嘉枣要发财

Mon 14 November 2022

Instagram_RCE:Instagram APP远程代码漏洞

Posted by www.jiazao888.com in blog/detail   

系统漏洞关键点

该系统漏洞存有于Instagram解决图象的方法中,在技术上将该系统漏洞是一个堆外溢系统漏洞(CVE-2020-1895),当Instagram试着推送大一点的文档的时候会开启该系统漏洞。网络攻击只需根据普遍的信息服务平台或电子邮件向进攻总体目标推送用心仿冒的照片就可以开启该系统漏洞。

有系统漏洞的涵数为read_jpg_copy_loop,会在压缩包解压全过程中引起整数金额外溢。

Instagram 自动点赞

Read_jpg_copy_loop字符串常量

在解决JPEG位图文件时,有系统漏洞的涵数会解决图像尺寸。下边是有系统漏洞的编码的伪代码:

width=rect->right-rect->bottom;

height=rect->top-rect->left;

allocated_address=__wrap_malloc(width*height*cinfo->output_components);//output_scanline;

if((unsigned int)output_scanline>=cinfo->output_height)

break;

//reads one line from the file into the cinfo buffer

jpeg_read_scanlines(cinfo,line_buffer,1);

if(output_scanline>=Rect->left&&output_scanline<Rect->top)

{

memcpy(allocated_address bytes_copied,line_buffer,width*output_component);//<--Oops

bytes_copied =width*output_component;

}

}

在其中:

_wrap_malloc涵数会依据图像尺寸的3个主要参数来分配内存块。Width和height全是16位的整数金额(uint16_t)。

cinfo->output_component告知大家有多少个字节数用于表明每一个清晰度。自变量的值各自意味着不一样的含意,1表明Greyscale、3表明RGB、4表明RGB AlphaCMYK等。

除开height和width外,output_component还可以彻底被网络攻击操纵。由于在剖析的全过程中并不会与文档中的别的数据信息开展认证。

__warp_malloc期待其主要参数在32位系统的存储器中开展解决。换句话说假如分派的尺寸超出(2^32)字节数,那麼就可以引起整数金额外溢。

分派的尺寸是根据图象的width乘height再乘于output_components获得的。由于沒有查验,那麼一旦被网络攻击所操纵,进一步乱用后便会引起整数金额外溢。

__wrap_malloc(width*height*cinfo->output_components);//<----Integer overflow

随后缓存文件被传送给memcpy,引起根据堆的缓存溢出。

分派后,memcpy涵数会被启用,随后拷贝图象数据信息到分派的运行内存中。

拷贝的全过程是一行一行开展的:

memcpy(allocated_address bytes_copied,line_buffer,width*output_component);//<--Oops

size(width*output_component)数据信息也会被拷贝height次。

为了更好地引起运行内存崩溃,还必须外溢决策分派尺寸的整数金额,测算的結果务必要超过32比特犬。当拷贝的数据信息超过2^32(4gB)时,假如循环系统到一个没法投射的网页页面,程序流程大概率会崩溃:

Instagram 自动按赞

漏洞检测

从漏洞检测的视角看来,一个线形堆外溢系统漏洞促使网络攻击能够 操纵分派的尺寸、外溢的数、及其外溢运行内存地区的內容。

网络攻击运用该系统漏洞能够 依照以下流程:

根据电子邮件、WhatsApp、短消息等方法推送故意照片给受害人;

Instagram 自动赞

补丁包

Facebook已于2020年春天修补了该系统漏洞,Facebook称沒有发觉一切系统漏洞在野运用的征兆。