{"schemaVersion":3,"id":"CVE-2026-87798","aliases":["UBUNTU-CVE-2026-87798","DEBIAN-CVE-2026-87798"],"status":"published","duplicateOf":null,"title":null,"description":"Improper link resolution in the recursive file pull feature of the LXD CLI client in Canonical LXD versions 4.0.2 up to 6.9 (fixed in 4.0.14, 5.0.10 and 5.21.8) on Linux allows an attacker with root access inside a virtual machine to write attacker-controlled files or directory trees to arbitrary paths on the client host, with the operator's privileges. The attacker does this by using a modified lxd-agent that returns inconsistent SFTP directory listings and Lstat results.","dates":{"published":"2026-09-28T13:22:36.561Z","modified":"2026-09-28T16:32:28.148Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.8,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:N/I:H/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":5.8,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Ubuntu","score":5.8,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:N/I:H/A:N","exploitability":3.3,"impact":6.7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Debian","score":5.8,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:N/I:H/A:N","exploitability":3.3,"impact":6.7,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5.8,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:N/I:H/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00188,"percentile":0.07919,"severity":"low","asOf":"2026-10-19T00:00:00.000Z","change":{"pp":null,"baselineDate":null,"baselineScore":null},"history":[{"date":"2026-09-29T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00188,"percentile":0.07919}],"last30":[{"date":"2026-09-29T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00188,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00188,"percentile":0.07919}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-59","name":"Improper Link Resolution Before File Access ('Link Following')","description":"The product attempts to access a file based on the filename, but it does not properly prevent that filename from identifying a link or shortcut that resolves to an unintended resource.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/59.html"}],"affected":[{"vendor":"canonical","product":"lxd","name":"lxd","label":"lxd","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 4.0.2, < 4.0.14","noFixRecorded":false,"fixedIn":null},{"text":"≥ 5.0.0, < 5.0.10","noFixRecorded":false,"fixedIn":null},{"text":"≥ 5.21.0, < 5.21.8","noFixRecorded":false,"fixedIn":null},{"text":"≥ 6.0, < 6.9","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 4.0.2, < 4.0.14 | ≥ 5.0.0, < 5.0.10 | ≥ 5.21.0, < 5.21.8 | ≥ 6.0, < 6.9","eol":null,"hubHref":"/vendor/canonical/lxd"},{"vendor":"debian","product":"lxd","name":"lxd","label":"lxd","ecosystem":"Debian","cpePart":null,"purl":"pkg:deb/debian/lxd","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null},{"vendor":"ubuntu","product":"lxd","name":"lxd","label":"lxd","ecosystem":"Ubuntu","cpePart":null,"purl":"pkg:deb/ubuntu/lxd","purlType":"deb","versions":[{"text":"All versions","noFixRecorded":true,"fixedIn":null}],"versionsText":"All versions (No fix recorded)","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/canonical/lxd/security/advisories/GHSA-mr8v-hx34-hfvf","label":"github.com/canonical/lxd/security/advisories/GHSA-mr8v-hx34-hfvf","hostname":"github.com","tags":["Vendor Advisory","REPORT"]},{"url":"https://ubuntu.com/security/CVE-2026-87798","label":"ubuntu.com/security/CVE-2026-87798","hostname":"ubuntu.com","tags":["REPORT"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-87798","label":"www.cve.org/CVERecord?id=CVE-2026-87798","hostname":"www.cve.org","tags":["REPORT"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-87798","label":"security-tracker.debian.org/tracker/CVE-2026-87798","hostname":"security-tracker.debian.org","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-09-28T13:22:36.561Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-09-28T16:32:28.148Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":23,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-19T23:28:12.653Z","stale":false,"partial":false}}