聚焦源代码安全,网罗国内外最新资讯!编译:奇安信代码卫士团队

Linux 用户要注意了!几乎所有基于 UNIX  Linux 的操作系统上安装的核心命令,也是最重要、最强大也最常用的工具 Sudo中被曝存在一个漏洞。

Sudo 的全称是“superuserdo”,它是Linux系统管理指令,允许用户在不需要切换环境的前提下以其它用户的权限运行应用程序或命令,通常是以 root 用户身份运行命令,以减少 root 用户的登录和管理时间,同时提高安全性。该漏洞是 sudo安全策略绕过问题,可导致恶意用户或程序在目标 Linux 系统上以 root 身份执行任意命令,即使 “sudoers configuration” 明确禁止该 root访问权限也不例外。

漏洞详情

这个漏洞的 CVE 编号是CVE-2019-14287,是由苹果信息安全部门的研究员 Joe Vennix 发现并分析的。与其说让人恐慌,不如说让人兴趣盎然:它要求系统具有非标准配置。换句话说,在默认情况下,Linux 计算机并不易受攻击。然而,如果你的配置是这样的:让用户以 root 权限以外的其他用户权限运行命令,那么可能就需要注意了:因为用户可以通过命令行上的 –u#-1 绕过这个非 root限制。如果将 sudo配置为允许用户通过Runas 规范中的 ALL关键字以任意用户身份运行命令,则可以通过指定用户 ID为-1 或4294967295 以 root 用户身份运行命令。只要Runas 规范中最先列出ALL 关键字,即使Runas 规范明确禁止 root访问权限,那么具有足够的 sudo 权限的而用户即可以 root 身份运行命令。以这种方式运行的命令的日志条目会把目标用户列为 4294967295而非 root。另外,将不会为该命令运行 PAM 会话模块。具体而言:利用该漏洞要求用户具有 sudo 权限,从而以任意用户 ID 运行命令。一般而言,这意味着用户的 sudoers 条目在 Runas 规范中具有特殊值 ALL。Sudo 支持在 sudoers 策略允许的情况下,以用户指定的名称或用户 ID 运行命令。例如,如下 sudoers 条目允许 id 命令以任意用户身份运行,因为它包含 Runas 规范中的关键字 ALL。

myhost alice = (ALL) /usr/bin/id

用户不仅能够以其它合法用户身份运行该 id 命令,还能使用 #uid语法以任意用户 ID 运行该命令,例如:

sudo -u#1234 id -u

将返回1234,然而,sudo 在运行命令前用户修改用户 ID 的setresuid(2)和 setreuid(2)系统调用将特殊对待用户 ID为-1(或其无符号值 4294967295)而且并不会修改该值的用户 ID。因此,

sudo -u#-1 id -u

 sudo -u#4294967295 id -u

实际上会返回 0。这是因为 sudo命令本身就已经以用户 ID 为0 运行,因此当 sudo 试图将用户 ID 修改成 -1时,不会发生任何变化。这就导致 sudo 日志条目将该命令报告为以用户 ID 为 4294967295而非 root(或者用户ID为 0)运行命令。此外,由于通过–u选项指定的用户 ID 并不存在于密码数据库中,因此不会运行任何 PAM 会话模块。如果sudoers 条目被写入允许用户以除 root 身份以外的用户身份运行命令,则可利用该 bug 绕过该限制。例如,给定如下 sudoers 条目:

myhost bob = (ALL, !root) /usr/bin/vi

用户 bob 被允许以除了 root以外的其它用户身份运行 vi。然而,由于存在该漏洞,bob 实际上能够通过运行 sudo –u#-1 ui 的方式以 root 身份运行 vi,从而违反了安全策略。只有Runas 规范中存在关键字 ALL 的sudoers 条目受影响。例如,如下sudoers 条目并不受影响:

myhost alice = /usr/bin/id

在这个例子中,alice仅被允许以 root身份运行 id 命令。任何以其它用户身份运行该命令的尝试都将遭拒绝。

影响版本

1.8.28之前的所有 Sudo 版本均受影响。

修复方案

Sudo 1.8.28 版本已修复该漏洞。强烈建议 Linux用户将 sudo包手动更新至最新版本。PoC 地址见如下置顶留言。推荐阅读

Linux KDE 4和5版本被曝 0day,仅打开文件夹就能执行命令

关于应用程序安全策略,看这篇就够了

原文链接

https://thehackernews.com/2019/10/linux-sudo-run-as-root-flaw.html

https://www.sudo.ws/alerts/minus_1_uid.html

题图:Pixabay License本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

