Go · github.com/apptainer/apptainer
Apptainer has incorrect path matching for 'limit container paths' directive
The limit container paths directive in apptainer.conf is intended to allow a system administrator limit the paths from which containers can be run, under setuid mode. Due to incorrect matching of a path string, sibling directories with similar names may incorrectly be allowed.
For example, the configuration:
limit container paths = /data/safe
Will also allow containers in /data/safe-but-unsafe to be run.
The issue is patched in apptainer version 1.5.1.
If developers do not use setuid mode or do not use the limit container paths functionality, then this issue does not affect their installation. Note that, as documented [1], if user namespaces are allowed for unrestricted use then this functionality does not stop users from running any container of their choice.
If developers do use the limit container paths functionality they are advised to update.
This vulnerability was discovered and disclosed to the Apptainer project by Dave Trudgian of Sylabs.
[1] https://apptainer.org/docs/admin/latest/configfiles.html#limiting-container-execution
Is your project exposed to this? Stateward checks every dependency on every pull request and flags it only if your code actually reaches it.
Check my repoSources: CISA KEV (public domain), OSV.dev & GitHub Advisory Database (CC-BY-4.0), FIRST EPSS, NVD/CWE (public domain). Served live from the Stateward advisory database.