Skip to content

Releases: netblue30/firejail

Release 0.9.72

16 Jan 16:02
Compare
Choose a tag to compare
  • feature: On failing to remount a fuse filesystem, give warning instead of
    erroring out (#5240 #5242)
  • feature: Update syscall tables and seccomp groups (#5188)
  • feature: improve force-nonewprivs security guarantees (#5217 #5271)
  • feature: add support for restricting the creation of Linux namespaces
    (--restrict-namespaces, --restrict-namespaces=), implemented as a seccomp
    filter for both 64 and 32 bit architectures (#4939 #5259)
  • feature: add support for custom AppArmor profiles (--apparmor=) (#5274
    #5316 #5317 #5475)
  • feature: add support for ICMP in nettrace
  • feature: add --dnstrace, --icmptrace, and --snitrace commands
  • feature: Add basic gtksourceview language-spec (file type detection/syntax
    highlighting for profiles) (#5502)
  • feature: add restrict-namespaces to (almost) all applicable profiles (#5440
    #5537)
  • feature: add support for netlock in profile files
  • modif: removed --cgroup= command (#5190 #5200)
  • modif: set --shell=none as the default (#5190)
  • modif: removed --shell= command (#5190 #5196 #5209)
  • modif: disabled firetunnel by default in configure.ac (#5190)
  • modif: disabled chroot by default in /etc/firejail/firejail.config (#5190)
  • modif: disabled private-lib by default in /etc/firejail/firejail.config
    (#5190 #5216)
  • modif: disabled tracelog by default in /etc/firejail/firejail.config
    (#5190)
  • modif: removed grsecurity support
  • modif: stop hiding blacklisted files in /etc by default and add a new
    etc-hide-blacklisted option to firejail.config that enables the previous
    behavior (disabled by default) (#5010 #5230 #5591 #5595)
  • bugfix: Flood of seccomp audit log entries (#5207)
  • bugfix: --netlock does not work (Error: no valid sandbox) (#5312)
  • build: deduplicate configure-time vars into new config files (#5140 #5284)
  • build: fix file mode of shell scripts (644 -> 755) (#5206)
  • build: reduce autoconf input files from 32 to 2 (#5219)
  • build: add dist build directory to .gitignore (#5248)
  • build: add autoconf auto-generation comment to input files (#5251)
  • build: Add files make uninstall forgot to remove (#5283)
  • build: add and use TARNAME instead of NAME for paths (#5310)
  • build: only install ids.config when --enable-ids is set (#5356 #5357)
  • build: Remove deprecated syntax and modernize shell test scripts (#5370)
  • build: Fix musl warnings (#5421 #5431)
  • build: sort.py improvements (#5429)
  • build: deduplicate makefiles (#5478)
  • build: fix formatting and misc in configure (#5488)
  • build: actually set LDFLAGS/LIBS & stop overriding CFLAGS/LDFLAGS (#5504)
  • build: make shell commands more portable in firejail.vim (#5577)
  • ci: bump ubuntu to 22.04 and use newer compilers / analyzers (#5275)
  • ci: ignore git-related paths and the project license (#5249)
  • ci: Harden GitHub Actions (StepSecurity) (#5439)
  • ci: sort and ignore more paths (#5481)
  • ci: whitelist needed endpoints and block access to sudo (#5485)
  • docs: fix typos (#5189 #5349)
  • docs: mention risk of SUID binaries and also firejail-users(5) (#5288
    #5290)
  • docs: set vim filetype on man pages for syntax highlighting (#5296)
  • docs: note that blacklist/whitelist follow symlinks (#5344)
  • docs: Add IRC channel info to README.md (#5361)
  • docs: man: Note that some commands can be disabled in firejail.config
    (#5366)
  • docs: Add gist note to bug_report.md (#5398)
  • docs: clarify that --appimage should appear before --profile (#5402 #5451)
  • docs: add more Firefox examples to the firejail-local AppArmor profile
    (#5493)
  • docs: Fix broken Restrict-DBus wiki link on profile.template (#5554)
  • docs: Remove invalid --profile-path from --help (#5585 #5586)
  • new profiles: gdu, makedeb, gtk-lbry-viewer, lbry-viewer, tuir, chafa,
  • new profiles: godot3, cinelerra-gg, tesseract, avidemux3_qt5,
  • new profiles: avidemux3_cli, avidemux3_jobs_qt5, ssmtp, chatterino,
  • new profiles: linuxqq, qq, electron-hardened.inc.profile,

Release 0.9.70

09 Jun 15:14
Compare
Choose a tag to compare
  • security: CVE-2022-31214 - root escalation in --join logic
    Reported by Matthias Gerstner, working exploit code was provided to our
    development team. In the same time frame, the problem was independently
    reported by Birk Blechschmidt. Full working exploit code was also provided.
  • feature: enable shell tab completion with --tab (#4936)
  • feature: disable user profiles at compile time (#4990)
  • feature: Allow resolution of .local names with avahi-daemon in the apparmor
    profile (#5088)
  • feature: always log seccomp errors (#5110)
  • feature: firecfg --guide, guided user configuration (#5111)
  • feature: --oom, kernel OutOfMemory-killer (#5122)
  • modif: --ids feature needs to be enabled at compile time (#5155)
  • modif: --nettrace only available to root user
  • rework: whitelist restructuring (#4985)
  • rework: firemon, speed up and lots of fixes
  • bugfix: --private-cwd not expanding macros, broken hyperrogue (#4910)
  • bugfix: nogroups + wrc prints confusing messages (#4930 #4933)
  • bugfix: openSUSE Leap - whitelist-run-common.inc (#4954)
  • bugfix: fix printing in evince (#5011)
  • bugfix: gcov: fix gcov functions always declared as dummy (#5028)
  • bugfix: Stop warning on safe supplementary group clean (#5114)
  • build: remove ultimately unused INSTALL and RANLIB check macros (#5133)
  • build: mkdeb.sh.in: pass remaining arguments to ./configure (#5154)
  • ci: replace centos (EOL) with almalinux (#4912)
  • ci: fix --version not printing compile-time features (#5147)
  • ci: print version after install & fix apparmor support on build_apparmor
    (#5148)
  • docs: Refer to firejail.config in configuration files (#4916)
  • docs: firejail.config: add warning about allow-tray (#4946)
  • docs: mention that the protocol command accumulates (#5043)
  • docs: mention inconsistent homedir bug involving --private=dir (#5052)
  • docs: mention capabilities(7) on --caps (#5078)
  • new profiles: onionshare, onionshare-cli, opera-developer, songrec
  • new profiles: node-gyp, npx, semver, ping-hardened
  • removed profiles: nvm

Release 0.9.68

06 Feb 13:45
Compare
Choose a tag to compare
  • security: on Ubuntu, the PPA is now recommended over the distro package
    (see README.md) (#4748)
  • security: bugfix: private-cwd leaks access to the entire filesystem
    (#4780); reported by Hugo Osvaldo Barrera
  • feature: remove (some) environment variables with auth-tokens (#4157)
  • feature: ALLOW_TRAY condition (#4510 #4599)
  • feature: add basic Firejail support to AppArmor base abstraction (#3226
    #4628)
  • feature: intrusion detection system (--ids-init, --ids-check)
  • feature: deterministic shutdown command (--deterministic-exit-code,
    --deterministic-shutdown) (#928 #3042 #4635)
  • feature: noprinters command (#4607 #4827)
  • feature: network monitor (--nettrace)
  • feature: network locker (--netlock) (#4848)
  • feature: whitelist-ro profile command (#4740)
  • feature: disable pipewire with --nosound (#4855)
  • feature: Unset TMP if it doesn't exist inside of sandbox (#4151)
  • feature: Allow apostrophe in whitelist and blacklist (#4614)
  • feature: AppImage support in --build command (#4878)
  • modifs: exit code: distinguish fatal signals by adding 128 (#4533)
  • modifs: firecfg.config is now installed to /etc/firejail/ (#408 #4669)
  • modifs: close file descriptors greater than 2 (--keep-fd) (#4845)
  • modifs: nogroups now stopped causing certain system groups to be dropped,
    which are now controlled by the relevant "no" options instead (such as
    nosound -> drop audio group), which fixes device access issues on systems
    not using (e)logind (such as with seatd) (#4632 #4725 #4732 #4851)
  • removal: --disable-whitelist at compile time
  • removal: whitelist=yes/no in /etc/firejail/firejail.config
  • bugfix: Fix sndio support (#4362 #4365)
  • bugfix: Error mounting tmpfs (MS_REMOUNT flag not being cleared) (#4387)
  • bugfix: --build clears the environment (#4460 #4467)
  • bugfix: firejail hangs with net parameter (#3958 #4476)
  • bugfix: Firejail does not work with a custom hosts file (#2758 #4560)
  • bugfix: --tracelog and --trace override /etc/ld.so.preload (#4558 #4586)
  • bugfix: PATH_MAX is undeclared on musl libc (#4578 #4579 #4583 #4606)
  • bugfix: firejail symlinks are not skipped with private-bin + globs (#4626)
  • bugfix: Firejail rejects empty arguments (#4395)
  • bugfix: firecfg does not work with symlinks (discord.desktop) (#4235)
  • bugfix: Seccomp list output goes to stdout instead of stderr (#4328)
  • bugfix: private-etc does not work with symlinks (#4887)
  • bugfix: Hardware key not detected on keepassxc (#4883)
  • build: allow building with address sanitizer (#4594)
  • build: Stop linking pthread (#4695)
  • build: Configure cleanup and improvements (#4712)
  • ci: add profile checks for sorting disable-programs.inc and
    firecfg.config and for the required arguments in private-etc (#2739 #4643)
  • ci: pin GitHub actions to SHAs and use Dependabot to update them (#4774)
  • docs: Add new command checklist to CONTRIBUTING.md (#4413)
  • docs: Rework bug report issue template and add both a question and a
    feature request template (#4479 #4515 #4561)
  • docs: fix contradictory descriptions of machine-id ("preserves" vs
    "spoofs") (#4689)
  • docs: Document that private-bin and private-etc always accumulate (#4078)
  • new includes: whitelist-run-common.inc (#4288), disable-X11.inc (#4462)
  • new includes: disable-proc.inc (#4521)
  • removed includes: disable-passwordmgr.inc (#4454 #4461)
  • new profiles: microsoft-edge-beta, clion-eap, lifeograph, zim
  • new profiles: io.github.lainsce.Notejot, rednotebook, gallery-dl
  • new profiles: yt-dlp, goldendict, goldendict, bundle, cmake
  • new profiles: make, meson, pip, codium, telnet, ftp, OpenStego
  • new profiles: imv, retroarch, torbrowser, CachyBrowser,
  • new profiles: notable, RPCS3, wget2, raincat, conitop, 1passwd,
  • new profiles: Seafile, neovim, com.github.tchx84.Flatseal

Release 0.9.68rc1

19 Jan 14:43
Compare
Choose a tag to compare
Release 0.9.68rc1 Pre-release
Pre-release
  • exit code: distinguish fatal signals by adding 128 (#4533)
  • close file descriptors greater than 2 (--keep-fd) (#4845)
  • intrusion detection system (--ids-init, --ids-check)
  • deterministic shutdown (--deterministic-exit-code,
    --deterministic-shutdown) (#4635)
  • noprinters command (#4607 #4827)
  • network monitor (--nettrace)
  • network locker (--netlock)
  • whitelist-ro profile command
  • build: firecfg.config is now installed to /etc/firejail/ (#4669)
  • removed --disable-whitelist at compile time
  • removed whitelist=yes/no in /etc/firejail/firejail.config
  • new condition: ALLOW_TRAY (#4510 #4599)
  • remove (some) environment variables with auth-tokens (#4157)
  • new includes: whitelist-run-common.inc (#4288), disable-X11.inc (#4462)
  • removed includes: disable-passwordmgr.inc (#4461)
  • new profiles: microsoft-edge-beta, clion-eap, lifeograph, zim
  • new profiles: io.github.lainsce.Notejot, rednotebook, gallery-dl
  • new profiles: yt-dlp, goldendict, goldendict, bundle, cmake
  • new profiles: make, meson, pip, codium, telnet, ftp, OpenStego
  • new profiles: imv, retroarch, torbrowser, CachyBrowser,
  • new profiles: notable, RPCS3, wget2, raincat,

Release 0.9.66

29 Jun 19:20
Compare
Choose a tag to compare
  • deprecated --audit options, relpaced by jailcheck utility
  • deprecated follow-symlink-as-user from firejail.config
  • new firejail.config settings: private-bin, private-etc
  • new firejail.config settings: private-opt, private-srv
  • new firejail.config settings: whitelist-disable-topdir
  • new firejail.config settings: seccomp-filter-add
  • removed kcmp syscall from seccomp default filter
  • rename --noautopulse to keep-config-pulse
  • filtering environment variables
  • zsh completion
  • command line: --mkdir, --mkfile
  • --protocol now accumulates
  • Jolla/SailfishOS patches
  • private-lib rework
  • whitelist rework
  • jailtest utility for testing running sandboxes
  • capabilities list update
  • faccessat2 syscall support
  • --private-dev keeps /dev/input
  • added --noinput to disable /dev/input
  • add support for subdirs in --private-etc
  • compile time: --enable-force-nonewprivs
  • compile time: --disable-output
  • compile time: --enable-lts
  • subdirs support in private-etc
  • input devices support in private-dev, --no-input
  • support trailing comments on profile lines
  • new profiles: vmware-view, display-im6.q16, ipcalc, ipcalc-ng
  • ebook-convert, ebook-edit, ebook-meta, ebook-polish, lzop,
  • avidemux, calligragemini, vmware-player, vmware-workstation
  • gget, com.github.phase1geo.minder, nextcloud-desktop, pcsxr
  • PPSSPPSDL, openmw, openmw-launcher, jami-gnome, PCSX2, sum
  • bcompare, b2sum, cksum, md5sum, sha1sum, sha224sum, sha256sum
  • sha384sum, sha512sum, librewold-nightly, Quodlibet, tmux, sway
  • alienarena, alienarena-wrapper, ballbuster, ballbuster-wrapper,
  • colorful, colorful-wrapper, gl-117, gl-117-wrapper, glaxium,
  • glaxium-wrapper, pinball, pinball-wrapper, etr-wrapper, firedragon
  • neverball-wrapper, neverputt-wrapper, supertuxkart-wrapper, neochat,
  • cargo, LibreCAD, blobby, funnyboat, pipe-viewer, gtk-pipe-viewer
  • links2, xlinks2, googler, ddgr, tin

Release 0.9.66rc1 - first release candidate for 0.9.66

02 Jun 15:34
Compare
Choose a tag to compare
  • deprecated --audit options, relpaced by jailcheck utility
  • deprecated follow-symlink-as-user from firejail.config
  • rename --noautopulse to keep-config-pulse
  • filtering environment variables
  • zsh completion
  • command line: --mkdir, --mkfile
  • --protocol now accumulates
  • Jolla/SailfishOS patches
  • private-lib rework
  • whitelist rework
  • jailtest utility for testing running sandboxes
  • capabilities list update
  • faccessat2 syscall support
  • --private-dev keeps /dev/input
  • added --noinput to disable /dev/input
  • add support for subdirs in --private-etc
  • compile time: --enable-force-nonewprivs
  • compile time: --disable-output
  • compile time: --enable-lts
  • subdirs support in private-etc
  • input devices support in private-dev, --no-input
  • support trailing comments on profile lines
  • new profiles: vmware-view, display-im6.q16, ipcalc, ipcalc-ng
  • ebook-convert, ebook-edit, ebook-meta, ebook-polish, lzop,
  • avidemux, calligragemini, vmware-player, vmware-workstation
  • gget, com.github.phase1geo.minder, nextcloud-desktop, pcsxr
  • PPSSPPSDL, openmw, openmw-launcher, jami-gnome, PCSX2, sum
  • bcompare, b2sum, cksum, md5sum, sha1sum, sha224sum, sha256sum
  • sha384sum, sha512sum, librewold-nightly, Quodlibet, tmux, sway
  • alienarena, alienarena-wrapper, ballbuster, ballbuster-wrapper,
  • colorful, colorful-wrapper, gl-117, gl-117-wrapper, glaxium,
  • glaxium-wrapper, pinball, pinball-wrapper, etr-wrapper, firedragon
  • neverball-wrapper, neverputt-wrapper, supertuxkart-wrapper, neochat,
  • cargo, LibreCAD, blobby, funnyboat, pipe-viewer, gtk-pipe-viewer
  • links2, xlinks2

Version 0.9.64.4

07 Feb 23:01
Compare
Choose a tag to compare
  • disabled overlayfs, pending multiple fixes

Version 0.9.64.2

28 Jan 18:24
Compare
Choose a tag to compare
  • allow --tmpfs inside $HOME for unprivileged users
  • --disable-usertmpfs compile time option
  • allow AF_BLUETOOTH via --protocol=bluetooth
  • Setup guide for new users: contrib/firejail-welcome.sh
  • implement netns in profiles
  • added nolocal6.net IPv6 network filter
  • new profiles: spectacle, chromium-browser-privacy, gtk-straw-viewer
  • new profiles: gtk-youtube-viewer, gtk2-youtube-viewer, gtk3-youtube-viewer
  • new profiles: straw-viewer, lutris, dolphin-emu, authenticator-rs, servo
  • new profiles: npm, marker, yarn, lsar, unar, agetpkg, mdr, shotwell, qnapi
  • new profiles: guvcview, pkglog, kdiff3, CoyIM

Version 0.9.64

22 Oct 14:32
Compare
Choose a tag to compare
  • replaced --nowrap option with --wrap in firemon
  • The blocking action of seccomp filters has been changed from
    killing the process to returning EPERM to the caller. To get the
    previous behaviour, use --seccomp-error-action=kill or
    syscall:kill syntax when constructing filters, or override in
    /etc/firejail/firejail.config file.
  • Fine-grained D-Bus sandboxing with xdg-dbus-proxy.
    xdg-dbus-proxy must be installed, if not D-Bus access will be allowed.
    With this version nodbus is deprecated, in favor of dbus-user none and
    dbus-system none and will be removed in a future version.
  • DHCP client support
  • firecfg only fix dektop-files if started with sudo
  • SELinux labeling support
  • custom 32-bit seccomp filter support
  • restrict ${RUNUSER} in several profiles
  • blacklist shells such as bash in several profiles
  • whitelist globbing
  • mkdir and mkfile support for /run/user directory
  • support ignore for include
  • --include on the command line
  • splitting up media players whitelists in whitelist-players.inc
  • new condition: HAS_NOSOUND
  • new profiles: gfeeds, firefox-x11, tvbrowser, rtv, clipgrab, muraster
  • new profiles: gnome-passwordsafe, bibtex, gummi, latex, mupdf-x11-curl
  • new profiles: pdflatex, tex, wpp, wpspdf, wps, et, multimc, mupdf-x11
  • new profiles: gnome-hexgl, com.github.johnfactotum.Foliate, mupdf-gl, mutool
  • new profiles: desktopeditors, impressive, planmaker18, planmaker18free
  • new profiles: presentations18, presentations18free, textmaker18, teams
  • new profiles: textmaker18free, xournal, gnome-screenshot, ripperX
  • new profiles: sound-juicer, com.github.dahenson.agenda, gnome-pomodoro
  • new profiles: gnome-todo, x2goclient, iagno, kmplayer, penguin-command
  • new profiles: frogatto, gnome-mines, gnome-nibbles, lightsoff, warmux
  • new profiles: ts3client_runscript.sh, ferdi, abiword, four-in-a-row
  • new profiles: gnome-mahjongg, gnome-robots, gnome-sudoku, gnome-taquin
  • new profiles: gnome-tetravex, blobwars, gravity-beams-and-evaporating-stars
  • new profiles: hyperrogue, jumpnbump-menu, jumpnbump, magicor, mindless
  • new profiles: mirrormagic, mrrescue, scorched3d-wrapper, scorchwentbonkers
  • new profiles: seahorse-adventures, wordwarvi, xbill, gnome-klotski
  • new profiles: swell-foop, fdns, five-or-more, steam-runtime
  • new profiles: nicotine, plv, mocp, apostrophe, quadrapassel, dino-im
  • new profiles: hitori, bijiben, gnote, gnubik, ZeGrapher, xonotic-sdl-wrapper
  • new profiles: gapplication, openarena_ded, element-desktop, cawbird
  • new profiles: freetube, strawberry, jitsi-meet-desktop
  • new profiles: homebank, mattermost-desktop, newsflash, com.gitlab.newsflash
  • new profiles: sushi, xfce4-screenshooter, org.gnome.NautilusPreviewer, lyx
  • new profiles: minitube, nuclear, mtpaint, minecraft-launcher, gnome-calendar
  • new profiles: vmware, git-cola, otter-browser, kazam, menulibre, musictube
  • new profiles: onboard, fractal, mirage, quaternion, spectral, man, psi
  • new profiles: smuxi-frontend-gnome, balsa, kube, trojita, youtube
  • new profiles: youtubemusic-nativefier, cola, dbus-send, notify-send
  • new profiles: qrencode, ytmdesktop, twitch
  • new profiles: xournalpp, chromium-freeworld, equalx

Version 0.9.64rc1

05 Oct 12:26
Compare
Choose a tag to compare
Version 0.9.64rc1 Pre-release
Pre-release

This is a test release for upcoming 0.9.64 version.

  • replaced --nowrap option with --wrap in firemon
  • The blocking action of seccomp filters has been changed from
    killing the process to returning EPERM to the caller. To get the
    previous behaviour, use --seccomp-error-action=kill or
    syscall:kill syntax when constructing filters, or override in
    /etc/firejail/firejail.config file.
  • Fine-grained D-Bus sandboxing with xdg-dbus-proxy.
    xdg-dbus-proxy must be installed, if not D-Bus access will be allowed.
    With this version nodbus is deprecated, in favor of dbus-user none and
    dbus-system none and will be removed in a future version.
  • DHCP client support
  • firecfg only fix dektop-files if started with sudo
  • SELinux labeling support
  • custom 32-bit seccomp filter support
  • restrict ${RUNUSER} in several profiles
  • blacklist shells such as bash in several profiles
  • whitelist globbing
  • mkdir and mkfile support for /run/user directory
  • support ignore for include
  • --include on the command line
  • splitting up media players whitelists in whitelist-players.inc
  • new condition: HAS_NOSOUND
  • new profiles: gfeeds, firefox-x11, tvbrowser, rtv, clipgrab, muraster
  • new profiles: gnome-passwordsafe, bibtex, gummi, latex, mupdf-x11-curl
  • new profiles: pdflatex, tex, wpp, wpspdf, wps, et, multimc, mupdf-x11
  • new profiles: gnome-hexgl, com.github.johnfactotum.Foliate, mupdf-gl, mutool
  • new profiles: desktopeditors, impressive, planmaker18, planmaker18free
  • new profiles: presentations18, presentations18free, textmaker18, teams
  • new profiles: textmaker18free, xournal, gnome-screenshot, ripperX
  • new profiles: sound-juicer, com.github.dahenson.agenda, gnome-pomodoro
  • new profiles: gnome-todo, x2goclient, iagno, kmplayer, penguin-command
  • new profiles: frogatto, gnome-mines, gnome-nibbles, lightsoff, warmux
  • new profiles: ts3client_runscript.sh, ferdi, abiword, four-in-a-row
  • new profiles: gnome-mahjongg, gnome-robots, gnome-sudoku, gnome-taquin
  • new profiles: gnome-tetravex, blobwars, gravity-beams-and-evaporating-stars
  • new profiles: hyperrogue, jumpnbump-menu, jumpnbump, magicor, mindless
  • new profiles: mirrormagic, mrrescue, scorched3d-wrapper, scorchwentbonkers
  • new profiles: seahorse-adventures, wordwarvi, xbill, gnome-klotski
  • new profiles: swell-foop, fdns, five-or-more, steam-runtime
  • new profiles: nicotine, plv, mocp, apostrophe, quadrapassel, dino-im
  • new profiles: hitori, bijiben, gnote, gnubik, ZeGrapher, xonotic-sdl-wrapper
  • new profiles: gapplication, openarena_ded, element-desktop, cawbird
  • new profiles: freetube, strawberry, jitsi-meet-desktop
  • new profiles: homebank, mattermost-desktop, newsflash, com.gitlab.newsflash
  • new profiles: sushi, xfce4-screenshooter, org.gnome.NautilusPreviewer, lyx
  • new profiles: minitube, nuclear, mtpaint, minecraft-launcher, gnome-calendar
  • new profiles: vmware, git-cola, otter-browser, kazam, menulibre, musictube
  • new profiles: onboard, fractal, mirage, quaternion, spectral, man, psi
  • new profiles: smuxi-frontend-gnome, balsa, kube, trojita, youtube
  • new profiles: youtubemusic-nativefier, cola, dbus-send, notify-send
  • new profiles: qrencode, ytmdesktop, twitch
  • new profiles: xournalpp, chromium-freeworld, equalx