关于该错误的一些上下文:CVE-2014-6271
Bash 不仅支持将 shell 变量导出,还支持将 shell 函数导出到其他 bash 实例,通过进程环境到(间接)子进程。当前的 bash 版本使用由函数名称命名的环境变量,以及变量值中以“() {”开头的函数定义,以通过环境传播函数定义。该漏洞的出现是因为bash在处理函数定义后没有停止;它会按照函数定义继续解析和执行 shell 命令。例如,环境变量设置
Run Code Online (Sandbox Code Playgroud)VAR=() { ignored; }; /bin/id将环境导入 bash 进程时执行 /bin/id 。
资料来源:http : //seclists.org/oss-sec/2014/q3/650
该错误是什么时候引入的,完全修复它的补丁是什么?(参见CVE-2014-7169)
除了 CVE(最初)(3.{0..2} 和 4.{0..3})中提到的易受攻击版本之外,还有哪些易受攻击的版本?
有问题的源代码是否在其他项目中重用?
需要额外的信息。
我想根据我的需要自定义cd命令的功能。
我定义了以下功能 -
function cd () { cd "$@" && pushd "$@"; }
这个函数的目的是自动将目录压入堆栈,这样我就不用pushd .每次都手动输入了。
然而,上面的函数是一个无限递归函数,因为调用cd被解释为函数本身而不是cd内置函数。
如何引用cd此函数中的内置函数?
我知道别名可以使用\. 以更明确的方式转义函数或引用内置函数的方法是什么?
注意:我不想将我的函数重命名为其他任何名称。