[GH-ISSUE #631] Firefox hardware acceleration? #436

Closed
opened 2026-05-05 05:51:31 -06:00 by gitea-mirror · 6 comments
Owner

Originally created by @haasn on GitHub (Jul 13, 2016).
Original GitHub issue: https://github.com/netblue30/firejail/issues/631

This is mostly a question.

Is it by design that firejail completely disables firefox hardware acceleration? In about:support I just get this:

Adapter Description: GLXtest process failed (exited with status 1): X error occurred in GLX probe, error_code=2, request_code=153, minor_code=3

I slowly and painstakingly bisected the firefox profile and found out that to get hardware acceleration to work I had to disable all four of these, as each one in isolation was enough to trigger the breakage:

firefox.profile

#seccomp
#protocol unix,inet,inet6,netlink
...
#nonewprivs
#noroot

I'm aware that exposing firefox to a proprietary graphics adapter (nvidia blob) is basically the equivalent of giving anybody on the internet root access to your system, so I'm guessing this is by design?

Even if it's intentional, it might be worth adding a comment or something at least, so users who don't want to suffer through a slow, stuttery and laggy firefox know what to disable and what risk they put themselves to in doing so. Personally, I've gotten used to firefox being very slow so it's not a huge deal.

Originally created by @haasn on GitHub (Jul 13, 2016). Original GitHub issue: https://github.com/netblue30/firejail/issues/631 This is mostly a question. Is it by design that firejail completely disables firefox hardware acceleration? In `about:support` I just get this: ``` Adapter Description: GLXtest process failed (exited with status 1): X error occurred in GLX probe, error_code=2, request_code=153, minor_code=3 ``` I slowly and painstakingly bisected the firefox profile and found out that to get hardware acceleration to work I had to disable all four of these, as each one in isolation was enough to trigger the breakage: firefox.profile ``` #seccomp #protocol unix,inet,inet6,netlink ... #nonewprivs #noroot ``` I'm aware that exposing firefox to a proprietary graphics adapter (nvidia blob) is basically the equivalent of giving anybody on the internet root access to your system, so I'm guessing this is by design? Even if it's intentional, it might be worth adding a comment or something at least, so users who don't want to suffer through a slow, stuttery and laggy firefox know what to disable and what risk they put themselves to in doing so. Personally, I've gotten used to firefox being very slow so it's not a huge deal.
gitea-mirror 2026-05-05 05:51:31 -06:00
Author
Owner

@netblue30 commented on GitHub (Jul 13, 2016):

No, this is not true. On my setup (AMD A10 with a Radeon chipset integrated) it is detected fine:

Adapter Description: X.Org -- Gallium 0.4 on AMD KAVERI

nonewprivs gives us a clue: probably your graphics stack uses a SUID binary to bring up the driver. All 4 profile commands you listed are killing SUID executables. What card do you have?

<!-- gh-comment-id:232373236 --> @netblue30 commented on GitHub (Jul 13, 2016): No, this is not true. On my setup (AMD A10 with a Radeon chipset integrated) it is detected fine: ``` Adapter Description: X.Org -- Gallium 0.4 on AMD KAVERI ``` nonewprivs gives us a clue: probably your graphics stack uses a SUID binary to bring up the driver. All 4 profile commands you listed are killing SUID executables. What card do you have?
Author
Owner

@haasn commented on GitHub (Jul 13, 2016):

It's an NVIDIA GTX 970 with the proprietary drivers (version 367.27). The packages contents are as follows:

/etc
/etc/OpenCL
/etc/OpenCL/vendors
/etc/OpenCL/vendors/nvidia.icd
/etc/X11
/etc/X11/xinit
/etc/X11/xinit/xinitrc.d
/etc/X11/xinit/xinitrc.d/95-nvidia-settings
/etc/conf.d
/etc/conf.d/nvidia-persistenced
/etc/init.d
/etc/init.d/nvidia-persistenced
/etc/init.d/nvidia-smi
/etc/modprobe.d
/etc/modprobe.d/nvidia-rmmod.conf
/etc/modprobe.d/nvidia.conf
/etc/nvidia
/etc/nvidia/nvidia-application-profiles-rc
/etc/vulkan
/etc/vulkan/icd.d
/etc/vulkan/icd.d/nvidia_icd.json
/lib
/lib/modules
/lib/modules/4.5.7-hardened-r7-gnu
/lib/modules/4.5.7-hardened-r7-gnu/video
/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-drm.ko
/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-modeset.ko
/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-uvm.ko
/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia.ko
/lib/udev
/lib/udev/nvidia-udev.sh
/lib/udev/rules.d
/lib/udev/rules.d/99-nvidia.rules
/opt
/opt/bin
/opt/bin/nvidia-cuda-mps-control
/opt/bin/nvidia-cuda-mps-server
/opt/bin/nvidia-debugdump
/opt/bin/nvidia-modprobe
/opt/bin/nvidia-persistenced
/opt/bin/nvidia-smi
/opt/bin/nvidia-xconfig
/usr
/usr/bin
/usr/bin/nvidia-bug-report.sh
/usr/bin/nvidia-modprobe
/usr/bin/nvidia-settings
/usr/lib
/usr/lib/debug
/usr/lib/debug/.build-id
/usr/lib/debug/.build-id/04
/usr/lib/debug/.build-id/04/8819431364a96efe86a30661659ddd6985f9fe
/usr/lib/debug/.build-id/04/8819431364a96efe86a30661659ddd6985f9fe.debug
/usr/lib/debug/.build-id/7a
/usr/lib/debug/.build-id/7a/5376ee87107cd96d3d8e4824f50b7152663224
/usr/lib/debug/.build-id/7a/5376ee87107cd96d3d8e4824f50b7152663224.debug
/usr/lib/debug/.build-id/bf
/usr/lib/debug/.build-id/bf/055172cb4ce68f974783c9f42a18af410c5058
/usr/lib/debug/.build-id/bf/055172cb4ce68f974783c9f42a18af410c5058.debug
/usr/lib/debug/.build-id/d1
/usr/lib/debug/.build-id/d1/5aa143aa84a7a3584679d025f0d7ab75ae48e4
/usr/lib/debug/.build-id/d1/5aa143aa84a7a3584679d025f0d7ab75ae48e4.debug
/usr/lib/debug/lib
/usr/lib/debug/lib/modules
/usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu
/usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video
/usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-drm.ko.debug
/usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-modeset.ko.debug
/usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-uvm.ko.debug
/usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia.ko.debug
/usr/lib/debug/usr
/usr/lib/debug/usr/bin
/usr/lib/debug/usr/bin/nvidia-settings.debug
/usr/lib/debug/usr/lib64
/usr/lib/debug/usr/lib64/libnvidia-gtk2.so.367.27.debug
/usr/lib/debug/usr/lib64/libnvidia-gtk3.so.367.27.debug
/usr/lib32
/usr/lib32/OpenCL
/usr/lib32/OpenCL/vendors
/usr/lib32/OpenCL/vendors/nvidia
/usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so
/usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1
/usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
/usr/lib32/libcuda.so
/usr/lib32/libcuda.so.1
/usr/lib32/libcuda.so.367.27
/usr/lib32/libnvcuvid.so
/usr/lib32/libnvcuvid.so.1
/usr/lib32/libnvcuvid.so.367.27
/usr/lib32/libnvidia-compiler.so
/usr/lib32/libnvidia-compiler.so.367.27
/usr/lib32/libnvidia-eglcore.so
/usr/lib32/libnvidia-eglcore.so.367.27
/usr/lib32/libnvidia-encode.so
/usr/lib32/libnvidia-encode.so.1
/usr/lib32/libnvidia-encode.so.367.27
/usr/lib32/libnvidia-fatbinaryloader.so
/usr/lib32/libnvidia-fatbinaryloader.so.367.27
/usr/lib32/libnvidia-fbc.so
/usr/lib32/libnvidia-fbc.so.1
/usr/lib32/libnvidia-fbc.so.367.27
/usr/lib32/libnvidia-glcore.so
/usr/lib32/libnvidia-glcore.so.367.27
/usr/lib32/libnvidia-glsi.so
/usr/lib32/libnvidia-glsi.so.367.27
/usr/lib32/libnvidia-ifr.so
/usr/lib32/libnvidia-ifr.so.1
/usr/lib32/libnvidia-ifr.so.367.27
/usr/lib32/libnvidia-ml.so
/usr/lib32/libnvidia-ml.so.1
/usr/lib32/libnvidia-ml.so.367.27
/usr/lib32/libnvidia-opencl.so
/usr/lib32/libnvidia-opencl.so.1
/usr/lib32/libnvidia-opencl.so.367.27
/usr/lib32/libnvidia-ptxjitcompiler.so
/usr/lib32/libnvidia-ptxjitcompiler.so.367.27
/usr/lib32/libnvidia-tls.so
/usr/lib32/libnvidia-tls.so.367.27
/usr/lib32/libvdpau_nvidia.so
/usr/lib32/libvdpau_nvidia.so.1
/usr/lib32/libvdpau_nvidia.so.367.27
/usr/lib32/opengl
/usr/lib32/opengl/nvidia
/usr/lib32/opengl/nvidia/lib
/usr/lib32/opengl/nvidia/lib/libEGL.so
/usr/lib32/opengl/nvidia/lib/libEGL.so.1
/usr/lib32/opengl/nvidia/lib/libEGL_nvidia.so
/usr/lib32/opengl/nvidia/lib/libEGL_nvidia.so.0
/usr/lib32/opengl/nvidia/lib/libEGL_nvidia.so.367.27
/usr/lib32/opengl/nvidia/lib/libGL.so
/usr/lib32/opengl/nvidia/lib/libGL.so.1
/usr/lib32/opengl/nvidia/lib/libGL.so.1.0.0
/usr/lib32/opengl/nvidia/lib/libGLESv1_CM.so
/usr/lib32/opengl/nvidia/lib/libGLESv1_CM.so.1
/usr/lib32/opengl/nvidia/lib/libGLESv1_CM_nvidia.so
/usr/lib32/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.1
/usr/lib32/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.367.27
/usr/lib32/opengl/nvidia/lib/libGLESv2.so
/usr/lib32/opengl/nvidia/lib/libGLESv2.so.2
/usr/lib32/opengl/nvidia/lib/libGLESv2_nvidia.so
/usr/lib32/opengl/nvidia/lib/libGLESv2_nvidia.so.2
/usr/lib32/opengl/nvidia/lib/libGLESv2_nvidia.so.367.27
/usr/lib32/opengl/nvidia/lib/libGLX.so
/usr/lib32/opengl/nvidia/lib/libGLX.so.0
/usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so
/usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so.0
/usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so.367.27
/usr/lib32/opengl/nvidia/lib/libGLdispatch.so
/usr/lib32/opengl/nvidia/lib/libGLdispatch.so.0
/usr/lib32/opengl/nvidia/lib/libOpenGL.so
/usr/lib32/opengl/nvidia/lib/libOpenGL.so.0
/usr/lib64
/usr/lib64/OpenCL
/usr/lib64/OpenCL/vendors
/usr/lib64/OpenCL/vendors/nvidia
/usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so
/usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so.1
/usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0
/usr/lib64/libcuda.so
/usr/lib64/libcuda.so.1
/usr/lib64/libcuda.so.367.27
/usr/lib64/libnvcuvid.so
/usr/lib64/libnvcuvid.so.1
/usr/lib64/libnvcuvid.so.367.27
/usr/lib64/libnvidia-cfg.so
/usr/lib64/libnvidia-cfg.so.1
/usr/lib64/libnvidia-cfg.so.367.27
/usr/lib64/libnvidia-compiler.so
/usr/lib64/libnvidia-compiler.so.367.27
/usr/lib64/libnvidia-eglcore.so
/usr/lib64/libnvidia-eglcore.so.367.27
/usr/lib64/libnvidia-encode.so
/usr/lib64/libnvidia-encode.so.1
/usr/lib64/libnvidia-encode.so.367.27
/usr/lib64/libnvidia-fatbinaryloader.so
/usr/lib64/libnvidia-fatbinaryloader.so.367.27
/usr/lib64/libnvidia-fbc.so
/usr/lib64/libnvidia-fbc.so.1
/usr/lib64/libnvidia-fbc.so.367.27
/usr/lib64/libnvidia-glcore.so
/usr/lib64/libnvidia-glcore.so.367.27
/usr/lib64/libnvidia-glsi.so
/usr/lib64/libnvidia-glsi.so.367.27
/usr/lib64/libnvidia-gtk2.so.367.27
/usr/lib64/libnvidia-gtk3.so.367.27
/usr/lib64/libnvidia-ifr.so
/usr/lib64/libnvidia-ifr.so.1
/usr/lib64/libnvidia-ifr.so.367.27
/usr/lib64/libnvidia-ml.so
/usr/lib64/libnvidia-ml.so.1
/usr/lib64/libnvidia-ml.so.367.27
/usr/lib64/libnvidia-opencl.so
/usr/lib64/libnvidia-opencl.so.1
/usr/lib64/libnvidia-opencl.so.367.27
/usr/lib64/libnvidia-ptxjitcompiler.so
/usr/lib64/libnvidia-ptxjitcompiler.so.367.27
/usr/lib64/libnvidia-tls.so
/usr/lib64/libnvidia-tls.so.367.27
/usr/lib64/libnvidia-wfb.so
/usr/lib64/libnvidia-wfb.so.1
/usr/lib64/libnvidia-wfb.so.367.27
/usr/lib64/libvdpau_nvidia.so
/usr/lib64/libvdpau_nvidia.so.1
/usr/lib64/libvdpau_nvidia.so.367.27
/usr/lib64/opengl
/usr/lib64/opengl/nvidia
/usr/lib64/opengl/nvidia/extensions
/usr/lib64/opengl/nvidia/extensions/libglx.so
/usr/lib64/opengl/nvidia/extensions/libglx.so.367.27
/usr/lib64/opengl/nvidia/lib
/usr/lib64/opengl/nvidia/lib/libEGL.so
/usr/lib64/opengl/nvidia/lib/libEGL.so.1
/usr/lib64/opengl/nvidia/lib/libEGL_nvidia.so
/usr/lib64/opengl/nvidia/lib/libEGL_nvidia.so.0
/usr/lib64/opengl/nvidia/lib/libEGL_nvidia.so.367.27
/usr/lib64/opengl/nvidia/lib/libGL.so
/usr/lib64/opengl/nvidia/lib/libGL.so.1
/usr/lib64/opengl/nvidia/lib/libGL.so.1.0.0
/usr/lib64/opengl/nvidia/lib/libGLESv1_CM.so
/usr/lib64/opengl/nvidia/lib/libGLESv1_CM.so.1
/usr/lib64/opengl/nvidia/lib/libGLESv1_CM_nvidia.so
/usr/lib64/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.1
/usr/lib64/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.367.27
/usr/lib64/opengl/nvidia/lib/libGLESv2.so
/usr/lib64/opengl/nvidia/lib/libGLESv2.so.2
/usr/lib64/opengl/nvidia/lib/libGLESv2_nvidia.so
/usr/lib64/opengl/nvidia/lib/libGLESv2_nvidia.so.2
/usr/lib64/opengl/nvidia/lib/libGLESv2_nvidia.so.367.27
/usr/lib64/opengl/nvidia/lib/libGLX.so
/usr/lib64/opengl/nvidia/lib/libGLX.so.0
/usr/lib64/opengl/nvidia/lib/libGLX_nvidia.so
/usr/lib64/opengl/nvidia/lib/libGLX_nvidia.so.0
/usr/lib64/opengl/nvidia/lib/libGLX_nvidia.so.367.27
/usr/lib64/opengl/nvidia/lib/libGLdispatch.so
/usr/lib64/opengl/nvidia/lib/libGLdispatch.so.0
/usr/lib64/opengl/nvidia/lib/libOpenGL.so
/usr/lib64/opengl/nvidia/lib/libOpenGL.so.0
/usr/lib64/xorg
/usr/lib64/xorg/modules
/usr/lib64/xorg/modules/drivers
/usr/lib64/xorg/modules/drivers/nvidia_drv.so
/usr/share
/usr/share/X11
/usr/share/X11/xorg.conf.d
/usr/share/X11/xorg.conf.d/50-nvidia-drm-outputclass.conf
/usr/share/applications
/usr/share/applications/nvidia-settings.desktop
/usr/share/doc
/usr/share/doc/nvidia-drivers-367.27
/usr/share/doc/nvidia-drivers-367.27/NVIDIA_Changelog.bz2
/usr/share/doc/nvidia-drivers-367.27/README.bz2
/usr/share/doc/nvidia-drivers-367.27/README.gentoo.bz2
/usr/share/doc/nvidia-drivers-367.27/html
/usr/share/doc/nvidia-drivers-367.27/html/acknowledgements.html
/usr/share/doc/nvidia-drivers-367.27/html/addressingcapabilities.html
/usr/share/doc/nvidia-drivers-367.27/html/addtlresources.html
/usr/share/doc/nvidia-drivers-367.27/html/appendices.html
/usr/share/doc/nvidia-drivers-367.27/html/audiosupport.html
/usr/share/doc/nvidia-drivers-367.27/html/commonproblems.html
/usr/share/doc/nvidia-drivers-367.27/html/configlaptop.html
/usr/share/doc/nvidia-drivers-367.27/html/configmultxscreens.html
/usr/share/doc/nvidia-drivers-367.27/html/configtwinview.html
/usr/share/doc/nvidia-drivers-367.27/html/depth30.html
/usr/share/doc/nvidia-drivers-367.27/html/displaydevicenames.html
/usr/share/doc/nvidia-drivers-367.27/html/dma_issues.html
/usr/share/doc/nvidia-drivers-367.27/html/dpi.html
/usr/share/doc/nvidia-drivers-367.27/html/editxconfig.html
/usr/share/doc/nvidia-drivers-367.27/html/faq.html
/usr/share/doc/nvidia-drivers-367.27/html/flippingubb.html
/usr/share/doc/nvidia-drivers-367.27/html/framelock.html
/usr/share/doc/nvidia-drivers-367.27/html/glxsupport.html
/usr/share/doc/nvidia-drivers-367.27/html/gpunames.html
/usr/share/doc/nvidia-drivers-367.27/html/i2c.html
/usr/share/doc/nvidia-drivers-367.27/html/index.html
/usr/share/doc/nvidia-drivers-367.27/html/installationandconfiguration.html
/usr/share/doc/nvidia-drivers-367.27/html/installdriver.html
/usr/share/doc/nvidia-drivers-367.27/html/installedcomponents.html
/usr/share/doc/nvidia-drivers-367.27/html/introduction.html
/usr/share/doc/nvidia-drivers-367.27/html/kms.html
/usr/share/doc/nvidia-drivers-367.27/html/knownissues.html
/usr/share/doc/nvidia-drivers-367.27/html/minimumrequirements.html
/usr/share/doc/nvidia-drivers-367.27/html/newusertips.html
/usr/share/doc/nvidia-drivers-367.27/html/nvidia-debugdump.html
/usr/share/doc/nvidia-drivers-367.27/html/nvidia-ml.html
/usr/share/doc/nvidia-drivers-367.27/html/nvidia-persistenced.html
/usr/share/doc/nvidia-drivers-367.27/html/nvidia-smi.html
/usr/share/doc/nvidia-drivers-367.27/html/nvidiasettings.html
/usr/share/doc/nvidia-drivers-367.27/html/openglenvvariables.html
/usr/share/doc/nvidia-drivers-367.27/html/optimus.html
/usr/share/doc/nvidia-drivers-367.27/html/powermanagement.html
/usr/share/doc/nvidia-drivers-367.27/html/procinterface.html
/usr/share/doc/nvidia-drivers-367.27/html/profiles.html
/usr/share/doc/nvidia-drivers-367.27/html/programmingmodes.html
/usr/share/doc/nvidia-drivers-367.27/html/randr14.html
/usr/share/doc/nvidia-drivers-367.27/html/sdi.html
/usr/share/doc/nvidia-drivers-367.27/html/selectdriver.html
/usr/share/doc/nvidia-drivers-367.27/html/sli.html
/usr/share/doc/nvidia-drivers-367.27/html/supportedchips.html
/usr/share/doc/nvidia-drivers-367.27/html/vdpausupport.html
/usr/share/doc/nvidia-drivers-367.27/html/xcompositeextension.html
/usr/share/doc/nvidia-drivers-367.27/html/xconfigoptions.html
/usr/share/doc/nvidia-drivers-367.27/html/xineramaglx.html
/usr/share/doc/nvidia-drivers-367.27/html/xrandrextension.html
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/nvidia-cuda-mps-control.1.bz2
/usr/share/man/man1/nvidia-modprobe.1.bz2
/usr/share/man/man1/nvidia-persistenced.1.bz2
/usr/share/man/man1/nvidia-settings.1.bz2
/usr/share/man/man1/nvidia-smi.1.bz2
/usr/share/man/man1/nvidia-xconfig.1.bz2
/usr/share/nvidia
/usr/share/nvidia/nvidia-application-profiles-367.27-key-documentation
/usr/share/pixmaps
/usr/share/pixmaps/nvidia-settings.png

Of the libraries in /usr/lib64/ that I checked, none were setuid, so I'm not sure what exact path firefox is trying to traverse here. That said, I'm using a PaX kernel and programs that wish to use the nvidia drivers do require MPROTECT to be disabled, since the OpenGL drivers require an executable stack for reasons unknown to me.

<!-- gh-comment-id:232505790 --> @haasn commented on GitHub (Jul 13, 2016): It's an NVIDIA GTX 970 with the proprietary drivers (version 367.27). The packages contents are as follows: ``` /etc /etc/OpenCL /etc/OpenCL/vendors /etc/OpenCL/vendors/nvidia.icd /etc/X11 /etc/X11/xinit /etc/X11/xinit/xinitrc.d /etc/X11/xinit/xinitrc.d/95-nvidia-settings /etc/conf.d /etc/conf.d/nvidia-persistenced /etc/init.d /etc/init.d/nvidia-persistenced /etc/init.d/nvidia-smi /etc/modprobe.d /etc/modprobe.d/nvidia-rmmod.conf /etc/modprobe.d/nvidia.conf /etc/nvidia /etc/nvidia/nvidia-application-profiles-rc /etc/vulkan /etc/vulkan/icd.d /etc/vulkan/icd.d/nvidia_icd.json /lib /lib/modules /lib/modules/4.5.7-hardened-r7-gnu /lib/modules/4.5.7-hardened-r7-gnu/video /lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-drm.ko /lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-modeset.ko /lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-uvm.ko /lib/modules/4.5.7-hardened-r7-gnu/video/nvidia.ko /lib/udev /lib/udev/nvidia-udev.sh /lib/udev/rules.d /lib/udev/rules.d/99-nvidia.rules /opt /opt/bin /opt/bin/nvidia-cuda-mps-control /opt/bin/nvidia-cuda-mps-server /opt/bin/nvidia-debugdump /opt/bin/nvidia-modprobe /opt/bin/nvidia-persistenced /opt/bin/nvidia-smi /opt/bin/nvidia-xconfig /usr /usr/bin /usr/bin/nvidia-bug-report.sh /usr/bin/nvidia-modprobe /usr/bin/nvidia-settings /usr/lib /usr/lib/debug /usr/lib/debug/.build-id /usr/lib/debug/.build-id/04 /usr/lib/debug/.build-id/04/8819431364a96efe86a30661659ddd6985f9fe /usr/lib/debug/.build-id/04/8819431364a96efe86a30661659ddd6985f9fe.debug /usr/lib/debug/.build-id/7a /usr/lib/debug/.build-id/7a/5376ee87107cd96d3d8e4824f50b7152663224 /usr/lib/debug/.build-id/7a/5376ee87107cd96d3d8e4824f50b7152663224.debug /usr/lib/debug/.build-id/bf /usr/lib/debug/.build-id/bf/055172cb4ce68f974783c9f42a18af410c5058 /usr/lib/debug/.build-id/bf/055172cb4ce68f974783c9f42a18af410c5058.debug /usr/lib/debug/.build-id/d1 /usr/lib/debug/.build-id/d1/5aa143aa84a7a3584679d025f0d7ab75ae48e4 /usr/lib/debug/.build-id/d1/5aa143aa84a7a3584679d025f0d7ab75ae48e4.debug /usr/lib/debug/lib /usr/lib/debug/lib/modules /usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu /usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video /usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-drm.ko.debug /usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-modeset.ko.debug /usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia-uvm.ko.debug /usr/lib/debug/lib/modules/4.5.7-hardened-r7-gnu/video/nvidia.ko.debug /usr/lib/debug/usr /usr/lib/debug/usr/bin /usr/lib/debug/usr/bin/nvidia-settings.debug /usr/lib/debug/usr/lib64 /usr/lib/debug/usr/lib64/libnvidia-gtk2.so.367.27.debug /usr/lib/debug/usr/lib64/libnvidia-gtk3.so.367.27.debug /usr/lib32 /usr/lib32/OpenCL /usr/lib32/OpenCL/vendors /usr/lib32/OpenCL/vendors/nvidia /usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so /usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1 /usr/lib32/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0 /usr/lib32/libcuda.so /usr/lib32/libcuda.so.1 /usr/lib32/libcuda.so.367.27 /usr/lib32/libnvcuvid.so /usr/lib32/libnvcuvid.so.1 /usr/lib32/libnvcuvid.so.367.27 /usr/lib32/libnvidia-compiler.so /usr/lib32/libnvidia-compiler.so.367.27 /usr/lib32/libnvidia-eglcore.so /usr/lib32/libnvidia-eglcore.so.367.27 /usr/lib32/libnvidia-encode.so /usr/lib32/libnvidia-encode.so.1 /usr/lib32/libnvidia-encode.so.367.27 /usr/lib32/libnvidia-fatbinaryloader.so /usr/lib32/libnvidia-fatbinaryloader.so.367.27 /usr/lib32/libnvidia-fbc.so /usr/lib32/libnvidia-fbc.so.1 /usr/lib32/libnvidia-fbc.so.367.27 /usr/lib32/libnvidia-glcore.so /usr/lib32/libnvidia-glcore.so.367.27 /usr/lib32/libnvidia-glsi.so /usr/lib32/libnvidia-glsi.so.367.27 /usr/lib32/libnvidia-ifr.so /usr/lib32/libnvidia-ifr.so.1 /usr/lib32/libnvidia-ifr.so.367.27 /usr/lib32/libnvidia-ml.so /usr/lib32/libnvidia-ml.so.1 /usr/lib32/libnvidia-ml.so.367.27 /usr/lib32/libnvidia-opencl.so /usr/lib32/libnvidia-opencl.so.1 /usr/lib32/libnvidia-opencl.so.367.27 /usr/lib32/libnvidia-ptxjitcompiler.so /usr/lib32/libnvidia-ptxjitcompiler.so.367.27 /usr/lib32/libnvidia-tls.so /usr/lib32/libnvidia-tls.so.367.27 /usr/lib32/libvdpau_nvidia.so /usr/lib32/libvdpau_nvidia.so.1 /usr/lib32/libvdpau_nvidia.so.367.27 /usr/lib32/opengl /usr/lib32/opengl/nvidia /usr/lib32/opengl/nvidia/lib /usr/lib32/opengl/nvidia/lib/libEGL.so /usr/lib32/opengl/nvidia/lib/libEGL.so.1 /usr/lib32/opengl/nvidia/lib/libEGL_nvidia.so /usr/lib32/opengl/nvidia/lib/libEGL_nvidia.so.0 /usr/lib32/opengl/nvidia/lib/libEGL_nvidia.so.367.27 /usr/lib32/opengl/nvidia/lib/libGL.so /usr/lib32/opengl/nvidia/lib/libGL.so.1 /usr/lib32/opengl/nvidia/lib/libGL.so.1.0.0 /usr/lib32/opengl/nvidia/lib/libGLESv1_CM.so /usr/lib32/opengl/nvidia/lib/libGLESv1_CM.so.1 /usr/lib32/opengl/nvidia/lib/libGLESv1_CM_nvidia.so /usr/lib32/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.1 /usr/lib32/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.367.27 /usr/lib32/opengl/nvidia/lib/libGLESv2.so /usr/lib32/opengl/nvidia/lib/libGLESv2.so.2 /usr/lib32/opengl/nvidia/lib/libGLESv2_nvidia.so /usr/lib32/opengl/nvidia/lib/libGLESv2_nvidia.so.2 /usr/lib32/opengl/nvidia/lib/libGLESv2_nvidia.so.367.27 /usr/lib32/opengl/nvidia/lib/libGLX.so /usr/lib32/opengl/nvidia/lib/libGLX.so.0 /usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so /usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so.0 /usr/lib32/opengl/nvidia/lib/libGLX_nvidia.so.367.27 /usr/lib32/opengl/nvidia/lib/libGLdispatch.so /usr/lib32/opengl/nvidia/lib/libGLdispatch.so.0 /usr/lib32/opengl/nvidia/lib/libOpenGL.so /usr/lib32/opengl/nvidia/lib/libOpenGL.so.0 /usr/lib64 /usr/lib64/OpenCL /usr/lib64/OpenCL/vendors /usr/lib64/OpenCL/vendors/nvidia /usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so /usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so.1 /usr/lib64/OpenCL/vendors/nvidia/libOpenCL.so.1.0.0 /usr/lib64/libcuda.so /usr/lib64/libcuda.so.1 /usr/lib64/libcuda.so.367.27 /usr/lib64/libnvcuvid.so /usr/lib64/libnvcuvid.so.1 /usr/lib64/libnvcuvid.so.367.27 /usr/lib64/libnvidia-cfg.so /usr/lib64/libnvidia-cfg.so.1 /usr/lib64/libnvidia-cfg.so.367.27 /usr/lib64/libnvidia-compiler.so /usr/lib64/libnvidia-compiler.so.367.27 /usr/lib64/libnvidia-eglcore.so /usr/lib64/libnvidia-eglcore.so.367.27 /usr/lib64/libnvidia-encode.so /usr/lib64/libnvidia-encode.so.1 /usr/lib64/libnvidia-encode.so.367.27 /usr/lib64/libnvidia-fatbinaryloader.so /usr/lib64/libnvidia-fatbinaryloader.so.367.27 /usr/lib64/libnvidia-fbc.so /usr/lib64/libnvidia-fbc.so.1 /usr/lib64/libnvidia-fbc.so.367.27 /usr/lib64/libnvidia-glcore.so /usr/lib64/libnvidia-glcore.so.367.27 /usr/lib64/libnvidia-glsi.so /usr/lib64/libnvidia-glsi.so.367.27 /usr/lib64/libnvidia-gtk2.so.367.27 /usr/lib64/libnvidia-gtk3.so.367.27 /usr/lib64/libnvidia-ifr.so /usr/lib64/libnvidia-ifr.so.1 /usr/lib64/libnvidia-ifr.so.367.27 /usr/lib64/libnvidia-ml.so /usr/lib64/libnvidia-ml.so.1 /usr/lib64/libnvidia-ml.so.367.27 /usr/lib64/libnvidia-opencl.so /usr/lib64/libnvidia-opencl.so.1 /usr/lib64/libnvidia-opencl.so.367.27 /usr/lib64/libnvidia-ptxjitcompiler.so /usr/lib64/libnvidia-ptxjitcompiler.so.367.27 /usr/lib64/libnvidia-tls.so /usr/lib64/libnvidia-tls.so.367.27 /usr/lib64/libnvidia-wfb.so /usr/lib64/libnvidia-wfb.so.1 /usr/lib64/libnvidia-wfb.so.367.27 /usr/lib64/libvdpau_nvidia.so /usr/lib64/libvdpau_nvidia.so.1 /usr/lib64/libvdpau_nvidia.so.367.27 /usr/lib64/opengl /usr/lib64/opengl/nvidia /usr/lib64/opengl/nvidia/extensions /usr/lib64/opengl/nvidia/extensions/libglx.so /usr/lib64/opengl/nvidia/extensions/libglx.so.367.27 /usr/lib64/opengl/nvidia/lib /usr/lib64/opengl/nvidia/lib/libEGL.so /usr/lib64/opengl/nvidia/lib/libEGL.so.1 /usr/lib64/opengl/nvidia/lib/libEGL_nvidia.so /usr/lib64/opengl/nvidia/lib/libEGL_nvidia.so.0 /usr/lib64/opengl/nvidia/lib/libEGL_nvidia.so.367.27 /usr/lib64/opengl/nvidia/lib/libGL.so /usr/lib64/opengl/nvidia/lib/libGL.so.1 /usr/lib64/opengl/nvidia/lib/libGL.so.1.0.0 /usr/lib64/opengl/nvidia/lib/libGLESv1_CM.so /usr/lib64/opengl/nvidia/lib/libGLESv1_CM.so.1 /usr/lib64/opengl/nvidia/lib/libGLESv1_CM_nvidia.so /usr/lib64/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.1 /usr/lib64/opengl/nvidia/lib/libGLESv1_CM_nvidia.so.367.27 /usr/lib64/opengl/nvidia/lib/libGLESv2.so /usr/lib64/opengl/nvidia/lib/libGLESv2.so.2 /usr/lib64/opengl/nvidia/lib/libGLESv2_nvidia.so /usr/lib64/opengl/nvidia/lib/libGLESv2_nvidia.so.2 /usr/lib64/opengl/nvidia/lib/libGLESv2_nvidia.so.367.27 /usr/lib64/opengl/nvidia/lib/libGLX.so /usr/lib64/opengl/nvidia/lib/libGLX.so.0 /usr/lib64/opengl/nvidia/lib/libGLX_nvidia.so /usr/lib64/opengl/nvidia/lib/libGLX_nvidia.so.0 /usr/lib64/opengl/nvidia/lib/libGLX_nvidia.so.367.27 /usr/lib64/opengl/nvidia/lib/libGLdispatch.so /usr/lib64/opengl/nvidia/lib/libGLdispatch.so.0 /usr/lib64/opengl/nvidia/lib/libOpenGL.so /usr/lib64/opengl/nvidia/lib/libOpenGL.so.0 /usr/lib64/xorg /usr/lib64/xorg/modules /usr/lib64/xorg/modules/drivers /usr/lib64/xorg/modules/drivers/nvidia_drv.so /usr/share /usr/share/X11 /usr/share/X11/xorg.conf.d /usr/share/X11/xorg.conf.d/50-nvidia-drm-outputclass.conf /usr/share/applications /usr/share/applications/nvidia-settings.desktop /usr/share/doc /usr/share/doc/nvidia-drivers-367.27 /usr/share/doc/nvidia-drivers-367.27/NVIDIA_Changelog.bz2 /usr/share/doc/nvidia-drivers-367.27/README.bz2 /usr/share/doc/nvidia-drivers-367.27/README.gentoo.bz2 /usr/share/doc/nvidia-drivers-367.27/html /usr/share/doc/nvidia-drivers-367.27/html/acknowledgements.html /usr/share/doc/nvidia-drivers-367.27/html/addressingcapabilities.html /usr/share/doc/nvidia-drivers-367.27/html/addtlresources.html /usr/share/doc/nvidia-drivers-367.27/html/appendices.html /usr/share/doc/nvidia-drivers-367.27/html/audiosupport.html /usr/share/doc/nvidia-drivers-367.27/html/commonproblems.html /usr/share/doc/nvidia-drivers-367.27/html/configlaptop.html /usr/share/doc/nvidia-drivers-367.27/html/configmultxscreens.html /usr/share/doc/nvidia-drivers-367.27/html/configtwinview.html /usr/share/doc/nvidia-drivers-367.27/html/depth30.html /usr/share/doc/nvidia-drivers-367.27/html/displaydevicenames.html /usr/share/doc/nvidia-drivers-367.27/html/dma_issues.html /usr/share/doc/nvidia-drivers-367.27/html/dpi.html /usr/share/doc/nvidia-drivers-367.27/html/editxconfig.html /usr/share/doc/nvidia-drivers-367.27/html/faq.html /usr/share/doc/nvidia-drivers-367.27/html/flippingubb.html /usr/share/doc/nvidia-drivers-367.27/html/framelock.html /usr/share/doc/nvidia-drivers-367.27/html/glxsupport.html /usr/share/doc/nvidia-drivers-367.27/html/gpunames.html /usr/share/doc/nvidia-drivers-367.27/html/i2c.html /usr/share/doc/nvidia-drivers-367.27/html/index.html /usr/share/doc/nvidia-drivers-367.27/html/installationandconfiguration.html /usr/share/doc/nvidia-drivers-367.27/html/installdriver.html /usr/share/doc/nvidia-drivers-367.27/html/installedcomponents.html /usr/share/doc/nvidia-drivers-367.27/html/introduction.html /usr/share/doc/nvidia-drivers-367.27/html/kms.html /usr/share/doc/nvidia-drivers-367.27/html/knownissues.html /usr/share/doc/nvidia-drivers-367.27/html/minimumrequirements.html /usr/share/doc/nvidia-drivers-367.27/html/newusertips.html /usr/share/doc/nvidia-drivers-367.27/html/nvidia-debugdump.html /usr/share/doc/nvidia-drivers-367.27/html/nvidia-ml.html /usr/share/doc/nvidia-drivers-367.27/html/nvidia-persistenced.html /usr/share/doc/nvidia-drivers-367.27/html/nvidia-smi.html /usr/share/doc/nvidia-drivers-367.27/html/nvidiasettings.html /usr/share/doc/nvidia-drivers-367.27/html/openglenvvariables.html /usr/share/doc/nvidia-drivers-367.27/html/optimus.html /usr/share/doc/nvidia-drivers-367.27/html/powermanagement.html /usr/share/doc/nvidia-drivers-367.27/html/procinterface.html /usr/share/doc/nvidia-drivers-367.27/html/profiles.html /usr/share/doc/nvidia-drivers-367.27/html/programmingmodes.html /usr/share/doc/nvidia-drivers-367.27/html/randr14.html /usr/share/doc/nvidia-drivers-367.27/html/sdi.html /usr/share/doc/nvidia-drivers-367.27/html/selectdriver.html /usr/share/doc/nvidia-drivers-367.27/html/sli.html /usr/share/doc/nvidia-drivers-367.27/html/supportedchips.html /usr/share/doc/nvidia-drivers-367.27/html/vdpausupport.html /usr/share/doc/nvidia-drivers-367.27/html/xcompositeextension.html /usr/share/doc/nvidia-drivers-367.27/html/xconfigoptions.html /usr/share/doc/nvidia-drivers-367.27/html/xineramaglx.html /usr/share/doc/nvidia-drivers-367.27/html/xrandrextension.html /usr/share/man /usr/share/man/man1 /usr/share/man/man1/nvidia-cuda-mps-control.1.bz2 /usr/share/man/man1/nvidia-modprobe.1.bz2 /usr/share/man/man1/nvidia-persistenced.1.bz2 /usr/share/man/man1/nvidia-settings.1.bz2 /usr/share/man/man1/nvidia-smi.1.bz2 /usr/share/man/man1/nvidia-xconfig.1.bz2 /usr/share/nvidia /usr/share/nvidia/nvidia-application-profiles-367.27-key-documentation /usr/share/pixmaps /usr/share/pixmaps/nvidia-settings.png ``` Of the libraries in `/usr/lib64/` that I checked, none were setuid, so I'm not sure what exact path firefox is trying to traverse here. That said, I'm using a PaX kernel and programs that wish to use the nvidia drivers do require `MPROTECT` to be disabled, since the OpenGL drivers require an executable stack for reasons unknown to me.
Author
Owner

@netblue30 commented on GitHub (Jul 14, 2016):

Let's check what programs are started by firefox:

Close all firefox windows, open a new terminal, and as user root run:

# firemon | grep exec

After this, start firefox.

<!-- gh-comment-id:232723510 --> @netblue30 commented on GitHub (Jul 14, 2016): Let's check what programs are started by firefox: Close all firefox windows, open a new terminal, and as user root run: ``` # firemon | grep exec ``` After this, start firefox.
Author
Owner

@haasn commented on GitHub (Jul 14, 2016):

I don't get any output from that. I don't seem to get any output from firemon at all, except when starting it with a jail already running (I get its process printed to stdout and then nothing).

Even if I start a program inside firejail and then manually execute other binaries (e.g. /exec -n ls in weechat), I get no output from firemon. Is that normal?

I did have to build and load the connector module for it to run at all, maybe I'm missing some other kernel configuration.

Edit: I had a look at strace firemon and all it seems to be doing is this in an infinite loop:

socket(AF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR) = 3
bind(3, {sa_family=AF_NETLINK, pid=7808, groups=00000001}, 12) = 0
writev(3, [{"(\0\0\0\3\0\0\0\0\0\0\0\200\36\0\0", 16}, {"\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0", 20}, {"\1\0\0\0", 4}], 3) = 40
select(4, [3], NULL, NULL, {30, 0})     = 0 (Timeout)
select(4, [3], NULL, NULL, {30, 0}
...

Note: Another thing I could do is strace the exec calls of firefox itself, or turn on exec logging in grsec, or use auditd or something. But I'm probably not going to attempt the latter two soon.

<!-- gh-comment-id:232734501 --> @haasn commented on GitHub (Jul 14, 2016): I don't get any output from that. I don't seem to get any output from `firemon` at all, except when starting it with a jail already running (I get its process printed to stdout and then nothing). Even if I start a program inside firejail and then manually execute other binaries (e.g. `/exec -n ls` in weechat), I get no output from `firemon`. Is that normal? I did have to build and load the `connector` module for it to run at all, maybe I'm missing some other kernel configuration. Edit: I had a look at `strace firemon` and all it seems to be doing is this in an infinite loop: ``` socket(AF_NETLINK, SOCK_DGRAM, NETLINK_CONNECTOR) = 3 bind(3, {sa_family=AF_NETLINK, pid=7808, groups=00000001}, 12) = 0 writev(3, [{"(\0\0\0\3\0\0\0\0\0\0\0\200\36\0\0", 16}, {"\1\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\4\0\0\0", 20}, {"\1\0\0\0", 4}], 3) = 40 select(4, [3], NULL, NULL, {30, 0}) = 0 (Timeout) select(4, [3], NULL, NULL, {30, 0} ... ``` Note: Another thing I could do is strace the exec calls of firefox itself, or turn on exec logging in grsec, or use auditd or something. But I'm probably not going to attempt the latter two soon.
Author
Owner

@haasn commented on GitHub (Jul 14, 2016):

I checked strace -e trace=process /usr/bin/firefox and it performs no execve() calls whatsoever.

<!-- gh-comment-id:232739069 --> @haasn commented on GitHub (Jul 14, 2016): I checked `strace -e trace=process /usr/bin/firefox` and it performs no `execve()` calls whatsoever.
Author
Owner

@netblue30 commented on GitHub (Jul 14, 2016):

grep exec should report at least firefox starting in the sandbox, something like this:

15:29:42 exec 26385 (netblue) firejail /usr/lib/firefox-esr/firefox-esr 
15:29:42 exec 26388 (netblue) /bin/bash -c '/usr/lib/firefox-esr/firefox-esr'  
15:29:42 exec 26388 (netblue) /usr/lib/firefox-esr/firefox-esr 

Start firefox as "firejail firefox"

I checked strace -e trace=process /usr/bin/firefox

The environment in the jail is different, they might be starting some other programs.

<!-- gh-comment-id:232767074 --> @netblue30 commented on GitHub (Jul 14, 2016): grep exec should report at least firefox starting in the sandbox, something like this: ``` 15:29:42 exec 26385 (netblue) firejail /usr/lib/firefox-esr/firefox-esr 15:29:42 exec 26388 (netblue) /bin/bash -c '/usr/lib/firefox-esr/firefox-esr' 15:29:42 exec 26388 (netblue) /usr/lib/firefox-esr/firefox-esr ``` Start firefox as "firejail firefox" > I checked strace -e trace=process /usr/bin/firefox The environment in the jail is different, they might be starting some other programs.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/firejail#436
No description provided.