Generated by GPT-5-mini| firejail | |
|---|---|
| Name | Firejail |
| Developer | netblue30 (Jussi Pakkanen) |
| Initial release | 2011 |
| Operating system | Linux |
| License | GNU Lesser General Public License |
firejail Firejail is a Linux namespace-based sandboxing utility that isolates applications by using kernel features such as namespaces, seccomp-bpf, and capabilities. It was created to provide lightweight application isolation for desktop and server environments, aiming to reduce attack surface for web browsers, network clients, and file viewers. The project has been used alongside distributions and desktop environments to harden user sessions and limit process privileges.
Firejail leverages Linux kernel technologies including PID namespaces, mount namespaces, user namespaces, network namespaces, seccomp-bpf filters, and capabilities to restrict process visibility and privileges. The tool was developed by Jussi Pakkanen and distributed under the GNU Lesser General Public License, gaining adoption in distributions and among system administrators seeking containment for applications like web browsers and document viewers. Historically it emerged in the context of increasing use of containerization and sandboxing tools that include Docker (software), LXC (Linux Containers), and project efforts such as AppArmor, SELinux, and seccomp. The project integrates with packaging ecosystems and desktop projects such as Debian, Ubuntu (operating system), Arch Linux, Fedora Project, and Gentoo Linux.
Firejail supports a range of isolation features: PID masking, mount isolation including bind mounts and read-only overlays, network stack isolation with virtual network interfaces, and resource limits via cgroups and rlimits. It can apply syscall filtering through seccomp-bpf similar in scope to work by the Chromium (web browser) sandbox and integrates with X11 or Wayland sessions employed by GNOME, KDE Plasma, and XFCE. Profile-driven operation allows predefined restrictions for applications such as Mozilla Firefox, Google Chrome, Chromium (web browser), LibreOffice, Evince (software), Okular, VLC (media player), and command-line tools. Firejail also supports user namespace unprivileged containers enabling non-root users to create isolated environments as seen in tools like bubblewrap and Flatpak.
Typical invocation wraps an executable: running a browser or file manager under restricted namespaces and seccomp filters. System integrators often add wrappers to desktop launchers for applications like Thunderbird (email client), Pidgin, Transmission (BitTorrent client), and KeepassXC. Administrators combine Firejail with service management systems such as systemd unit files and incorporate it into installer scripts for distributions such as Ubuntu (operating system), Debian, and Arch Linux. Power users use profiles shipped with Firejail and create custom profiles referencing home directories, X11 sockets, and network configuration consistent with desktop stacks like X.Org and Wayland (display server protocol).
Security posture relies on kernel-enforced isolation primitives; effectiveness depends on kernel version, correct use of user namespaces, and the absence of privileged helper binaries. Firejail reduces attack surface against exploitation vectors used in real-world incidents such as supply chain compromises discussed in contexts of SolarWinds, Equifax data breach, and browser exploitation chains disclosed by projects like Project Zero. It complements mandatory access control systems such as AppArmor and SELinux rather than replacing them. Threat models addressed include remote code execution in applications like Adobe Reader alternatives, remote code exploits in Mozilla Firefox, and local escalation attempts via misconfigured setuid binaries. Limitations arise when kernel vulnerabilities permit namespace escapes, when setuid programs are present inside the sandbox, or when shared kernel interfaces like procfs expose sensitive information.
Firejail uses human-readable profile files that define whitelists, blacklists, bind mounts, capabilities, and seccomp policies tailored to specific applications. Default profiles exist for widely used programs from projects such as Mozilla Firefox, Google Chrome, Chromium (web browser), LibreOffice, GIMP (software), Inkscape, VLC (media player), Transmission (BitTorrent client), Evolution (software), and Thunderbird (email client). Administrators tune resource limits with cgroups as used in systemd slices and employ overlay filesystems similar to techniques in UnionFS and OverlayFS to provide ephemeral writable layers. Profiles can reference desktop environment conventions from GNOME, KDE Plasma, and LXDE and integrate with packaging formats such as Debian (software) packages and Flatpak portals.
Multiple graphical frontends and wrappers exist to simplify Firejail usage, integrating with desktop launchers and package managers. Projects providing GUIs or management tools draw inspiration from utilities like gufw and cockpit (software), while distribution maintainers integrate Firejail profiles into installer images for Ubuntu (operating system), Debian, and Arch Linux. Desktop integration includes context menu entries and launcher modifications for GNOME, KDE Plasma, and XFCE panels. Third-party tools and scripts adapt Firejail to complement sandboxing in application ecosystems such as Flatpak, Snap (software) from Canonical (company), and container orchestration tools exemplified by Kubernetes.
Known limitations stem from kernel bugs, incomplete syscall filtering, and complexities when interacting with GUI stacks and hardware access. Researchers and incident reports have documented escape techniques exploiting kernel vulnerabilities, misconfigured profile files, or privileged helper tools similar to issues found in container breakout advisories tied to Linux kernel CVEs. Firejail cannot fully replace hypervisor-based isolation like that provided by QEMU or KVM for high-assurance environments. Care is needed when combining Firejail with setuid binaries, proprietary drivers, or composition with systems such as systemd and Wayland (display server protocol) where IPC channels and device nodes may leak information. Ongoing maintenance, up-to-date kernel versions, and careful profile auditing are required to mitigate risks highlighted by security communities and disclosure programs such as CVE listings and vulnerability coordination processes exemplified by CERT Coordination Center.
Category:Linux security