{"id":"UBUNTU-CVE-2026-40079","details":"Cacti is an open source performance and fault management framework. Versions 1.2.30 and prior are vulnerable to Command Injection due to lack of sanitization in the escape_command() function. The escape_command() function at lib/rrd.php is a no-op: it returns $command unchanged. The command line built by rrdtool_function_graph() is passed through this function and then to shell_exec($full_commandline). The risk is in __rrd_execute() where text_format values from graph templates (which may contain host variable substitutions) reach shell_exec without adequate escaping. This issue has been addressed in version 1.2.31.","modified":"2026-06-29T21:20:03Z","published":"2026-06-25T00:17:00Z","upstream":["CVE-2026-40079"],"references":[{"type":"REPORT","url":"https://ubuntu.com/security/CVE-2026-40079"},{"type":"REPORT","url":"https://www.cve.org/CVERecord?id=CVE-2026-40079"},{"type":"REPORT","url":"https://github.com/Cacti/cacti/security/advisories/GHSA-xq98-376r-hv9j"},{"type":"REPORT","url":"https://github.com/Cacti/cacti/commit/4c09efaebf3a9faec66969d0b5c4aceaf397f37f"}],"affected":[{"package":{"name":"cacti","ecosystem":"Ubuntu:Pro:14.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=esm-infra-legacy%2Ftrusty"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.8b+dfsg-3","0.8.8b+dfsg-5","0.8.8b+dfsg-5ubuntu0.1","0.8.8b+dfsg-5ubuntu0.2","0.8.8b+dfsg-5ubuntu0.2+esm1","0.8.8b+dfsg-5ubuntu0.2+esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"cacti","binary_version":"0.8.8b+dfsg-5ubuntu0.2+esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:Pro:16.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=esm-apps%2Fxenial"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.8.8f+ds1-2","0.8.8f+ds1-3","0.8.8f+ds1-4","0.8.8f+ds1-4ubuntu1","0.8.8f+ds1-4ubuntu2","0.8.8f+ds1-4ubuntu3","0.8.8f+ds1-4ubuntu4","0.8.8f+ds1-4ubuntu4.16.04","0.8.8f+ds1-4ubuntu4.16.04.1","0.8.8f+ds1-4ubuntu4.16.04.2","0.8.8f+ds1-4ubuntu4.16.04.2+esm1","0.8.8f+ds1-4ubuntu4.16.04.2+esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"cacti","binary_version":"0.8.8f+ds1-4ubuntu4.16.04.2+esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:Pro:18.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=esm-apps%2Fbionic"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.1.18+ds1-1","1.1.27+ds1-2","1.1.27+ds1-3","1.1.28+ds1-2","1.1.35+ds1-1","1.1.36+ds1-1","1.1.38+ds1-1","1.1.38+ds1-1ubuntu0.1~esm1","1.1.38+ds1-1ubuntu0.1~esm3","1.1.38+ds1-1ubuntu0.1~esm4"],"ecosystem_specific":{"binaries":[{"binary_name":"cacti","binary_version":"1.1.38+ds1-1ubuntu0.1~esm4"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:Pro:20.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=esm-apps%2Ffocal"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.4+ds1-2ubuntu3","1.2.9+ds1-1ubuntu1","1.2.9+ds1-1ubuntu2","1.2.10+ds1-1ubuntu1","1.2.10+ds1-1ubuntu1+esm1","1.2.10+ds1-1ubuntu1.1","1.2.10+ds1-1ubuntu1.1+esm1","1.2.10+ds1-1ubuntu1.1+esm2"],"ecosystem_specific":{"binaries":[{"binary_name":"cacti","binary_version":"1.2.10+ds1-1ubuntu1.1+esm2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:Pro:22.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=esm-apps%2Fjammy"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.16+ds1-2ubuntu1","1.2.19+ds1-2ubuntu1","1.2.19+ds1-2ubuntu1+esm1","1.2.19+ds1-2ubuntu1.1","1.2.19+ds1-2ubuntu1.1+esm1","1.2.19+ds1-2ubuntu1.1+esm2"],"ecosystem_specific":{"binaries":[{"binary_version":"1.2.19+ds1-2ubuntu1.1+esm2","binary_name":"cacti"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:24.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=noble"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.25+ds1-2","1.2.26+ds1-1","1.2.26+ds1-1ubuntu0.1"],"ecosystem_specific":{"binaries":[{"binary_version":"1.2.26+ds1-1ubuntu0.1","binary_name":"cacti"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:25.10","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=questing"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.28+ds1-4ubuntu1","1.2.30+ds1-1ubuntu1"],"ecosystem_specific":{"binaries":[{"binary_version":"1.2.30+ds1-1ubuntu1","binary_name":"cacti"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}},{"package":{"name":"cacti","ecosystem":"Ubuntu:26.04:LTS","purl":"pkg:deb/ubuntu/cacti?arch=source&distro=resolute"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.30+ds1-1ubuntu1","1.2.30+ds1-1ubuntu2"],"ecosystem_specific":{"binaries":[{"binary_name":"cacti","binary_version":"1.2.30+ds1-1ubuntu2"}]},"database_specific":{"source":"https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-40079.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L"},{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"},{"type":"Ubuntu","score":"medium"}]}