ATF(TF-A)安全通告 TFV-8 (CVE-2018-19440)

安全之安全(security²)博客目录导读

ATF(TF-A)安全通告汇总

目录

一、ATF(TF-A)安全通告 TFV-8 (CVE-2018-19440)

二、CVE-2018-19440


一、ATF(TF-A)安全通告 TFV-8 (CVE-2018-19440)

Title

不保存x0~x3寄存器可能会将信息从一个非安全世界的SMC client泄漏到另一个

CVE ID

CVE-2018-19440

Date

27 Nov 2018

Versions Affected

All

Configurations Affected

多个非安全世界SMC clients调用到AArch64 BL31

Impact

泄漏SMC返回值从一个非安全世界SMC client到另一个

Fix Version

Pull Request #1710

Credit

Secmation

二、CVE-2018-19440

        当takeing一个异常到EL3,BL31将保存CPU上下文。其目的是在返回到调用固件的较低异常级别软件之前恢复它。然而,对于SMC异常,通用寄存器x0~x3不是保存在栈上的CPU上下文的一部分。

        根据SMC Calling Convention(SMC调用准则),最多可以通过寄存器x0~x3向调用者返回4个值。在TF-A中,这些返回值被写入CPU上下文中,通常使用include/lib/aarch64/smccc_helpers.h头文件中提供的SMC_RETx()宏之一。

       在返回调用者之前,restore_gp_registers()函数被调用。它恢复从存储在栈上的CPU上下文中获取的所有通用寄存器的值。 这包括寄存器x0~x3,可以在lib/el3_runtime/aarch64/context.S文件第339行中看到(参考commit c385955的代码版本):

        在SMC处理程序不使用所有4个返回值的情况下,其余的在CPU上下文中保持不变。因此,restore_gp_registers()恢复使用这些返回值的前一个SMC请求(或EL3的异步异常)保存的过时值。

        在存在多个非安全世界SMC clients的情况下,这种行为可能会将一些返回值从一个client泄漏到另一个。例如,如果受害者client首先发送一个返回4个值的SMC,恶意client可能会发送第二个SMC,期望没有返回值(例如,SDEI_EVENT_COMPLETE SMC)来获得受害者client的4个返回值。

        一般来说,由于存在多个非安全世界SMC clients,减轻威胁的责任在于EL2软件。当存在时,EL2软件必须trap来自EL1软件的SMC调用以确保安全行为。

        由于这个原因,TF-A不会在SMC同步异常的CPU上下文中保存x0~x3。自第一个版本以来,它一直是这样运行的。

        我们可以确认,至少上游基于kvm的系统减轻了这种威胁,因此不受此问题的影响。应该审核其他EL2软件以评估此威胁的影响。

        EL2软件可能会发现减轻这种威胁有些繁重,因为对于所有smc,它都需要知道哪些返回寄存器包含有效数据,因此它可以清除任何未使用的返回寄存器。另一方面,在EL3中减轻这个问题相对容易。因此,TF-A现在将通过在调用中保留寄存器状态来确保没有信息通过寄存器x0~x3泄露。

        请注意,AArch32 TF-A不受此问题影响。SP_MIN中的SMC处理代码已经保存了所有通用寄存器——包括r0~r3,可以在include/lib/aarch32/smccc_macros.S文件第19行看到(参考commit c385955的代码版本):

参考: 9.8. Advisory TFV-8 (CVE-2018-19440) — Trusted Firmware-A 2.9.0 documentation

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/82227.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【电子通识】什么是异常分析中的A-B-A方法

工作有了一定的经验之后,在做问题分析的时候,经常会听到别人说把这个部品(芯片/模块)拿去ABA一下,看看跟谁走。那么对于新人来说是否就会问一个问题:什么是ABA呢? A-B-A 交换是一种简单直接的交…

Nvidia Jetson 编解码开发(1)介绍

前言 由于项目需要,需要开发Jetson平台的硬件编解码; 优化CPU带宽,后续主要以介绍硬件编解码为主 1.Jetson各平台编解码性能说明 如下是拿了Jetson nano/tx2/Xavier等几个平台做对比; 这里说明的编解码性能主要是对硬件来说的…

CefSharp自定义缓存实现

提高页面加载加速:CefSharp缓存可以缓存已经加载过的页面和资源,当用户再次访问相同的页面时,可以直接从缓存中加载,而不需要重新下载和解析页面和资源,从而加快页面加载速度。减少网络流量:使用缓存可以减…

使用chatGPT-4 畅聊量子物理学(三)

集合了人类智慧的照片,来自 1927 年举行的第五届索尔维国际会议。 Omer 什么是“物理系统在被测量之前不具有确定的属性。量子力学只能预测给定测量的可能结果的概率分布" ChatGPT 这句话描述了量子力学中的一种基本原则,即“物理系统在被测量之前…

使用Dockerfile部署java项目

1、移动java包到创建的目录下 2、编写Dockerfile文件 在同一目录下使用如下命令创建文件 touch Dockerfile 文件内容如下: #依赖的父镜像 FROM java:8 #作者 MAINTAINER maxurui #jar包添加到镜像中 ADD springboot3-0.0.1-SNAPSHOT.jar springboot3-0.0.1-SNAPSHO…

