{"id":"DEBIAN-CVE-2024-53193","details":"In the Linux kernel, the following vulnerability has been resolved:  clk: clk-loongson2: Fix memory corruption bug in struct loongson2_clk_provider  Some heap space is allocated for the flexible structure `struct clk_hw_onecell_data` and its flexible-array member `hws` through the composite structure `struct loongson2_clk_provider` in function `loongson2_clk_probe()`, as shown below:  289         struct loongson2_clk_provider *clp; \t... 296         for (p = data; p-\u003ename; p++) 297                 clks_num++; 298 299         clp = devm_kzalloc(dev, struct_size(clp, clk_data.hws, clks_num), 300                            GFP_KERNEL);  Then some data is written into the flexible array:  350                 clp-\u003eclk_data.hws[p-\u003eid] = hw;  This corrupts `clk_lock`, which is the spinlock variable immediately following the `clk_data` member in `struct loongson2_clk_provider`:  struct loongson2_clk_provider { \tvoid __iomem *base; \tstruct device *dev; \tstruct clk_hw_onecell_data clk_data; \tspinlock_t clk_lock;\t/* protect access to DIV registers */ };  The problem is that the flexible structure is currently placed in the middle of `struct loongson2_clk_provider` instead of at the end.  Fix this by moving `struct clk_hw_onecell_data clk_data;` to the end of `struct loongson2_clk_provider`. Also, add a code comment to help prevent this from happening again in case new members are added to the structure in the future.  This change also fixes the following -Wflex-array-member-not-at-end warning:  drivers/clk/clk-loongson2.c:32:36: warning: structure containing a flexible array member is not at the end of another structure [-Wflex-array-member-not-at-end]","modified":"2026-09-15T09:03:16.262889792Z","published":"2024-12-27T14:15:26.897Z","upstream":["CVE-2024-53193"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2024-53193"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.12.3-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-53193.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.12.3-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-53193.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}