Linux sudo 漏洞可能导致未经授权的特权访问

在 Linux 中利用新发现的 sudo 漏洞可以使某些用户以 root 身份运行命令,尽管对此还有所限制。

sudo 命令中最近发现了一个严重漏洞,如果被利用,普通用户可以 root 身份运行命令,即使在 /etc/sudoers 文件中明确禁止了该用户这样做。

将 sudo 更新到版本 1.8.28 应该可以解决该问题,因此建议 Linux 管理员尽快这样做。

如何利用此漏洞取决于 /etc/sudoers 中授予的特定权限。例如,一条规则允许用户以除了 root 用户之外的任何用户身份来编辑文件,这实际上将允许该用户也以 root 用户身份来编辑文件。在这种情况下,该漏洞可能会导致非常严重的问题。

用户要能够利用此漏洞,需要在 /etc/sudoers 中为用户分配特权,以使该用户可以以其他用户身份运行命令,并且该漏洞仅限于以这种方式分配的命令特权。

此问题影响 1.8.28 之前的版本。要检查你的 sudo 版本,请使用以下命令:

$ sudo -V
Sudo version 1.8.27   <===
Sudoers policy plugin version 1.8.27
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.27

该漏洞已在 CVE 数据库中分配了编号 CVE-2019-14287。它的风险是,任何被指定能以任意用户运行某个命令的用户,即使被明确禁止以 root 身份运行,它都能逃脱限制。

下面这些行让 jdoe 能够以除了 root 用户之外的其他身份使用 vi 编辑文件(!root 表示“非 root”),同时 nemo 有权运行以除了 root 身份以外的任何用户使用 id 命令:

# affected entries on host "dragonfly"
jdoe dragonfly = (ALL, !root) /usr/bin/vi
nemo dragonfly = (ALL, !root) /usr/bin/id

但是,由于存在漏洞,这些用户中要么能够绕过限制并以 root 编辑文件,或者以 root 用户身份运行 id 命令。

攻击者可以通过指定用户 ID 为 -1 或 4294967295 来以 root 身份运行命令。

sudo -u#-1 id -u

或者

sudo -u#4294967295 id -u

响应为 1 表明该命令以 root 身份运行(显示 root 的用户 ID)。

苹果信息安全团队的 Joe Vennix 找到并分析该问题。

总结

