Affected versions: Debian 13

📖 ~4 min read  •  Source: Debian Security Tracker

Related CVEs: CVE-2026-2644

Upstream summary: A weakness has been identified in niklasso minisat up to 2.2.0. This issue affects the function Solver::value in the library core/SolverTypes.h of the component DIMACS File Parser. This manipulation of the argument variable index with the input 2147483648 causes out-of-bounds read. The attack needs to be launched locally. The exploit has been made available to the public and could be used for attacks. The project was informed of the problem early through an issue report but h

Table of contents
  1. Symptom & Impact
  2. Environment & Reproduction
  3. Root Cause Analysis
  4. Quick Triage
  5. Step-by-Step Diagnosis
  6. Solution – Primary Fix
  7. Solution – Alternative Approaches
  8. Verification & Acceptance Criteria
  9. Rollback Plan
  10. Prevention & Hardening
  11. Related Errors & Cross-Refs
  12. References & Further Reading

Symptom & Impact

Nothing visibly changes on a Debian 13 host until minisat2 is next invoked: it runs, exits and leaves no daemon behind, so there is no restart loop or service log to watch. Exposure is per-invocation, and the invocations that matter are the unattended ones — cron jobs, backup and deployment scripts, CI runners, and anything passing attacker-influenced input such as a remote URL, a supplied archive or an untrusted filename. Where minisat2 is run under sudo or from a privileged job, the same flaw becomes local privilege escalation. minisat2 ships command-line programs that run when invoked and then exit, so there is no unit to restart — systemctl and journalctl -u have nothing to act on; only the next invocation matters.

Environment & Reproduction

Reproduction targets Debian 13. Confirm release with cat /etc/debian_version and lsb_release -a, and the currently installed package with dpkg -l minisat2 and apt-cache policy minisat2. Capture system state with sudo reportbug minisat2 if you need to file upstream. Trigger the workflow that exposes minisat2 while collecting journalctl -b, /var/log/apt/history.log, and dpkg -l output.

Root Cause Analysis

Root cause is tracked at Debian Security Tracker. The Debian Security Team shipped fixes in the corresponding minisat2 point release for Debian 13; running an outdated build leaves the host exposed to the failure modes referenced above. Correlate journalctl --since with apt history (/var/log/apt/history.log) and any kernel taint flags in /proc/sys/kernel/tainted to isolate the originating change.

Quick Triage

Quick triage: sudo apt update && apt list --upgradable, sudo nft list ruleset (or sudo iptables -L), and sudo dpkg --audit. For kernel issues review journalctl -k --since "1 hour ago".

Step-by-Step Diagnosis

1) systemctl --failed. 2) journalctl -xe and . 3) Validate firewall: sudo nft list ruleset or sudo iptables -L -n -v. 4) dpkg -V minisat2 for integrity. 5) sudo apt install --reinstall minisat2 if files were tampered. 6) Correlate findings with /var/log/apt/history.log, /var/log/dpkg.log, and Debian Security Tracker to pin the change that introduced the regression.

Solution – Primary Fix

Primary fix: apply the corrective apt transaction documented in Debian Security Tracker. Typical commands: sudo apt update, sudo apt -y install --only-upgrade minisat2 (or sudo unattended-upgrade -v), then dpkg -l minisat2 to validate the new build is installed. For kernel advisories add sudo reboot.

Need help rolling this patch across a Debian fleet? Our IT Solutions & Services team manages Debian patch windows with zero-downtime change controls. Get in touch for a free consultation.

Solution – Alternative Approaches

Alternatives include pinning a known-good version via /etc/apt/preferences.d/minisat2.pref, holding the package with sudo apt-mark hold minisat2, rolling back with sudo apt install minisat2=<old-version>, switching firewall backends between iptables-legacy and nftables via update-alternatives --config iptables, or applying the patch from the security archive only — deb debian-13-security main contrib non-free — while delaying the full point-release upgrade.

Verification & Acceptance Criteria

Acceptance: dpkg -l minisat2 shows the expected fixed version is active shows no errors, apt list --upgradable no longer lists the advisory, sudo nft list ruleset matches the intended policy, and the original reproduction steps for minisat2 no longer trigger the failure across two consecutive runs.

Rollback Plan

Capture state with apt list --installed > /root/apt-pre.txt and dpkg --get-selections > /root/dpkg-pre.txt. To revert, run sudo apt install --allow-downgrades minisat2=<old-version> and reload . Reboot if the kernel or initramfs changed and re-verify symptoms. Where LVM snapshots are in use, sudo lvconvert --merge /dev/<vg>/preupgrade is the fastest rollback path.

Prevention & Hardening

Prevent recurrence by enabling unattended-upgrades with Unattended-Upgrade::Origins-Pattern tuned to origin=Debian,codename=${distro_codename},label=Debian-Security, subscribing to debian-security-announce, mirroring through a local apt-mirror or aptly repo for controlled rollouts, version-locking sensitive packages, and monitoring file integrity with debsums -c or aide --check. Apply CIS Debian hardening and keep needrestart installed so service restarts happen automatically after library upgrades.

Related issues that commonly surface alongside minisat2: apt lock contention (dpkg --configure -a), systemd unit ordering cycles, firewall rule drift, and kernel taint flags in cat /proc/sys/kernel/tainted. See sibling common-problem articles in this Debian 13 series for adjacent failure modes.

View all debian-13 tutorials on the Tutorials Hub →

Browse all common problems & solutions on the Tutorials Hub.

References & Further Reading

Primary reference: Debian Security Tracker. Supporting docs: Debian Administrators Handbook, man apt, man systemctl, man nft, man iptables, man journalctl, man debsums, the Debian Security Tracker at security-tracker.debian.org, and Debian Security FAQ at debian.org/security/faq. Review /usr/share/doc/minisat2/ for component-level notes implicated in minisat2.