REDHAT-BUG-2500889: High severity dracut vulnerability

Published Jul 15, 2026
·
Updated

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 ROOTPATH 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 emergencyshell(), 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. Reproduced directly against die() extracted from shipped dracut RPMs spanning RHEL 6 through RHEL 10 in an isolated sandbox: a crafted netroot value containing $(touch /tmp/marker) created the marker file upon sourcing the generated 01-die.sh, while a clean/benign netroot value round-tripped with identical warning text in every version tested. Replacing the manual echo/quoting with printf '%q' was verified to neutralize the injection while preserving identical warning output for benign input.

Affected Software

1 affected component
dracut

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    In dracut-lib.sh, modify die() so the error message appended to "$hookdir/emergency/01-die.sh" is shell-quoted (use printf '%q' for the message) instead of writing unquoted data via echo. This prevents command-substitution sequences (e.g., $(...)) present in the message (such as $netroot) from executing when the emergency directory is later sourced as root.

    dracut die() / dracut-lib.sh (emergency hook 01-die.sh generation) echo = Replace echo "warn dracut: FATAL: \"$*\"" with printf '%q' quoting for the message before writing into $hookdir/emergency/01-die.sh

Event History

Jul 15, 2026
Data Sourced
via Red Hat·11:44 AM
DescriptionSeverityAffected Software

Frequently Asked Questions

1

What is the severity of REDHAT-BUG-2500889?

The severity of REDHAT-BUG-2500889 is classified as high, with a score of 7.

2

How do I fix REDHAT-BUG-2500889?

To fix REDHAT-BUG-2500889, ensure that you apply the latest updates and patches provided by Red Hat for dracut.

3

What is the nature of the vulnerability in REDHAT-BUG-2500889?

REDHAT-BUG-2500889 is caused by a flaw in dracut where the die() function does not properly shell-quote DHCP-controlled messages.

4

What potential impacts does REDHAT-BUG-2500889 have on systems?

If exploited, REDHAT-BUG-2500889 may lead to command injection vulnerabilities through improperly handled error messages.

5

Is there a workaround for REDHAT-BUG-2500889?

There are no specific workarounds for REDHAT-BUG-2500889 besides applying the recommended updates from Red Hat.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203