Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2021-42373

CVE-2021-42373: Busybox Man Applet DOS Vulnerability

CVE-2021-42373 is a denial of service flaw in Busybox's man applet caused by NULL pointer dereference when a section name is provided without a page argument. This article covers technical details, affected versions, and mitigation.

Published:

CVE-2021-42373 Overview

A NULL pointer dereference vulnerability exists in BusyBox's man applet that leads to denial of service when a section name is supplied but no page argument is given. This vulnerability affects embedded Linux systems and IoT devices that utilize BusyBox as their core Unix utility toolkit, potentially causing service disruptions in production environments.

Critical Impact

Local attackers can crash the BusyBox man applet by providing malformed command-line arguments, leading to denial of service on affected embedded systems and IoT devices.

Affected Products

  • BusyBox versions 1.33.0 and 1.33.1
  • Fedora Project Fedora 33 and 34
  • NetApp Cloud Backup
  • NetApp HCI Management Node
  • NetApp SolidFire
  • NetApp H-Series Storage Systems (H300S, H500S, H700S, H300E, H500E, H700E, H410S) and associated firmware

Discovery Timeline

  • 2021-11-15 - CVE-2021-42373 published to NVD
  • 2024-11-21 - Last updated in NVD database

Technical Details for CVE-2021-42373

Vulnerability Analysis

This vulnerability is classified as CWE-476 (NULL Pointer Dereference). The flaw resides in the man applet within BusyBox, a software suite providing several Unix utilities in a single executable. When parsing command-line arguments, the man applet fails to properly validate input when a section name is provided without a corresponding page argument. This improper input handling results in the code attempting to dereference a NULL pointer, causing the application to crash.

The vulnerability requires local access to exploit, meaning an attacker must have the ability to execute commands on the target system. While this limits the attack surface compared to remotely exploitable vulnerabilities, BusyBox's widespread deployment in embedded systems, IoT devices, and containerized environments makes this vulnerability significant. A successful exploit results in high availability impact through denial of service, though confidentiality and integrity remain unaffected.

Root Cause

The root cause of this vulnerability lies in insufficient input validation within the man applet's argument parsing logic. When the applet receives a section number argument (e.g., man 1) without the required page name argument, the code fails to check for the presence of the page argument before attempting to use it. This leads to accessing a NULL pointer when the missing argument is dereferenced, triggering a segmentation fault and crashing the process.

Attack Vector

Exploitation of CVE-2021-42373 requires local access to a system running a vulnerable version of BusyBox. An attacker with shell access or the ability to execute commands can trigger the vulnerability by invoking the man applet with a section argument but omitting the page name. This could be leveraged in multi-user environments or embedded systems where untrusted users have limited shell access. The attack could also be incorporated into automated scripts or chained with other vulnerabilities to cause service disruptions.

The vulnerability is triggered through malformed command-line invocation of the BusyBox man applet. When a user or script supplies a section number parameter without providing the corresponding manual page name, the applet's argument parsing code fails to handle this edge case properly, resulting in a NULL pointer being accessed. For technical details on the exploitation mechanism, refer to the Claroty Research Report and JFrog Blog on Vulnerabilities.

Detection Methods for CVE-2021-42373

Indicators of Compromise

  • Unexpected crashes or segmentation faults in BusyBox processes, particularly the man applet
  • Core dump files generated by BusyBox man applet crashes
  • System logs showing SIGSEGV signals associated with BusyBox processes
  • Repeated failed invocations of the man command in system audit logs

Detection Strategies

  • Monitor for abnormal termination of BusyBox processes with segmentation fault exit codes
  • Implement process monitoring to detect repeated crashes of the man applet
  • Review command-line audit logs for suspicious man command invocations with missing arguments
  • Deploy file integrity monitoring on BusyBox binaries to detect unauthorized modifications

Monitoring Recommendations

  • Enable core dump analysis for BusyBox-related crashes to identify exploitation attempts
  • Configure system logging to capture command-line arguments for BusyBox applet invocations
  • Implement alerting for repeated service failures on embedded systems running BusyBox
  • Establish baseline behavior monitoring for BusyBox utility usage patterns

How to Mitigate CVE-2021-42373

Immediate Actions Required

  • Update BusyBox to a patched version that addresses the NULL pointer dereference vulnerability
  • Apply vendor-specific patches from Fedora, NetApp, or other affected product vendors
  • Restrict local access to systems running vulnerable BusyBox versions where possible
  • Consider disabling the man applet if it is not required in your deployment

Patch Information

Security patches addressing this vulnerability have been released by multiple vendors. Fedora users should apply the updates announced in the Fedora Package Announcements. NetApp customers should refer to the NetApp Security Advisory for guidance on patching affected products including Cloud Backup, HCI Management Node, SolidFire, and H-Series storage systems. Organizations should prioritize patching based on the criticality of affected systems and exposure to untrusted local users.

Workarounds

  • Disable or remove the man applet from BusyBox builds if manual page functionality is not required
  • Restrict shell access to trusted users on systems running vulnerable BusyBox versions
  • Implement wrapper scripts that validate man command arguments before passing them to BusyBox
  • Use alternative manual page viewers where available in embedded environments
bash
# Disable man applet in BusyBox configuration
# During BusyBox compilation, disable the man applet:
make menuconfig
# Navigate to Miscellaneous Utilities and disable 'man'

# Alternatively, restrict access to the man applet
chmod 700 /bin/busybox
# Or create a restricted symlink configuration

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.