
Research
/Security News
Critical Vulnerability in NestJS Devtools: Localhost RCE via Sandbox Escape
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
github.com/sarus-suite/parallax
parallax turbocharges Podman on HPC systems by providing an efficient and read-only container image storage for parallel filesystems. With parallax, users can migrate images, leverage SquashFS, and manage distributed storage. parallax is a Go utility that directly uses the container storage libraries to ensure compatibility with Podman.
Parallax leverages existing container libraries for image handling, and a lightweight Bash wrapper to integrate SquashFS into Podman’s overlay driver—no C code or recompilation of Podman required.
go >= 1.24
libbtrfs-dev
device-mapper-devel
fuse-overlayfs
mksquashfs (with zstd support)
squashfuse >= 0.5.1 (with zstd support)
inotifywait
rsync
go mod tidy
go build -o parallax
podman \
--root "/path/to/your/podmanroot" \
--runroot "/path/to/runroot" \
pull docker.io/library/hello-world:linux
parallax \
--podmanRoot "/path/to/your/podmanroot" \
--roStoragePath "/path/to/your/nfs/parallax/store" \
--mksquashfsPath "/path/to/your/mksquashfs/binary" \
--log-level info \
--migrate \
--image docker.io/library/hello-world:linux
podman \
--root "/path/to/your/podmanroot" \
--runroot "/path/to/runroot" \
--storage-opt additionalimagestore=/path/nfs/parallax/store \
--storage-opt mount_program=/parallax_path/scripts/parallax-mount-program.sh \
run --rm docker.io/library/hello-world:linux
Note: using --storage-opt
cli option makes podman ignore the default storage configuration file.
podman \
--root "/path/to/your/podmanroot" \
--storage-opt additionalimagestore=/path/nfs/parallax/store \
images
parallax \
--podmanRoot "/path/to/your/podmanroot" \
--roStoragePath "/path/to/your/nfs/parallax/store" \
--mksquashfsPath "/path/to/your/mksquashfs/binary" \
--log-level info \
--rmi \
--image docker.io/library/hello-world:linux
Parallax is designed to work with Podman’s overlay storage, especially for parallel filesystems like NFS-backeds enhancing them with read-only SquashFS stores.
Use the provided script scripts/parallax-mount-program.sh
as the Podman overlay mount_program
. This enables:
--storage-opt mount_program=...
in PodmanLinux kernel & FUSE required
Parallax only works on Linux with a modern kernel and FUSE support. You must install both squashfuse
and fuse-overlayfs
.
Unmount delays
The mount program uses inotifywait
to detect container exit and unmount SquashFS layers. On very busy, NFS, or parallel-fs setups, unmounts may not be instantaneous.
Read-only store
All migrated images live in a read-only SquashFS store; container writes happen in an overlay “upper” layer. Do not manually delete .squash
side-cars directly, use the rmi command to prevent store corruption.
Image size reporting Podman reports only an empty layer size, not the actual compressed SquashFS image.
Logging path
By default, logs are written to /tmp/parallax-<UID>/mount_program.log
. Ensure this directory is writable and periodically cleaned to avoid filling /tmp
.
Rootless only Parallax has been tested only in a rootless Podman (user-namespace) setup. Running as root is untested and may require extra privileges.
Dynamic Linking Requirement Parallax relies on the containers/storage Go library in rootless mode, which depends on accessing the unshare system capability for user-namespace operations. This functionality is only available when the Parallax binary is dynamically linked (i.e., not statically compiled). Static binaries will produce start-up errors.
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
A flawed sandbox in @nestjs/devtools-integration lets attackers run code on your machine via CSRF, leading to full Remote Code Execution (RCE).
Product
Customize license detection with Socket’s new license overlays: gain control, reduce noise, and handle edge cases with precision.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.