Abusing the Ubuntu ‘command-not-found’ utility to install malicious packages

Pierluigi Paganini February 14, 2024

Researchers reported that attackers can exploit the ‘command-not-found’ utility to trick users into installing rogue packages on Ubuntu systems.

Cybersecurity researchers from cloud security firm Aqua discovered that it is possible to abuse, the popular utility ‘called ‘command-not-found’ that can lead to deceptive recommendations of malicious packages.

“Aqua Nautilus researchers have identified a security issue that arises from the interaction between Ubuntu’s command-not-found package and the snap package repository.” reads the report published by Aqua. “While command-not-found serves as a convenient tool for suggesting installations for uninstalled commands, it can be inadvertently manipulated by attackers through the snap repository, leading to deceptive recommendations of malicious packages.”

The default installation of Ubuntu includes the command-not-found package, it provides suggestions for package installations when users attempt to execute a command in Bash or Zsh that is not available on their system. The command relies on the implementation of the command_not_found_handle function, which Bash invokes when encountering an unrecognized command.

The package provides recommendations for both APT and snap packages. For example, if a user tries to execute “ifconfig” and it’s not installed, the package will suggest installing “net-tools” through apt.

The utility uses a local database located at /var/lib/command-not-found/commands.db to link commands to their corresponding APT packages.

An attacker can claim a Snap name associated with a package for which the maintainers haven’t yet claimed the Snap name. Then the attacker can register a snap name and the upload of a dummy “rogue” package.

“The maintainers of the jupyter-notebook APT package had not claimed the corresponding snap name. This oversight left a window of opportunity for an attacker to claim it and upload a malicious snap named jupyter-notebook.” reads the analysis published by Aqua. “We can observe that the command-not-found utility suggests the snap package first, even before the original APT package. This behavior could potentially mislead users into installing the snap package.”

command-not-found package attack

Moreover, the researchers discovered that up to 26% of commands linked to APT (Advanced Package Tool) packages may be exposed to impersonation. This vulnerability could expose users to supply chain attacks impacting both Linux users and Windows systems running WSL.

The researchers also warn of typosquatting attacks in which attackers requesting commands with typographical errors (e.g., ifconfigg instead of ifconfig) are suggested malicious snap packages that were claimed by the attackers.

“For instance, consider what could occur if a user accidentally types ifconfigg instead of ifconfig” continues the analysis. “the command-not-found package helpfully corrects the user, suggesting the net-tools package for the mistyped ifconfig command. However, the situation becomes more problematic when an attacker capitalizes on these common mistakes by registering a snap with the typo, such as ifconfigg.”

The potential for attackers to exploit the command-not-found utility by suggesting their rogue Snap packages is worrisome.

“It remains uncertain how extensively these capabilities have been exploited, underscoring the urgency for heightened vigilance and proactive defense strategies,” Aqua concludes.

Follow me on Twitter: @securityaffairs and Facebook and Mastodon

Pierluigi Paganini

(SecurityAffairs – hacking, Ubuntu)

you might also like

leave a comment