📖 ~4 min read • Source: SUSE advisory openSUSE-SU-2025:14663-1
Related CVEs: CVE-2023-45133 CVE-2023-0242 CVE-2023-1732 CVE-2023-45683 CVE-2023-46234 CVE-2023-5950 CVE-2024-23331 CVE-2024-37298 +12 more
Upstream summary: Babel is a compiler for writingJavaScript. In `@babel/traverse` prior to versions 7.23.2 and 8.0.0-alpha.4 and all versions of `babel-traverse`, using Babel to compile code that was specifically crafted by an attacker can lead to arbitrary code execution during compilation, when using plugins that rely on the `path.evaluate()`or `path.evaluateTruthy()` internal Babel methods. Known affected plugins are `@babel/plugin-transform-runtime`; `@babel/preset-env` when using its `use
Table of contents
Symptom & Impact
On openSUSE Leap 15.6 hosts that have velociraptor installed, administrators report behaviour consistent with SUSE advisory openSUSE-SU-2025:14663-1: zypper patch-check lists open patches, services backed by velociraptor fail or restart unexpectedly, AppArmor profile warnings appear in journalctl -k — and for security-rated advisories the host is exposed to the vulnerability set above. Impact ranges from a single service-restart loop to wider availability incidents whenever velociraptor sits on the serving path.
Environment & Reproduction
Reproduction targets openSUSE Leap 15.6. Confirm release and installed package:
cat /etc/os-release
rpm -q velociraptor
zypper info velociraptor | head -20
zypper lr -E # enabled repositories
SUSEConnect --status-text 2>/dev/null || echo 'SCC not connected (optional on openSUSE Leap)'
Trigger the workflow that exposes velociraptor — multiple vulnerabilities (20 CVEs) — patch and remediation guide while collecting:
sudo journalctl -u velociraptor -b --no-pager | tail -200
sudo journalctl -xe --no-pager | tail -200
sudo tail -200 /var/log/zypp/history
sudo journalctl -k | grep -i apparmor | tail -100
# Bundle evidence for SUSE / community support:
sudo supportconfig -R /var/tmp -B velociraptor
Root Cause Analysis
Root cause is documented in SUSE advisory openSUSE-SU-2025:14663-1. openSUSE security maintainers shipped fixes in the corresponding velociraptor update for openSUSE Leap 15.6; running an outdated build leaves the host exposed to the failure modes described in the advisory. Correlate zypper history with system logs:
sudo zypper history | grep velociraptor
sudo zypper history --since='-7 days' | tail -40
sudo journalctl -k | grep -i apparmor | tail -100
cat /proc/sys/kernel/tainted # non-zero = tainted kernel / out-of-tree modules
Quick Triage
Run these on openSUSE Leap 15.6 to capture the current state of velociraptor:
rpm -q velociraptor # installed NVR
rpm -V velociraptor # verify shipped files
sudo zypper patch-check # open patches
sudo zypper lp 2>/dev/null | head
systemctl --failed --no-pager
sudo firewall-cmd --list-all
sudo aa-status # AppArmor profiles
# If velociraptor ships a systemd unit (unit name may differ from pkg name, e.g.
# bind→named, postgresql-server→postgresql, php-fpm→php-fpm):
systemctl list-unit-files | grep -i velociraptor | head
Step-by-Step Diagnosis
-
List failed systemd units.
systemctl --failed --no-pager -
Tail the journal for
velociraptorand the system bus.sudo journalctl -u velociraptor -f --no-pager sudo journalctl -xe -f --no-pager -
Inspect firewall posture (firewalld is the default on openSUSE).
sudo firewall-cmd --list-all-zones --permanent sudo nft list ruleset 2>/dev/null | head -50 -
Surface AppArmor denials and switch the profile to complain mode if needed.
sudo journalctl -k | grep -i 'apparmor="DENIED"' | tail -30 sudo aa-status sudo aa-complain /etc/apparmor.d/usr.sbin.velociraptor 2>/dev/null || true -
Verify
velociraptorintegrity and reinstall if anything is altered.sudo rpm -V velociraptor sudo zypper verify sudo zypper install --force velociraptor -
Inspect Snapper snapshots to know exactly which transaction introduced the regression.
sudo snapper list | tail -20 sudo snapper status <pre-id>..<post-id> -
Correlate findings with
/var/log/zypp/history,zypper history, and SUSE advisory openSUSE-SU-2025:14663-1 to pin the change that introduced velociraptor — multiple vulnerabilities (20 CVEs) — patch and remediation guide.
Solution – Primary Fix
Apply the corrective zypper transaction referenced by SUSE advisory openSUSE-SU-2025:14663-1, then reload affected systemd units:
sudo zypper ref # refresh repos
sudo zypper -n patch # apply ALL open patches (recommended)
# Or target a single package:
sudo zypper -n update velociraptor
sudo systemctl daemon-reload
# Unit name may differ from pkg name; check first:
systemctl list-unit-files | grep -i velociraptor | head
sudo systemctl restart velociraptor
rpm -q velociraptor # confirm new NVR
systemctl is-active velociraptor 2>/dev/null # confirm running (if a unit exists)
For kernel / glibc / systemd / openssl advisories a reboot is required. Snapper takes pre/post snapshots on Btrfs root automatically, giving a safety net:
sudo zypper ps -s # services using deleted libs
sudo snapper list | tail -5 # pre/post snapshots around the patch
sudo systemctl reboot # or: sudo shutdown -r now
Need help rolling this patch across an openSUSE fleet? Our IT Solutions & Services team supports openSUSE Leap and Tumbleweed estates with snapper-backed rollback workflows and salt-driven patching. Get in touch for a free consultation.
Solution – Alternative Approaches
If the primary fix is not viable, choose from these:
-
Roll back via Snapper (Btrfs snapshots are taken automatically before zypper transactions on openSUSE Leap 15.6). This is the primary safety net for openSUSE administrators:
sudo snapper list sudo snapper status <pre-id>..<post-id> # diff between two snapshot numbers sudo snapper undochange <pre-id>..<post-id> sudo snapper rollback <pre-id> # boot the host into the chosen snapshot sudo systemctl reboot -
Lock the package so zypper cannot upgrade it:
sudo zypper al velociraptor # add lock zypper ll | grep velociraptor # list locks sudo zypper rl velociraptor # remove lock -
Install an older NVR if a regression is suspected:
zypper se -s velociraptor # show all available versions sudo zypper install --oldpackage velociraptor-<older-NVR> -
Disable the AppArmor profile briefly to confirm policy is the cause, then re-enable:
sudo aa-disable /etc/apparmor.d/usr.sbin.velociraptor # reproduce, capture denials in the journal: sudo journalctl -k | grep apparmor | tail sudo aa-enforce /etc/apparmor.d/usr.sbin.velociraptor -
openSUSE Leap follows the SUSE Linux Enterprise patch stream. Sync against the official update repository if a mirror has drifted:
sudo zypper mr -e repo-update # ensure update repo is enabled sudo zypper ref repo-update sudo zypper -n patch
Verification & Acceptance Criteria
All of these should pass after the fix:
rpm -q velociraptor # expected fixed NVR
sudo zypper patch-check # 0 critical patches outstanding
systemctl is-active velociraptor 2>/dev/null
sudo journalctl -u velociraptor --since "5 minutes ago" --no-pager | grep -iE "error|fail" || echo OK
sudo firewall-cmd --list-services
sudo aa-status | head -5
sudo zypper ps -s # any services still using deleted libs
The original reproduction for velociraptor — multiple vulnerabilities (20 CVEs) — patch and remediation guide must not trigger across two consecutive runs.
Rollback Plan
Capture state before any change. On openSUSE, Snapper is the canonical rollback path:
rpm -qa > /root/rpm-pre.txt
sudo zypper history list > /root/zypper-history-pre.txt
# Snapper takes pre/post snapshots automatically on Btrfs root.
sudo snapper create -d 'pre-patch-velociraptor' # explicit named snapshot
sudo snapper list | head
To revert if the patch / roll is bad:
# Preferred on Btrfs root — boot the prior snapshot:
sudo snapper list
sudo snapper rollback <pre-id>
sudo systemctl reboot
# Or downgrade just the package:
sudo zypper install --oldpackage velociraptor-<older-NVR>
sudo systemctl daemon-reload
sudo systemctl restart velociraptor
# Custom AppArmor profile cleanup:
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.velociraptor
Prevention & Hardening
Reduce the chance of this recurring on openSUSE Leap 15.6:
-
Enable automatic patch installation:
sudo zypper install -y zypper-automatic sudo systemctl enable --now zypper-automatic.timer # Or use YaST: yast2 online_update_configuration -
Subscribe to opensuse-security-announce and watch suse.com/support/update.
-
Lock sensitive packages so they cannot be auto-upgraded:
sudo zypper al velociraptor -
Ensure Snapper is enabled on the root subvolume and pre/post hooks run for every zypper transaction. This is the cornerstone of safe openSUSE patching:
sudo snapper -c root get-config | head # Default zypper plugin: /usr/lib/zypp/plugins/commit/snapper.zypp-commit-plugin sudo snapper list | tail -10 -
Monitor file integrity with AIDE:
sudo zypper install -y aide sudo aide --init && sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db sudo aide --check -
Keep AppArmor profiles in enforce; review
/etc/apparmor.d/after every package upgrade. -
Apply CIS / openSUSE hardening guidance and use salt or ansible to enforce baseline state across the fleet.
Related Errors & Cross-Refs
Issues that commonly surface alongside velociraptor — multiple vulnerabilities (20 CVEs) — patch and remediation guide: zypper lock contention, systemd unit ordering cycles, AppArmor denials, firewalld zone drift, and kernel taint flags. Useful triage:
sudo zypper ps -s
systemd-analyze critical-chain
sudo journalctl -k | grep apparmor | tail
sudo firewall-cmd --get-active-zones
cat /proc/sys/kernel/tainted
sudo snapper list | tail
View all opensuse-leap-15-6 tutorials on the Tutorials Hub →
Browse all common problems & solutions on the Tutorials Hub.
References & Further Reading
Primary reference: SUSE advisory openSUSE-SU-2025:14663-1. Manual pages useful on openSUSE Leap 15.6:
man zypper
man zypper.conf
man systemctl
man journalctl
man firewall-cmd
man snapper
man apparmor
man aa-status
Other resources: openSUSE documentation, suse.com/security, openSUSE security portal, and per-package notes in /usr/share/doc/packages/velociraptor/ for components implicated in velociraptor — multiple vulnerabilities (20 CVEs) — patch and remediation guide.
View all openSUSE Leap 15.6 tutorials on the Tutorials Hub →