📖 ~4 min read • Source: FreeBSD VuXML
VuXML topic: mplayer — vulnerability in STR files processor
Related CVEs: CVE-2004-0433 CVE-2004-1187 CVE-2004-1188 CVE-2005-1195 CVE-2006-0579 CVE-2006-1502 CVE-2006-6172 CVE-2007-1246 +8 more
Upstream summary: Secunia reports: The vulnerability is caused due to a boundary error within the "str_read_packet()" function in libavformat/psxstr.c. This can be exploited to cause a heap-based buffer overflow via a specially crafted STR file.
Table of contents
Symptom & Impact
On FreeBSD 12 hosts that have mplayer-gtk-esound installed, operators see behaviour consistent with the FreeBSD VuXML entry: pkg audit flags the installed version; any daemon, CLI tool, or application linked against mplayer-gtk-esound may misbehave or fail to start after upgrade; and — for security-rated advisories — the host is exposed to the vulnerabilities above. Impact ranges from a single restart cycle to full availability incidents on jails, bhyve guests, or downstream consumers that depend on mplayer-gtk-esound.
Environment & Reproduction
Reproduction targets FreeBSD 12. Confirm release, installed package, and capture baseline state:
freebsd-version -kru
uname -a
pkg info mplayer-gtk-esound
pkg query "%n-%v" mplayer-gtk-esound
pkg audit -F
service -e
Trigger the workflow that exposes mplayer-gtk-esound — multiple vulnerabilities (16 CVEs) — patch and remediation guide while collecting:
tail -200 /var/log/messages
dmesg -a | tail -200
tail -200 /var/log/pkg.log
Root Cause Analysis
Root cause is tracked at FreeBSD VuXML. The FreeBSD ports security team shipped a corrective mplayer-gtk-esound port revision; hosts on an outdated build remain exposed. Correlate package logs with system logs and kernel state to isolate the change that triggered the failure mode:
tail -500 /var/log/pkg.log
tail -500 /var/log/messages
sysctl kern.lastpid
sysctl kern.osreldate # numeric __FreeBSD_version, e.g. 1400097
Quick Triage
Run these checks on FreeBSD 12 to confirm the failure mode and current state of mplayer-gtk-esound:
pkg version -v mplayer-gtk-esound # installed vs available version
pkg audit mplayer-gtk-esound # advisory match for this package
tail -100 /var/log/messages
dmesg -a | tail -100
kldstat # kernel module state (for kernel/driver pkgs)
pfctl -sr 2>/dev/null || ipfw list # only if pf/ipfw is enabled
# If mplayer-gtk-esound ships an rc.d service (script name may differ from the pkg name,
# e.g. bind918→named, php83→php-fpm), check it:
service -e | grep -i mplayer-gtk-esound && service <rc-script-name> status
Step-by-Step Diagnosis
-
List enabled services (only relevant if the package provides one).
service -e -
Follow live logs.
tail -F /var/log/messages dmesg -
Validate firewall rules (skip if neither pf nor ipfw is enabled).
pfctl -sr -v 2>/dev/null || ipfw show -
Check package integrity for
mplayer-gtk-esound.pkg check -B mplayer-gtk-esound pkg check -d mplayer-gtk-esound # verify shared-library deps -
Reinstall
mplayer-gtk-esoundif integrity check fails.pkg install -fy mplayer-gtk-esound -
Correlate findings with
/var/log/pkg.logand FreeBSD VuXML to pin the commit that introduced mplayer-gtk-esound — multiple vulnerabilities (16 CVEs) — patch and remediation guide.
Solution – Primary Fix
Install the corrective mplayer-gtk-esound port revision referenced by FreeBSD VuXML:
sudo pkg update
sudo pkg upgrade mplayer-gtk-esound # or: sudo pkg upgrade -y for the whole system
# If mplayer-gtk-esound provides an rc.d service, restart it (script name may differ from pkg name):
# sudo service <rc-script-name> restart
pkg audit mplayer-gtk-esound # confirm no remaining advisory for this package
For ports-tree builders (FreeBSD 13.x and earlier used portsnap; on FreeBSD 14+ the ports tree is fetched with Git):
# FreeBSD 14+ (portsnap was removed):
sudo pkg install -y git-lite
sudo git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports
# FreeBSD 13.x and earlier:
# sudo portsnap fetch update
cd /usr/ports/<category>/mplayer-gtk-esound
sudo make deinstall reinstall clean
Reboot only if the package ships a kernel module or replaces a shared library used by long-running daemons.
Need help rolling this patch across a FreeBSD fleet? Our IT Solutions & Services team manages FreeBSD jail/bhyve patch windows. Get in touch for a free consultation.
Solution – Alternative Approaches
If the primary fix is not viable, choose from these alternatives:
-
Lock the package until the fix is vetted:
sudo pkg lock mplayer-gtk-esound -
Downgrade to a known-good revision.
pkg install pkgname-VERSIONis not a real downgrade syntax — fetch a specific build instead:# 1. Discover available versions across configured repos: pkg search -e mplayer-gtk-esound pkg rquery -r FreeBSD-quarterly '%n-%v' mplayer-gtk-esound # 2. Install from a specific saved .pkg file: sudo pkg add -f /path/to/mplayer-gtk-esound-<older-version>.pkg # 3. Or switch the host repo to the quarterly branch (see snippet below) and: sudo pkg upgrade -fr FreeBSD-quarterly mplayer-gtk-esound -
Switch the pkg repository between
quarterlyandlatestby editing/usr/local/etc/pkg/repos/FreeBSD.conf:FreeBSD: { url: "pkg+https://pkg.FreeBSD.org/${ABI}/quarterly", mirror_type: "srv", signature_type: "fingerprints", fingerprints: "/usr/share/keys/pkg", enabled: yes } -
Isolate the affected service in a jail with stricter firewall rules:
iocage create -n mplayer-gtk-esound-jail -r 12.4-RELEASE iocage set allow_raw_sockets=0 mplayer-gtk-esound-jail # or with Bastille: bastille create mplayer-gtk-esound-jail 12.4-RELEASE 10.0.0.10 -
Replace the service with a vendored static build for the period between exposure detection and full rollout.
Verification & Acceptance Criteria
All of these should pass after the fix:
pkg info mplayer-gtk-esound # shows the expected fixed version
pkg audit mplayer-gtk-esound # no advisory for this package (exit code 0)
tail -50 /var/log/messages # no new errors after upgrade
# If mplayer-gtk-esound ships a service, confirm it is running under its rc.d name:
# service <rc-script-name> status
The original reproduction for mplayer-gtk-esound — multiple vulnerabilities (16 CVEs) — patch and remediation guide must not trigger across two consecutive runs.
Rollback Plan
Capture state before any change (only ZFS root has boot environments — UFS hosts skip bectl):
pkg query "%n-%v" > /root/pkg-pre.txt
# ZFS-on-root only:
sudo bectl create pre-mplayer-gtk-esound-patch
To revert if the upgrade is bad, reinstall the previously saved .pkg file:
sudo pkg add -f /var/cache/pkg/mplayer-gtk-esound-<previous-version>.pkg
# Or activate the pre-patch boot environment and reboot (ZFS-on-root only):
sudo bectl activate pre-mplayer-gtk-esound-patch
sudo shutdown -r now
For kernel/loader changes on a UFS host, boot the previous kernel from the loader prompt (press 3 at the menu, then boot kernel.old).
Prevention & Hardening
Prevent recurrence on FreeBSD 12 hosts running mplayer-gtk-esound:
-
Enable the daily security pkg audit in
/etc/periodic.conf:daily_status_security_pkgaudit_enable="YES" -
Subscribe to
freebsd-security-notificationsat lists.freebsd.org. -
Mirror through a local pkg repository managed by
poudriere:poudriere jail -c -j 12amd64 -v 12.4-RELEASE poudriere ports -c -p default poudriere bulk -j 12amd64 -p default <category>/mplayer-gtk-esound -
Version-pin sensitive packages:
sudo pkg lock mplayer-gtk-esound -
Take an automatic ZFS boot-environment snapshot before every upgrade (ZFS root only):
sudo bectl create pre-upgrade-$(date +%Y%m%d) -
Monitor file integrity (create a baseline, verify against it later):
# Create a baseline (use -c; target /usr/local/etc, /etc, /boot — NOT /): sudo mtree -c -K sha256digest -p /usr/local/etc > /var/db/usr-local-etc.mtree sudo mtree -c -K sha256digest -p /etc > /var/db/etc.mtree # Verify later: sudo mtree -p /usr/local/etc < /var/db/usr-local-etc.mtree # Or with AIDE for a richer ruleset: sudo pkg install -y aide && sudo aide --init && sudo aide --check -
Harden jails with
allow.*tunables in/etc/jail.conf:mplayer-gtk-esound_jail { allow.raw_sockets = 0; allow.sysvipc = 0; allow.mount = 0; allow.chflags = 0; }
Related Errors & Cross-Refs
Issues that commonly surface alongside mplayer-gtk-esound — multiple vulnerabilities (16 CVEs) — patch and remediation guide: pkg lock contention, mismatched ABI after kernel/userland skew, pf rule drift, and stale shared-library references after upgrade. Triage with:
freebsd-version -kru
uname -K
pkg check -d
pfctl -sr
View all freebsd-12 tutorials on the Tutorials Hub →
Browse all common problems & solutions on the Tutorials Hub.
References & Further Reading
Primary reference: FreeBSD VuXML. Useful manual pages on FreeBSD 12:
man pkg
man freebsd-update
man pfctl
man ipfw
man bectl
man periodic.conf
Other resources: the FreeBSD Handbook, the FreeBSD Security Advisories at security.freebsd.org, and the /usr/ports/UPDATING file for port-specific notes implicated in mplayer-gtk-esound — multiple vulnerabilities (16 CVEs) — patch and remediation guide.