OpenBSD是一款开放源代码的UNIX操作系统,提供用于编辑用户数据信息的工具chpass(1)(或硬连接到此程序的chfn和chsh)。 chpass不正确处理临时文件,本地攻击者可以利用这个漏洞显示系统任意文件中的部分内容。 chpass会把用户数据库信息写到临时文件中以供编辑器修改,当编辑器运行时,用户可以挂起编辑器(^Z),并使用硬连接指向的任意文件来代替临时文件,然后在恢复编辑器到前台,以不保存方式退出编辑器,让chpass进行文件的其他操作,在这时候chpass打开文件,会以如下方式读取文件: -如果文件超过2048字节,将放弃读取。 -如果文件以\'\'#\'\'开头,忽略。 -其他的检查行的有效性。 如果发现检查的行合法,chpass就会处理下一个。但是如果某行不合法及以\"shell:\"开头,并剩余的字符是可打印字符,当chpass处理时就会显示错误消息,但错误消息中包含文件内容,造成硬连接指向的敏感文件内容被泄露。
OpenBSD是一款开放源代码的UNIX操作系统,提供用于编辑用户数据信息的工具chpass(1)(或硬连接到此程序的chfn和chsh)。 chpass不正确处理临时文件,本地攻击者可以利用这个漏洞显示系统任意文件中的部分内容。 chpass会把用户数据库信息写到临时文件中以供编辑器修改,当编辑器运行时,用户可以挂起编辑器(^Z),并使用硬连接指向的任意文件来代替临时文件,然后在恢复编辑器到前台,以不保存方式退出编辑器,让chpass进行文件的其他操作,在这时候chpass打开文件,会以如下方式读取文件: -如果文件超过2048字节,将放弃读取。 -如果文件以\'\'#\'\'开头,忽略。 -其他的检查行的有效性。 如果发现检查的行合法,chpass就会处理下一个。但是如果某行不合法及以\"shell:\"开头,并剩余的字符是可打印字符,当chpass处理时就会显示错误消息,但错误消息中包含文件内容,造成硬连接指向的敏感文件内容被泄露。