外贸邮箱签名怎么写?改版提升点击率的关键技巧揭秘!

外贸业务常用的一种营销工具就是电子邮件,而电子邮件的签名作为邮件信任度和品牌价值的体现,同样也是非常重要的。那么如何写一份优秀的外贸邮箱签名呢? 下面是几点建议。 第一,突出品牌形象。在签名中加入公司标志或相关图片可以…

Redis专题-秒杀

Redis专题-并发/秒杀 开局一张图,内容全靠“编”。 昨天晚上在群友里看到有人在讨论库存并发的问题,看到这里我就决定写一篇关于redis秒杀的文章。 1、理论部分 我们看看一般我们库存是怎么出问题的 其实redis提供了两种解决方案:加锁和原子操…

JavaWeb_LeadNews_Day6-Kafka

JavaWeb_LeadNews_Day6-Kafka Kafka概述安装配置kafka入门kafka高可用方案kafka详解生产者同步异步发送消息生产者参数配置消费者同步异步提交偏移量 SpringBoot集成kafka 自媒体文章上下架实现思路具体实现 来源Gitee Kafka 概述 对比 选择 介绍 producer: 发布消息的对象称…

开源远程控制硬件 BliKVM v4测试 1000公里外远程重装系统

测试准备 测试时间:20230818 测试硬件:BliKVM v4 文档 BliKVM v4是一款生产就绪、即插即用的 KVM-over-IP 设备,为专业用户提供了远程服务器或工作站管理的便捷解决方案。 它基于Linux并且完全开源。 借助 BliKVM,您可以轻松打…

19-普通组件的注册使用

普通组件的注册使用-局部注册 一. 组件注册的两种方式:1.局部注册:只能在注册的组件内使用 (1) 创建 vue 文件(单文件组件) (2) 在使用的组件内导入,并注册 components:{ 组件名: 组件对象 } // 导入需要注册的组件 import 组件对象 from.vue文件路径 import HmHeader from ./…

深入学习前端开发,掌握HTML、CSS、JavaScript等技术

课程链接: 链接: https://pan.baidu.com/s/1WECwJ4T8UQfs2FyjUMbxig?pwdi654 提取码: i654 复制这段内容后打开百度网盘手机App,操作更方便哦 --来自百度网盘超级会员v4的分享 课程介绍: 第1周:HTML5基础语法与标签 &#x1f…

基于Java+SpringBoot+vue前后端分离在线BLOG网站系统设计实现

基于JavaSpringBootvue前后端分离在线BLOG网站系统设计实现(程序源码毕业论文) 大家好,今天给大家介绍基于JavaSpringBootvue前后端分离在线BLOG网站系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完…

基于Python的高校学生成绩分析系统

随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把高校成绩分析与现在网络相结合,利用计算机搭建高校成绩分析系统,实现高校成绩分析的信息化。则对于进一步提高…

Idea中隐藏指定文件或指定类型文件

Setting ->Editor ->Code Style->File Types → Ignored Files and Folders输入要隐藏的文件名,支持*号通配符回车确认添加

通过爬虫抓取上市企业利润表并在睿思BI中展示

睿思BI从v5.3开始支持网络爬虫,可以从指定URL抓取表格数据,本示例实现从网络上抓取上市企业招商银行的利润表数据,并在睿思BI中进行展现。 功能演示URL:https://www.ruisitech.com/rsbi-ultimate/#/dashboard/ShareView?token31…

Maven介绍_下载_安装_使用_原理

文章目录 1 Maven介绍1.1 Maven是介绍1.2 Maven的作用 2 Maven下载与安装2.1 官网下载2.2 文件目录2.3 环境配置 3 Maven基础概念3.1 仓库分类3.2 依赖坐标3.3 坐标组成 4 Maven配置4.1 本地仓库配置4.2 远程仓库的设置4.3 镜像仓库配置4.4 IDEA配置Maven 5 Maven项目创建5.1 M…

Dockers搭建个人网盘、私有仓库,Dockerfile制作Nginx、Lamp镜像

目录 1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 (1)下载mysql:5.6和owncloud镜像 (2)创建启动mysql:5.6和owncloud容器 (3)在浏览器中输入网盘服务器的IP地址,进行账…

CentOS6.8图形界面安装Oracle11.2.0.1.0

Oracle11下载地址 https://edelivery.oracle.com/osdc/faces/SoftwareDelivery 一、环境 CentOS release 6.8 (Final),测试环境:内存2G,硬盘20G,SWAP空间4G Oracle版本:Release 11.2.0.1.0 安装包:V175…

kafka--kafka的基本概念-副本概念replica

三、kafka的基本概念-副本概念replica Broker 表示实际的物理机器节点 Broker1中的绿色P1表示主分片Broker2中的蓝色P1表示副本分片,其余类似,就是主从的概念,如果一个Broker挂掉了,还有其它的节点来保证数据的完整性 P可以看做分…

小程序体验版不存在 无法体验

1、权限问题: 1、开发者有所有权限。 2、小程序访问路径也是正确的。 该有的权限都有了。 2、解决办法: 打开微信公众平台,左侧菜单【设置】- 【第三方设置】,取消授权即可。