以上所述是小编给大家介绍的Linux sudo 漏洞可能导致未经授权的特权访问,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Linux下普通用户用sudo su给自己加root权限的方法

    首先: sudo这个命令就是给后面的命令加上root权限(sudo=superuser do),su这个命令是switch user,切换用户,你sudo su这个命令的意思是用root的权限来切换到()用户.你根本没有指定用户,当然切换不过去 你要切换到root,那就是su root,然后输入root的密码,你要让自己成为有执行sudo权限的人,那就要修改sudoer-list,在命令行里敲 sudo visudo  打开如图所示: 然后在打开的文件里把你的用户名加上去(按照里面已有的用户的格

  • 详解Linux下的sudo及其配置文件/etc/sudoers的详细配置

    详解Linux下的sudo及其配置文件/etc/sudoers的详细配置 1.sudo介绍 sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令,如halt,reboot,su等等.这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性.Sudo不是对shell的一个代替,它是面向每个命令的. 它的特性主要有这样几点: § sudo能够限制用户只在某台主机上运行某些命令. § sudo提供了丰富的日志,详细地记录了每个用

  • Linux用户配置sudo权限(visudo)的方法

    sudo的工作过程如下: 1,当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限 2,确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认 3,若密码输入成功,则开始执行sudo后续的命令 4,root执行sudo时不需要输入密码(eudoers文件中有配置root ALL=(ALL) ALL这样一条规则) 5,若欲切换的身份与执行者的身份相同,也不需要输入密码 visudo使用vi打开/etc/sudoers文件,但是在保存退出时,

  • linux系统sudo命令详解

    比如:运行一些像mount,halt,su之类的命令,或者编辑一些系统配置文件,像/etc/mtab,/etc /samba/smb.conf等.这样以来,就不仅减少了root用户的登陆次数和管理时间,也提高了系统安全性. 一. sudo的特点 sudo扮演的角色注定了它要在安全方面格外谨慎,否则就会导致非法用户攫取root权限.同时,它还要兼顾易用性,让系统管理员能够更有效,更方便地使用它.sudo设计者的宗旨是:给用户尽可能少的权限但仍允许完成他们的工作.所以,sudo有以下特点: # 1.

  • Linux 添加普通用户到 sudo 列表的方法

    前言 Linux 的普通用户(uid >= 500)不具有某些命令的执行权限,为了执行较高权限的命令,一般有两种方法: 第一种是使用 su - 命令切换到 root 用户去执行: 另外一种方法是在命令前添加 sudo 去执行. 编辑文件 在使用 sudo 执行命令之前,需要把该普通用户添加到 /etc/sudoers 文件: 1. 切换到 root 用户,使用命令 visudo 进入 vim ,看到它已打开了 /etc/sudoers 文件. 2. 输入 "/root" 搜索,找

  • Linux曝出Sudo提权漏洞 任意用户亦可运行root命令

    作为 Linux 中最常使用的重要实用程序之一,Sudo 几乎安装在每一款 UNIX 和 Linux 发行版上,以便用户调用和实施核心命令. 然而近期曝出的一个提权漏洞,却直指 sudo 的一个安全策略隐患 -- 即便配置中明确不允许 root 用户访问,该漏洞仍可允许恶意用户或程序,在目标 Linux 系统上以 root 用户身份执行任意命令. (题图 via Hacker News ) 据悉,Sudo 特指"超级用户".作为一个系统命令,其允许用户以特殊权限来运行程序或命令,而无需

  • linux sudo命令详解

    简单的说,sudo 是一种权限管理机制,管理员可以授权于一些普通用户去执行一些 root 执行的操作,而不需要知道 root 的密码. 严谨些说,sudo 允许一个已授权用户以超级用户或者其它用户的角色运行一个命令.当然,能做什么不能做什么都是通过安全策略来指定的.sudo 支持插件架构的安全策略,并能把输入输出写入日志.第三方可以开发并发布自己的安全策略和输入输出日志插件,并让它们无缝的和 sudo 一起工作.默认的安全策略记录在 /etc/sudoers 文件中.而安全策略可能需要用户通过密

  • Linux sudo 漏洞可能导致未经授权的特权访问

    在 Linux 中利用新发现的 sudo 漏洞可以使某些用户以 root 身份运行命令,尽管对此还有所限制. sudo 命令中最近发现了一个严重漏洞,如果被利用,普通用户可以 root 身份运行命令,即使在 /etc/sudoers 文件中明确禁止了该用户这样做. 将 sudo 更新到版本 1.8.28 应该可以解决该问题,因此建议 Linux 管理员尽快这样做. 如何利用此漏洞取决于 /etc/sudoers 中授予的特定权限.例如,一条规则允许用户以除了 root 用户之外的任何用户身份来编

  • Linux内核漏洞浅析

    与Windows相比,Linux被认为具有更好的安全性和其他扩展性能.这些特性使得Linux在操作系统领域异军突起,得到越来越多的重视.随着Linux应用量的增加,其安全性也逐渐受到了公众甚或黑客的关注.那么,Linux是否真的如其支持厂商们所宣称的那样安全呢?本期我们请到了启明星辰信息技术有限公司积极防御实验室工程师赵伟,对Linux进行专业的漏洞技术分析. Linux内核精短.稳定性高.可扩展性好.硬件需求低.免费.网络功能丰富.适用于多种cpu等特性,使之在操作系统领域异军突起.其独特的魅

  • linux sudo密码输入时显示星号的操作方法

    大家都知道我们在输入linux sudo密码的时候终端是不显示任何东西的,虽然这样安全,但是我们不知道我们按下的密码到底输入进去了没有,如果可以像在网站上登录账号密码的时候显示星号多好. 操作 其实要实现这个很简单,首先编辑sudo的配置文件 sudo visudo 之后找到 Defaults env_reset 上面这句话,注释掉它 接着添加下面这句话 Defaults env_reset,pwfeedback 接着保存,然后退出终端重新进入,执行下面命令 sudo apt update 在输

  • linux mint中搜狗输入法导致pycharm卡死的问题

    下载pycharm包并且解压 通过文件下bin目录中打开终端执行./pycharm.sh 命令打开 但是卡死在这个界面(之前一直是卡在开始界面,因为我之前关了搜狗输入法就可以继续),这个界面进程必须通过kill命令强制关掉 通过ps -ef|grep pych找到这个进程的pid,再强制关掉:kill 现在我去换下输入法 (将搜狗输入法下调,然后这个界面) 更换之后,便可以正常运行,根据网上的说法,应该是由于,pycharm未适配中文导致的 我们不激活搜狗输入法,就可以正常使用pycharm,自

  • Docker容器导致磁盘空间不足无法访问的解决方法

    目录 问题: 1.进入运行的容器目录 2.查看容器的配置信息 3.删除日志文件 4.正常进入容器 问题: 客户反馈说系统操作,出现问题,查询数据报错,我第一想到的是Redis是不是挂了导致一些存在里面的数据查询失败,后面查看服务是正常的,于是想进入容器项目排查日志,结果进入容器异常错误 1.进入运行的容器目录 输入命令进入容器目录 docker exec -it 容器id bash 提示错误信息: failed to create runc console socket: mkdir /tmp/

  • linux环境配置nginx导致页面不刷新的解决方法

    在linux环境下,配置了nginx负载均衡,由于可能在虚拟主机的配置文件nginx.conf中,对缓存机制未配置成功,导致页面不刷新,仍然显示缓存中的内容. 最后通过注释nginx.conf文件中的相关缓存配置,然后到tmp目录下查看已生成的缓存文件,如图: 这里我们需要将proxy_cache以及proxy_temp文件删除: 重启nginx服务:sercive nginx restart 页面刷新的问题解决了...

  • HTTP 错误 401.1 - 未经授权:访问由于凭据无效被拒绝的解决方法

    以前半夜遇到过一次,后来以为是哪有问题,没查出来,所以全部站点都还原了一下,用了半小时多,因为是0点以后基本上没人访问,所以没有用户反馈,今天一早又出这问题,当然不能再用上半小时来处理了, 你看一下 管理工具-->本地安全策略-->帐号密码 那里是不是有一个密码时间49天的,给他改长一点. 进入一看,还真是,改成0就是永不过期,就可以了. 这个问题比较少见.一般虚拟主机管理软件都自动设置的.

  • 先装了FRAMEWORK,后装IIS导致asp.net页面无法访问的解决方法

    ASPX页面访问需要.net的支持. 请先检查是否安装了.NET, 打开IIS,在默认网站上点右键,如果没有ASP.NET选项卡则为没有安装或没有将.NET注册到IIS中. 1.没有安装,下 载.net framework 并安装,下载时注意版本,并不一定高版本就完全兼容低版本, 2.安装了但是没有注册到IIS中,开始->运行->cmd-> C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

  • 配置fail2ban对Apache服务器进行安全防护的方法

    生产环境中的 Apache 服务器可能会受到不同的攻击.攻击者或许试图通过暴力攻击或者执行恶意脚本来获取未经授权或者禁止访问的目录.一些恶意爬虫或许会扫描你网站下的各种安全漏洞,或者通过收集email地址和web表单来发送垃圾邮件. Apache服务器具有全面的日志功能,可以捕捉到各种攻击所反映的异常事件.然而,它还不能系统地解析具体的apache 日志并迅速地对潜在的攻击进行反应(比如,禁止/解禁IP地址).这时候fail2ban可以解救这一切,解放了系统管理员的工作. fail2ban是一款

随机推荐