A flaw was found in dracut. The die() error-handling function writes its message into a shell script under the initramfs emergency-hook directory without properly shell-quoting it. When the message contains data derived from the DHCP ROOT_PATH option, an attacker on the adjacent network who controls a rogue DHCP server can inject a command-substitution sequence that executes as root the next time dracut sources its emergency hook scripts during standard boot-failure handling.
{
"binaries": [
{
"binary_version": "044+3-3",
"binary_name": "dracut"
},
{
"binary_version": "044+3-3",
"binary_name": "dracut-config-generic"
},
{
"binary_version": "044+3-3",
"binary_name": "dracut-config-rescue"
},
{
"binary_version": "044+3-3",
"binary_name": "dracut-core"
},
{
"binary_version": "044+3-3",
"binary_name": "dracut-network"
}
]
}{
"binaries": [
{
"binary_version": "047-2",
"binary_name": "dracut"
},
{
"binary_version": "047-2",
"binary_name": "dracut-config-generic"
},
{
"binary_version": "047-2",
"binary_name": "dracut-config-rescue"
},
{
"binary_version": "047-2",
"binary_name": "dracut-core"
},
{
"binary_version": "047-2",
"binary_name": "dracut-network"
}
]
}{
"binaries": [
{
"binary_version": "048+80-2",
"binary_name": "dracut"
},
{
"binary_version": "048+80-2",
"binary_name": "dracut-config-generic"
},
{
"binary_version": "048+80-2",
"binary_name": "dracut-config-rescue"
},
{
"binary_version": "048+80-2",
"binary_name": "dracut-core"
},
{
"binary_version": "048+80-2",
"binary_name": "dracut-network"
}
]
}{
"binaries": [
{
"binary_version": "051-1",
"binary_name": "dracut"
},
{
"binary_version": "051-1",
"binary_name": "dracut-config-generic"
},
{
"binary_version": "051-1",
"binary_name": "dracut-config-rescue"
},
{
"binary_version": "051-1",
"binary_name": "dracut-core"
},
{
"binary_version": "051-1",
"binary_name": "dracut-live"
},
{
"binary_version": "051-1",
"binary_name": "dracut-network"
},
{
"binary_version": "051-1",
"binary_name": "dracut-squash"
}
]
}{
"binaries": [
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-config-generic"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-config-rescue"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-core"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-install"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-live"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-network"
},
{
"binary_version": "060+5-1ubuntu3.3",
"binary_name": "dracut-squash"
}
]
}{
"binaries": [
{
"binary_version": "110-11",
"binary_name": "dracut"
},
{
"binary_version": "110-11",
"binary_name": "dracut-core"
},
{
"binary_version": "110-11",
"binary_name": "dracut-install"
},
{
"binary_version": "110-11",
"binary_name": "dracut-network"
},
{
"binary_version": "110-11",
"binary_name": "dracut-test"
}
]
}