checkinstall: The "chmod 777" Vulnerability You Didn't Ask For
Jan 15, 2026·5 min read·1 visit
Executive Summary (TL;DR)
checkinstall 1.6.2 reads the permissions of a symlink (which technically appear as 777) and attempts to apply them to the file. Since `chmod` follows symlinks by default, it inadvertently sets the *target* binary to be world-writable. This allows any local user to overwrite root-owned executables packaged by the tool.
checkinstall 1.6.2, a tool beloved by sysadmins for creating quick-and-dirty packages, contains a critical flaw in how it handles symbolic links. By misinterpreting the nominal permissions of a symlink, it accidentally makes the target executable world-writable (0777). This turns a standard installation process into a Local Privilege Escalation (LPE) generator.
Technical Appendix
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HAffected Systems
Affected Versions Detail
| Product | Affected Versions | Fixed Version |
|---|---|---|
checkinstall Canonical | = 1.6.2 | None |
| Attribute | Detail |
|---|---|
| CVE ID | CVE-2020-25031 |
| CVSS v3.1 | 7.8 (High) |
| CWE | CWE-732 (Incorrect Permission Assignment) |
| Attack Vector | Local (User-assisted) |
| Impact | Privilege Escalation (LPE) |
| Affected Component | installwatch / checkinstall |
MITRE ATT&CK Mapping
Vulnerability Timeline
Subscribe to updates
Get the latest CVE analysis reports delivered to your inbox.