阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Linux 用户注意了:Linux Sudo 被曝漏洞

  • 2019-10-16
  • 本文字数:1125 字

    阅读完需:约 4 分钟

Linux用户注意了:Linux Sudo被曝漏洞

作为安装在几乎所有基于 UNIX 和 Linux 操作系统上的核心命令,Sudo 是最重要、最强大且最常用的实用程序之一。



近日,安全专家发现 Sudo 中出现一个新漏洞,该漏洞是 sudo 安全策略绕过问题,可导致恶意用户或程序在目标 Linux 系统上以 root 身份执行任意命令。


Sudo 的全称是“superuserdo”,它是 Linux 系统管理指令,允许用户在不需要切换环境的前提下以其它用户的权限运行应用程序或命令,通常是以 root 用户身份运行命令,以减少 root 用户的登录和管理时间,同时提高安全性。


幸运的是,该漏洞仅在非标准配置中有效,并且大多数 Linux 服务不受影响。


据悉,这个漏洞的编号是 CVE-2019-14287 ,它是由苹果信息安全部门的研究员 Joe Vennix 发现并分析的 。


在获得此漏洞之前,重要的是要掌握一些有关 sudo 命令如何工作以及如何进行配置的背景信息。


Linux操作系统上执行命令时,非特权用户可以使用 sudo(超级用户身份)命令以 root 身份执行命令,只要它们已被授予权限或知道 root 用户的密码即可。



sudo 命令还可以配置为允许用户通过向/etc/sudoers 配置文件添加特殊命令来以其他用户身份运行命令。


例如,以下命令允许用户’test’以 root 身份以外的任何用户身份运行/usr/bin/vim 和 usr/bin/id 命令。


test ALL = (ALL, !root) /usr/bin/vimtest ALL = (ALL, !root) /usr/bin/id
复制代码


为了使’test’用户执行上述命令之一,他们将使用带有-u 参数的 sudo 命令来指定运行用户。例如,以下命令将以 vibleing-test 用户身份启动 vim。


sudo -u bleeping-test vim 
复制代码


在 Linux 中创建用户时,将为每个用户分配一个 UID。如下所示,用户’test’的 UID 为 1001,'bleeping-test’用户的 UID 为 1002。



启动 sudo 命令时,用户可以使用这些 UID 代替用户名。例如,下面的命令将再次以“测试”的形式启动 VIM,但这一次是通过提供用户的 UID 来启动的。


sudo -u#1002 vim
复制代码

Sudo 漏洞

苹果安全研究员 Joe Vennix 发现一个错误,该错误允许用户通过在 sudo 命令中使用-1 或 4294967295 UID 以 root 身份启动允许的 sudo 命令。



例如,即使在/etc/sudoers 文件中明确拒绝了‘test’用户,以下命令也可以利用该错误以 root 身份启动/usr/bin/id 用户。


sudo -u#-1 id
复制代码


下面也说明了如何将这个错误与/usr/bin/id 命令一起使用以获取 root 特权。



尽管该错误功能强大,但重要的是要记住,只有通过 sudoers 配置文件为用户提供了对命令的访问权限,它才能起作用。如果不是这样,并且大多数 Linux 发行版默认情况下都没有,那么此错误将无效。


据悉,CVE-2019-14287 漏洞影响 1.8.28 之前的 Sudo 版本。


强烈建议用户尽快将 sudo 软件包更新为最新版本!


参考文章:


Linux SUDO Bug Lets You Run Commands as Root, Most Installs Unaffected


2019-10-16 10:535064
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 335.0 次阅读, 收获喜欢 1794 次。

关注

评论

发布
暂无评论
发现更多内容

javaweb

喜羊羊

javaWeb 9月月更

中国IPv6“高速公路”,全面建成 IANA被管理权限移交 ,IP地址管理何去何从

郑州埃文科技

ipv6 ipv4 IANA

Python 教程之数据分析(5)—— 使用 Python 进行数据分析和可视化 | 第 2 套

海拥(haiyong.site)

Python 9月月更

离谱了!京东T7手写「并发编程知识手册」,从原理到项目实战详解

了不起的程序猿

Java 并发编程 java程序员 java面试 java编程

直播预告 | PolarDB-X 动手实践系列——PolarDB-X 数据导入导出功能

阿里云数据库开源

MySQL 数据库 阿里云 云原生 PolarDB-X

高并发下的网络 IO 模型设计

C++后台开发

后台开发 reactor 高并发 epoll 网络io模型

Dubbo Mesh - 从服务框架到统一服务控制平台

阿里巴巴云原生

阿里云 开源 微服务 云原生 dubbo

华为云WeLink助力平房区打造智慧政务办公

科技怪咖

2022年全年Java岗面试题总结+一线互联网大厂Java岗面经/面试题总结!

程序员小毕

Java 程序员 面试 程序人生 后端

博云 Kubernetes 开源榜单贡献度进入全球前十

BoCloud博云

云计算 开源 云原生

大众CEO迪斯提前卸任,成败皆因软件

雨果

软件定义汽车

字节前端必会面试题

helloworld1024fd

JavaScript

字节跳动 DanceCC 工具链系列之Xcode LLDB耗时监控统计方案

字节跳动终端技术

ios xcode swift LLVM 客户端

“数智化”时代 ,房企转型路径与挑战的一种技术思路

Speedoooo

小程序 前端开发 数字化转型 移动开发 小程序容器

测试平台解决了什么问题?

老张

测试平台

一加现在属于OPPO吗 资深“加油”来解答

Geek_8a195c

【中秋福利】大数据告诉你:今年中秋礼品这样选

前嗅大数据

大数据 数据分析 数据采集 中秋 互联网+

iOS端如何实现微信分享链接与登陆

MobTech袤博科技

微信 iOS SDK

如何在 Jenkins CI/CD 流水线中保护密钥?

SEAL安全

DevOps jenkins CI/CD 密钥管理 CI/CD管道

广东省湛江市等保测评机构有几家?怎么做?

行云管家

等保 等级保护 等保测评 湛江

校招前端面试题

夏天的味道123

JavaScript 前端

LED显示屏是否可以实现智能化控制

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

【荣耀开发者服务平台—百亿曝光扶持等你来】智慧服务快应用卡片接入指南(上)

荣耀开发者服务平台

JavaScript 前端 UI 安卓 honor

实战Elasticsearch6的join类型

程序员欣宸

elasticsearch 9月月更

leetcode 101. Symmetric Tree 对称二叉树(简单)

okokabcd

LeetCode 算法与数据结构

NFT艺术品交易平台:有哪些功能?

开源直播系统源码

NFT 数字藏品 数字藏品软件

博弈论(depu)与孙子兵法-02(46/100)

hackstoic

博弈论

源码 | SpringBoot启动流程大揭秘

六月的雨在InfoQ

源码 springboot SpringBoot实战 9月月更 SpringBoot启动流程

Python 教程之数据分析(6)—— 数据分析的数学运算

海拥(haiyong.site)

Python 9月月更

设计模式的艺术 第六章抽象工厂设计模式练习(开发一款新的手机游戏软件,该软件能够支持IOS和Android等多个智能手机操作系统平台。针对不同手机操作系统,该游戏软件提供了不同的游戏操作控制类和游戏界面控制类,并提供相应的工厂类来封装这些类的初始化过程)

代廉洁

设计模式的艺术

什么是数据湖?全面解读数据湖与数据仓库的区别

雨果

数据中台 数据仓库 数据湖 DaaS数据即服务

Linux用户注意了:Linux Sudo被曝漏洞_安全_万佳_InfoQ精选文章