linux sudo权限_Linux Sudo 被曝漏洞,可导致用户以 root 权限运行命令相关推荐

  1. linux sudo漏洞 可导致用户以 root 权限运行命令

    Linux 用户要注意了!几乎所有基于 UNIX 和 Linux 的操作系统上安装的核心命令,也是最重要.最强大也最常用的工具 Sudo中被曝存在一个漏洞. Sudo 的全称是"superu ...

  2. linux默认开启sudo_Sudo漏洞允许非特权Linux和macOS用户以root身份运行命令

    原标题:Sudo漏洞允许非特权Linux和macOS用户以root身份运行命令 苹果安全团队成员Joe Vennix发现了sudo实用程序中的一个重要漏洞,即在特定配置下,它可能允许低特权用户或恶意程 ...

  3. java linux root权限管理_新的 Linux sudo 漏洞使本地用户获得 root 权限

    近日被技术专家所发现的新 sudo 漏洞允许任何本地用户在不需要任何身份验证的情况下就可以在类 Unix 操作系统上获得 root 权限. Sudo 实际上就是一个 Unix 程序,它使系统管理员可以 ...

  4. CVE-2021-3156:隐藏10年之久的 Sudo 漏洞,可使任意用户获得root 权限(详述)

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 Qualys 公司的研究团队在几乎所有主流 Unix 类操作系统都部署的 sudo 中发现了一个隐藏近10年之久的堆溢出漏洞,可导致任 ...

  5. Sudo bug 可导致非权限 Linux 和 MacOS 用户以根身份运行命令

    聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 苹果公司的研究员 Joe Vennix 在 sudo 中再次发现了一个重要漏洞,在某种特定配置下可导致低权限用户或恶意程序以管理员(根) ...

  6. linux php运行用户,Linux中普通用户如何以root身份运行命令

    Linux遵循非常艰难的权限模型,root用户可以执行任何操作:但普通用户没有权限,无法运行任何命令.下面本篇文章就来给大家介绍普通用户以root身份运行命令的方法,希望对大家有所帮助. 方法一:使用 ...

  7. bartender的安全策略不允许指定的用户执行此操作_Linux sudo 被曝提权漏洞,任意用户均能以 root 身份运行命令...

    嵌入式linux QQ交流群:175159209,欢迎爱好者加入交流技术问题! Linux 用户要注意了!几乎所有基于 UNIX 和 Linux 的操作系统上安装的核心命令,也是最重要.最强大也最常用 ...

  8. sudo命令普通用户提升root权限配置

    sudo命令普通用户提升root权限配置 1.概述 在操作linux时候,有些命令需要使用root权限才能执行,如果我们使用的是普通用户可以使用sudo命令将普通用户权限提升到root权限解决权限限制 ...

  9. Linux 杀毒软件发现的漏洞可使得黑客获得 root 权限

    导读 McAfee VirusScan Enterprise for Linux 版本中的远程代码执行缺陷,使黑客可以获得 root 权限,安全研究人员称只需欺骗该 app 使用恶意更新服务器即可实现 ...

最新文章

  1. Libvirt — 4 种主机虚拟化网络模式
  2. QT的QDeadlineTimer类的使用
  3. 前端学习(2995):vue+element今日头条管理--代码测试规范
  4. c#XML的基本使用
  5. UVA - 1279 Asteroid Rangers (动点的最小生成树)
  6. java.lang.ClassNotFoundException: org.springframework.web.util.WebAppRootListener
  7. spring源码:循环依赖源码学习
  8. php爬虫框架使用案例QueryList,将数据爬到mysql数据库
  9. IEEE会议论文批量下载的方法
  10. mac倾倒废纸篓提示文件正在使用中的一种解决办法
  11. Intel vPro
  12. 关于李沐深度学习softmax学习中代码出错的问题及解决方法
  13. GitHub无法访问下载
  14. 视频目标检测与图像目标检测的区别
  15. html 字母强制换行,Html 页面的强制换行问题总结
  16. linux pppoe 拨号日志,PPPoe宽带拨号
  17. 开源RISC-V处理器(蜂鸟E203)学习(三)低成本方案,成功运行hello word程序
  18. 调试笔记——《一起做RGB-D SLAM 》
  19. 实战Kubernetes动态卷存储(NFS)
  20. 基于TDOA的Chan氏算法代码解释

热门文章

  1. 给HUSTOJ用户提供的源码阅读与修改建议
  2. git提交时发现iml文件没有被排除
  3. Spark入门实战系列--4.Spark运行架构
  4. Vue执行动画(transition)
  5. JavaMail---简介
  6. 第四次c语言实验报告模板,C语言实验报告模板.doc
  7. flash.net.filereference php,as3与php 上传单个图片demo
  8. php mkdir 无效,PHP mkdir()无写权限的问题解决方法
  9. c语言文件分类二进制,C语言实现文件版(二进制文件版)通讯录
  10. php savepath,php中session_save_path另外一种用法