{"id":"CVE-2024-31144","aliases":["EUVD-2024-29054","GHSA-fg38-pgj3-5w5f","MGASA-2025-0270","UBUNTU-CVE-2024-31144"],"status":"published","title":"Xapi: Metadata injection attack against backup/restore functionality","description":"For a brief summary of Xapi terminology, see:\n\n   https://xapi-project.github.io/xen-api/overview.html#object-model-overview \n\nXapi contains functionality to backup and restore metadata about Virtual\nMachines and Storage Repositories (SRs).\n\nThe metadata itself is stored in a Virtual Disk Image (VDI) inside an\nSR.  This is used for two purposes; a general backup of metadata\n(e.g. to recover from a host failure if the filer is still good), and\nPortable SRs (e.g. using an external hard drive to move VMs to another\nhost).\n\nMetadata is only restored as an explicit administrator action, but\noccurs in cases where the host has no information about the SR, and must\nlocate the metadata VDI in order to retrieve the metadata.\n\nThe metadata VDI is located by searching (in UUID alphanumeric order)\neach VDI, mounting it, and seeing if there is a suitable metadata file\npresent.  The first matching VDI is deemed to be the metadata VDI, and\nis restored from.\n\nIn the general case, the content of VDIs are controlled by the VM owner,\nand should not be trusted by the host administrator.\n\nA malicious guest can manipulate its disk to appear to be a metadata\nbackup.\n\nA guest cannot choose the UUIDs of its VDIs, but a guest with one disk\nhas a 50% chance of sorting ahead of the legitimate metadata backup.  A\nguest with two disks has a 75% chance, etc.","severity":{"version":"3.1","score":3.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N","level":"low","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-11","score":0.00215,"percentile":0.11995,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":false},"cwes":["CWE-829"],"published":"2025-02-14T20:16:39Z","modified":"2026-10-17T12:56:44Z","affected":[{"source":"osv","ecosystem":"Mageia:9","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"4.17.5-1.git20251028.1.mga9"}]}],"bundled":26},{"source":"osv","ecosystem":"Ubuntu:16.04:LTS","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.5.1-0ubuntu1","4.5.1-0ubuntu2","4.6.0-1ubuntu1","4.6.0-1ubuntu2","4.6.0-1ubuntu4","4.6.0-1ubuntu4.1","4.6.0-1ubuntu4.2","4.6.0-1ubuntu4.3","4.6.5-0ubuntu1","4.6.5-0ubuntu1.1","4.6.5-0ubuntu1.2","4.6.5-0ubuntu1.4"]},{"source":"osv","ecosystem":"Ubuntu:18.04:LTS","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.9.0-0ubuntu3","4.9.0-0ubuntu4","4.9.2-0ubuntu1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.9.2-0ubuntu2","4.9.2-0ubuntu6","4.9.2-0ubuntu7","4.11.3+24-g14b62ab3e5-1ubuntu1","4.11.3+24-g14b62ab3e5-1ubuntu2","4.11.3+24-g14b62ab3e5-1ubuntu2.2","4.11.3+24-g14b62ab3e5-1ubuntu2.3"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.11.4+24-gddaaccbbab-1ubuntu2","4.16.0-1~ubuntu2","4.16.0-1~ubuntu2.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.17.2-1","4.17.2+55-g0b56bed864-1","4.17.2+76-ge1f9cb16e2-1","4.17.2+76-ge1f9cb16e2-1ubuntu1","4.17.3+10-g091466ba55-1","4.17.3+10-g091466ba55-1.1ubuntu2","4.17.3+10-g091466ba55-1.1ubuntu3"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.20.0-1ubuntu1","4.20.0+68-g35cb38b222-1"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.20.2+7-g1badcf5035-2build2","4.20.2+37-g61ff35323e-1ubuntu1","4.20.3+127-gc42374a105-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"xen","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["4.20.0+68-g35cb38b222-1","4.20.2+7-g1badcf5035-2","4.20.2+7-g1badcf5035-2build2"]}],"products":[{"vendor":"xen","product":"xapi"},{"vendor":"xen","product":"xen"},{"vendor":"xen project","product":"xen"}],"references":[{"url":"https://xenbits.xen.org/xsa/advisory-459.html","tags":["Patch","Vendor Advisory","report"]},{"url":"http://www.openwall.com/lists/oss-security/2024/07/16/4","tags":["Mailing List","Third Party Advisory"]},{"url":"http://xenbits.xen.org/xsa/advisory-459.html","tags":["Patch","Vendor Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-31144"},{"url":"https://github.com/advisories/GHSA-fg38-pgj3-5w5f"},{"url":"https://advisories.mageia.org/MGASA-2025-0270.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=33401","tags":["report"]},{"url":"https://www.openwall.com/lists/oss-security/2024/07/16/3","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/07/16/4","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/08/14/2","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/08/14/3","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/09/24/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/11/12/2","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/11/12/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/12/17/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2024/12/17/2","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/02/27/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/05/12/4","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/05/12/5","tags":["web"]},{"url":"https://lists.opensuse.org/archives/list/security-announce@lists.opensuse.org/message/KEACKX57LEHS2YKZ4PO5DYNOQRGQSDO2/","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/05/27/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/07/01/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/07/08/2","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/08/28/2","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/09/09/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/09/09/2","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/09/09/3","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/10/21/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/10/24/1","tags":["web"]},{"url":"https://www.openwall.com/lists/oss-security/2025/11/05/4","tags":["web"]},{"url":"https://ubuntu.com/security/CVE-2024-31144","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2024-31144","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2024-31144","title":"Xapi: Metadata injection attack against backup/restore functionality","description":"For a brief summary of Xapi terminology, see:\n\n   https://xapi-project.github.io/xen-api/overview.html#object-model-overview \n\nXapi contains functionality to backup and restore metadata about Virtual\nMachines and Storage Repositories (SRs).\n\nThe metadata itself is stored in a Virtual Disk Image (VDI) inside an\nSR.  This is used for two purposes; a general backup of metadata\n(e.g. to recover from a host failure if the filer is still good), and\nPortable SRs (e.g. using an external hard drive to move VMs to another\nhost).\n\nMetadata is only restored as an explicit administrator action, but\noccurs in cases where the host has no information about the SR, and must\nlocate the metadata VDI in order to retrieve the metadata.\n\nThe metadata VDI is located by searching (in UUID alphanumeric order)\neach VDI, mounting it, and seeing if there is a suitable metadata file\npresent.  The first matching VDI is deemed to be the metadata VDI, and\nis restored from.\n\nIn the general case, the content of VDIs are controlled by the VM owner,\nand should not be trusted by the host administrator.\n\nA malicious guest can manipulate its disk to appear to be a metadata\nbackup.\n\nA guest cannot choose the UUIDs of its VDIs, but a guest with one disk\nhas a 50% chance of sorting ahead of the legitimate metadata backup.  A\nguest with two disks has a 75% chance, etc.","status":"published","published":"2025-02-14T20:16:39.941Z","modified":"2025-04-26T20:03:17.226Z","cvss":[{"version":"3.1","score":3.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N","level":"low","assessor":"adp"}],"updated_at":"2026-11-02T14:34:14.308905Z"}],"euvd":[{"id":"EUVD-2024-29054","description":"For a brief summary of Xapi terminology, see:\n\n   https://xapi-project.github.io/xen-api/overview.html#object-model-overview \n\nXapi contains functionality to backup and restore metadata about Virtual\nMachines and Storage Repositories (SRs).\n\nThe metadata itself is stored in a Virtual Disk Image (VDI) inside an\nSR.  This is used for two purposes; a general backup of metadata\n(e.g. to recover from a host failure if the filer is still good), and\nPortable SRs (e.g. using an external hard drive to move VMs to another\nhost).\n\nMetadata is only restored as an explicit administrator action, but\noccurs in cases where the host has no information about the SR, and must\nlocate the metadata VDI in order to retrieve the metadata.\n\nThe metadata VDI is located by searching (in UUID alphanumeric order)\neach VDI, mounting it, and seeing if there is a suitable metadata file\npresent.  The first matching VDI is deemed to be the metadata VDI, and\nis restored from.\n\nIn the general case, the content of VDIs are controlled by the VM owner,\nand should not be trusted by the host administrator.\n\nA malicious guest can manipulate its disk to appear to be a metadata\nbackup.\n\nA guest cannot choose the UUIDs of its VDIs, but a guest with one disk\nhas a 50% chance of sorting ahead of the legitimate metadata backup.  A\nguest with two disks has a 75% chance, etc.","status":"published","published":"2025-02-14T20:16:39Z","modified":"2025-04-26T20:03:17Z","cvss":[{"version":"3.1","score":3.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"updated_at":"2026-11-02T20:52:02.538258Z"}],"ghsa":[{"id":"GHSA-fg38-pgj3-5w5f","title":"For a brief summary of Xapi terminology, see:\n\n   https://xapi-project.github.io/xen-api/overview...","description":"For a brief summary of Xapi terminology, see:\n\n   https://xapi-project.github.io/xen-api/overview.html#object-model-overview \n\nXapi contains functionality to backup and restore metadata about Virtual\nMachines and Storage Repositories (SRs).\n\nThe metadata itself is stored in a Virtual Disk Image (VDI) inside an\nSR.  This is used for two purposes; a general backup of metadata\n(e.g. to recover from a host failure if the filer is still good), and\nPortable SRs (e.g. using an external hard drive to move VMs to another\nhost).\n\nMetadata is only restored as an explicit administrator action, but\noccurs in cases where the host has no information about the SR, and must\nlocate the metadata VDI in order to retrieve the metadata.\n\nThe metadata VDI is located by searching (in UUID alphanumeric order)\neach VDI, mounting it, and seeing if there is a suitable metadata file\npresent.  The first matching VDI is deemed to be the metadata VDI, and\nis restored from.\n\nIn the general case, the content of VDIs are controlled by the VM owner,\nand should not be trusted by the host administrator.\n\nA malicious guest can manipulate its disk to appear to be a metadata\nbackup.\n\nA guest cannot choose the UUIDs of its VDIs, but a guest with one disk\nhas a 50% chance of sorting ahead of the legitimate metadata backup.  A\nguest with two disks has a 75% chance, etc.","status":"published","published":"2025-02-14T21:31:05Z","modified":"2026-01-08T15:31:25Z","cvss":[{"version":"3.1","score":3.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"cwes":["CWE-829"],"updated_at":"2026-11-02T15:05:32.392087Z"}],"nvd":[{"id":"CVE-2024-31144","description":"For a brief summary of Xapi terminology, see:\n\n   https://xapi-project.github.io/xen-api/overview.html#object-model-overview \n\nXapi contains functionality to backup and restore metadata about Virtual\nMachines and Storage Repositories (SRs).\n\nThe metadata itself is stored in a Virtual Disk Image (VDI) inside an\nSR.  This is used for two purposes; a general backup of metadata\n(e.g. to recover from a host failure if the filer is still good), and\nPortable SRs (e.g. using an external hard drive to move VMs to another\nhost).\n\nMetadata is only restored as an explicit administrator action, but\noccurs in cases where the host has no information about the SR, and must\nlocate the metadata VDI in order to retrieve the metadata.\n\nThe metadata VDI is located by searching (in UUID alphanumeric order)\neach VDI, mounting it, and seeing if there is a suitable metadata file\npresent.  The first matching VDI is deemed to be the metadata VDI, and\nis restored from.\n\nIn the general case, the content of VDIs are controlled by the VM owner,\nand should not be trusted by the host administrator.\n\nA malicious guest can manipulate its disk to appear to be a metadata\nbackup.\n\nA guest cannot choose the UUIDs of its VDIs, but a guest with one disk\nhas a 50% chance of sorting ahead of the legitimate metadata backup.  A\nguest with two disks has a 75% chance, etc.","status":"published","published":"2025-02-14T21:15:15.107Z","modified":"2026-06-17T07:27:51.89Z","cvss":[{"version":"3.1","score":3.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N","level":"low","assessor":"secondary"}],"cwes":["CWE-829"],"updated_at":"2026-11-02T14:10:44.508862Z"}],"osv":[{"id":"UBUNTU-CVE-2024-31144","description":"For a brief summary of Xapi terminology, see: https://xapi-project.github.io/xen-api/overview.html#object-model-overview Xapi contains functionality to backup and restore metadata about Virtual Machines and Storage Repositories (SRs). The metadata itself is stored in a Virtual Disk Image (VDI) inside an SR.  This is used for two purposes; a general backup of metadata (e.g. to recover from a host failure if the filer is still good), and Portable SRs (e.g. using an external hard drive to move VMs to another host). Metadata is only restored as an explicit administrator action, but occurs in cases where the host has no information about the SR, and must locate the metadata VDI in order to retrieve the metadata. The metadata VDI is located by searching (in UUID alphanumeric order) each VDI, mounting it, and seeing if there is a suitable metadata file present.  The first matching VDI is deemed to be the metadata VDI, and is restored from. In the general case, the content of VDIs are controlled by the VM owner, and should not be trusted by the host administrator. A malicious guest can manipulate its disk to appear to be a metadata backup. A guest cannot choose the UUIDs of its VDIs, but a guest with one disk has a 50% chance of sorting ahead of the legitimate metadata backup.  A guest with two disks has a 75% chance, etc.","status":"published","published":"2025-02-14T21:15:00Z","modified":"2026-10-17T12:56:44.234929205Z","cvss":[{"version":"3.1","score":3.8,"vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N","level":"low"}],"updated_at":"2026-11-02T16:54:48.333535Z"},{"id":"MGASA-2025-0270","title":"Updated xen packages fix security vulnerabilities","description":"Double unlock in x86 guest IRQ handling. (CVE-2024-31143)\nXapi: Metadata injection attack against backup/restore functionality.\n(CVE-2024-31144)\nError handling in x86 IOMMU identity mapping. (CVE-2024-31145)\nPCI device pass-through with shared resources. (CVE-2024-31146)\nx86: Deadlock in vlapic_error(). (CVE-2024-45817)\nDeadlock in x86 HVM standard VGA handling. (CVE-2024-45818)\nlibxl leaks data to PVH guests via ACPI tables. (CVE-2024-45819)\nBackend can crash Linux netfront. (CVE-2024-53240)\nXen hypercall page unsafe against speculative attacks. (CVE-2024-53241)\nDeadlock potential with VT-d and legacy PCI device pass-through.\n(CVE-2025-1713)\nx86: Indirect Target Selection. (CVE-2024-28956)\nx86: Incorrect stubs exception handling for flags recovery.\n(CVE-2025-27465)\nTSA-SQ (TSA in the Store Queues). (CVE-2024-36350)\nTSA-L1 (TSA in the L1 data cache). (CVE-2024-36357)\nA NULL pointer dereference in the updating of the reference TSC area.\n(CVE-2025-27466)\nA NULL pointer dereference by assuming the SIM page is mapped when a\nsynthetic timer message has to be delivered. (CVE-2025-58142)\nA race in the mapping of the reference TSC page, where a guest can get\nXen to free a page while still present in the guest physical to machine\n(p2m) page tables. (CVE-2025-58143)\nAn assertion is wrong there, where the case actually needs handling.  A\nNULL pointer de-reference could result on a release build.\n(CVE-2025-58144)\nThe P2M lock isn't held until a page reference was actually obtained (or\nthe attempt to do so has failed).  Otherwise the page can not only\nchange type, but even ownership in between, thus allowing domain\nboundaries to be violated. (CVE-2025-58145)\nXAPI UTF-8 string handling. (CVE-2025-58146)\nHypercalls using the HV_VP_SET Sparse format can cause vpmask_set() to\nwrite out of bounds when converting the bitmap to Xen's format.\n(CVE-2025-58147)\nHypercalls using any input format can cause send_ipi() to read d-\u003evcpu[]\nout-of-bounds, and operate on a wild vCPU pointer.(CVE-2025-58148)\nIncorrect removal of permissions on PCI device unplug. (CVE-2025-58149)\n","status":"published","published":"2025-11-09T07:52:10Z","modified":"2026-04-16T04:42:58.080548709Z","updated_at":"2026-11-02T15:49:43.178336Z"}]}}
