0 day预警:仅凭一封邮件就能黑掉你的iPhone

2024-03-06 05:48

本文主要是介绍0 day预警:仅凭一封邮件就能黑掉你的iPhone,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0 day预警:仅凭一封邮件就能黑掉你的iPhone

苹果用户请注意:上百万iPhone和iPad用户设备中安装的默认邮件app中发现了2个严重漏洞,远程攻击者利用这些漏洞只需发送一封邮件到受害者设备就可以完全控制苹果设备。

攻击活动概述

近日,ZecOps安全研究人员在苹果设备中安装的默认邮件app中发现了2个严重的越界写和远程堆溢出漏洞,其中一个是属于0点击(无交互)漏洞,可以在无需目标接收者交互的情况下被利用。这两个远程代码执行漏洞都位于邮件app的MIME库中,在处理邮件内容时会被触发。漏洞影响iOS 6到最新的iOS 13.4.1,存在了超过8年。

研究人员还发现有多个黑客组织已经在开始利用这些漏洞来攻击沙特阿拉伯、奇热以色列和欧洲的不同行业和组织,其中包括记者、MSSP等。据悉漏洞已经作为0 day漏洞被利用超过2年之久。

研究人员称,通过有限的数据分析,可以看出至少有6个组织受到该漏洞的影响,该漏洞被滥用的范围还是很广的。目前还无法将这些攻击归属于某个特定的黑客组织,但是研究人员发现有1个hackers-for-hire的组织在出售利用邮件地址作为id的漏洞利用。

0 day漏洞和利用

影响MIME库的漏洞实际上位于/System/Library/PrivateFrameworks/MIME.framework/MIME库的[MFMutableData appendBytes:length:]函数中。是由于没有堆系统调用ftruncate() 进行错误检查而引发的越界写漏洞。对普通用户来说是很难判断是否被攻击了,因为攻击者在获得远程访问受害者设备的权限后就可以马上删除发送的恶意邮件。除了手机的邮件应用暂时会变慢以外,用户不会体验到其他的异常行为。

漏洞被成功利用后,会在MobileMail 或maild应用环境下运行恶意代码,实现邮件的泄露、修改和删除。

 

研究人员还发现了一个无需等待系统调用ftruncate失败就可以触发越界写漏洞的方法。为了远程控制设备,攻击者必须与另一个kernel漏洞链起来——该漏洞是MFMutable中的一个远程堆溢出漏洞。该堆溢出漏洞也是由于没有正确处理系统调用的返回值引起的。该漏洞可以在处理下载的邮件时被触发,在这种场景中,邮件并不会完全下载到设备上。

补丁

ZecOps在2个月前发现了该漏洞的在野攻击,并将其报告给了苹果安全团队。截止目前,只有上周发布的iOS 13.4.5 beta版本中含有这两个0 day漏洞的补丁。

0 day预警:仅凭一封邮件就能黑掉你的iPhone

对iPhone和iPad用户来说,软件补丁会在近期的iOS 更新中发布,但同时研究人员强烈建议用户不要使用内置的邮件应用,建议使用Outlook或Gmail应用。

更多技术细节参见:https://blog.zecops.com/vulnerabilities/unassisted-ios-attacks-via-mobilemail-maild-in-the-wild/

这篇关于0 day预警:仅凭一封邮件就能黑掉你的iPhone的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/779010

相关文章

Java使用Mail构建邮件功能的完整指南

《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

Java中使用Java Mail实现邮件服务功能示例

《Java中使用JavaMail实现邮件服务功能示例》:本文主要介绍Java中使用JavaMail实现邮件服务功能的相关资料,文章还提供了一个发送邮件的示例代码,包括创建参数类、邮件类和执行结... 目录前言一、历史背景二编程、pom依赖三、API说明(一)Session (会话)(二)Message编程客

Python手搓邮件发送客户端

《Python手搓邮件发送客户端》这篇文章主要为大家详细介绍了如何使用Python手搓邮件发送客户端,支持发送邮件,附件,定时发送以及个性化邮件正文,感兴趣的可以了解下... 目录1. 简介2.主要功能2.1.邮件发送功能2.2.个性签名功能2.3.定时发送功能2. 4.附件管理2.5.配置加载功能2.6.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

Linux基础入门 --9 DAY

文本处理工具之神vim         vi和vim简介 一、vi编辑器 vi是Unix及类Unix系统(如Linux)下最基本的文本编辑器,全称为“visual interface”,即视觉界面。尽管其名称中包含“visual”,但vi编辑器实际上工作在字符模式下,并不提供图形界面。vi编辑器以其强大的功能和灵活性著称,是Linux系统中不可或缺的工具之一。 vi编辑器具有三种主要的工作模

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾,且有不超过 h 个下标满足条件的最长好子序列的长度(0<=h<=k),二维数组dp初始值全为1 解题过程 状态转换方程: 1.nums[i]==nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h]+1) 2.nums[i]!=nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h-1