Bug 2512472 - CVE-2026-15816 dracut: dracut: root code execution via unescaped error message written to sourced emergency hook script in die() [fedora-all]
Summary: CVE-2026-15816 dracut: dracut: root code execution via unescaped error messag...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: dracut
Version: 45
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
Assignee: Pavel Valena
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard: {"flaws": ["24cc1216-b0b0-4884-9ab4-6...
Depends On:
Blocks: CVE-2026-15816
TreeView+ depends on / blocked
 
Reported: 2026-08-07 10:29 UTC by mkaminsk
Modified: 2026-09-03 03:16 UTC (History)
5 users (show)

Fixed In Version: dracut-111-2.fc45
Clone Of:
Environment:
Last Closed: 2026-09-03 03:16:40 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description mkaminsk 2026-08-07 10:29:57 UTC
Disclaimer: Community trackers are created by Red Hat Product Security team on a best effort basis. Package maintainers are required to ascertain if the flaw indeed affects their package, before starting the update process.

A flaw was found in dracut. The die() function in dracut-lib.sh appends its error message to $hookdir/emergency/01-die.sh using echo "warn dracut: FATAL: \"$*\"", without shell-quoting the message. When the message passed to die() contains DHCP-controlled data -- specifically $netroot, derived from the DHCP ROOT_PATH option via netroot.sh's handler-resolution failure path (die "No handler for netroot type '$netroot'") -- a command-substitution sequence such as $(cmd) embedded in that data survives into the generated 01-die.sh line and executes as root the next time dracut sources the emergency hook directory. This occurs during dracut's standard boot-failure handling: when the netroot handler cannot be resolved, dracut's initqueue-timeout fallback (or, on non-default rd.shell configurations, die() itself) eventually invokes emergency_shell(), which sources every script under $hookdir/emergency/, including the attacker-poisoned 01-die.sh. This is a distinct code path from CVE-2026-6893 (dhclient-script.sh writing unescaped DHCP hostname/route values); CVE-2026-6893's fix does not touch die() and does not remediate this issue.

Comment 2 Aoife Moloney 2026-08-17 15:49:14 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 45 development cycle.
Changing version to 45.

Comment 3 Fedora Update System 2026-08-27 12:19:10 UTC
FEDORA-2026-5bf73fe397 (dracut-111-2.fc45) has been submitted as an update to Fedora 45.
https://bodhi.fedoraproject.org/updates/FEDORA-2026-5bf73fe397

Comment 4 Fedora Update System 2026-08-28 02:20:40 UTC
FEDORA-2026-5bf73fe397 has been pushed to the Fedora 45 testing repository.
Soon you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-5bf73fe397`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-5bf73fe397

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2026-09-03 03:16:40 UTC
FEDORA-2026-5bf73fe397 (dracut-111-2.fc45) has been pushed to the Fedora 45 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.