{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": []
        },
        "deb": {
            "added": [
                "linux-headers-6.14.0-37",
                "linux-headers-6.14.0-37-generic",
                "linux-image-6.14.0-37-generic",
                "linux-modules-6.14.0-37-generic",
                "linux-tools-6.14.0-37",
                "linux-tools-6.14.0-37-generic"
            ],
            "removed": [
                "linux-headers-6.14.0-36",
                "linux-headers-6.14.0-36-generic",
                "linux-image-6.14.0-36-generic",
                "linux-modules-6.14.0-36-generic",
                "linux-tools-6.14.0-36",
                "linux-tools-6.14.0-36-generic"
            ],
            "diff": [
                "bpftool",
                "bsdextrautils",
                "bsdutils",
                "eject",
                "fdisk",
                "libblkid1:armhf",
                "libfdisk1:armhf",
                "libmbim-glib4:armhf",
                "libmbim-proxy",
                "libmbim-utils",
                "libmount1:armhf",
                "libpng16-16t64:armhf",
                "libsframe1:armhf",
                "libsmartcols1:armhf",
                "libuuid1:armhf",
                "linux-headers-generic",
                "linux-headers-virtual",
                "linux-image-virtual",
                "linux-libc-dev:armhf",
                "linux-tools-common",
                "linux-virtual",
                "login",
                "mount",
                "python-apt-common",
                "python3-apt",
                "python3-urllib3",
                "util-linux",
                "uuid-runtime"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "bpftool",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "7.6.0+6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "7.6.0+6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "bsdextrautils",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "bsdutils",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "1:2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "1:2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "eject",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "fdisk",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libblkid1:armhf",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libfdisk1:armhf",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libmbim-glib4:armhf",
                "from_version": {
                    "source_package_name": "libmbim",
                    "source_package_version": "1.31.2-0ubuntu4",
                    "version": "1.31.2-0ubuntu4"
                },
                "to_version": {
                    "source_package_name": "libmbim",
                    "source_package_version": "1.31.2-0ubuntu4.1",
                    "version": "1.31.2-0ubuntu4.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2121842
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add Intel mbim service to send AT command (LP: #2121842)",
                            ""
                        ],
                        "package": "libmbim",
                        "version": "1.31.2-0ubuntu4.1",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2121842
                        ],
                        "author": "Dirk Su <dirk.su@canonical.com>",
                        "date": "Thu, 09 Oct 2025 15:26:59 +0800"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libmbim-proxy",
                "from_version": {
                    "source_package_name": "libmbim",
                    "source_package_version": "1.31.2-0ubuntu4",
                    "version": "1.31.2-0ubuntu4"
                },
                "to_version": {
                    "source_package_name": "libmbim",
                    "source_package_version": "1.31.2-0ubuntu4.1",
                    "version": "1.31.2-0ubuntu4.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2121842
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add Intel mbim service to send AT command (LP: #2121842)",
                            ""
                        ],
                        "package": "libmbim",
                        "version": "1.31.2-0ubuntu4.1",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2121842
                        ],
                        "author": "Dirk Su <dirk.su@canonical.com>",
                        "date": "Thu, 09 Oct 2025 15:26:59 +0800"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libmbim-utils",
                "from_version": {
                    "source_package_name": "libmbim",
                    "source_package_version": "1.31.2-0ubuntu4",
                    "version": "1.31.2-0ubuntu4"
                },
                "to_version": {
                    "source_package_name": "libmbim",
                    "source_package_version": "1.31.2-0ubuntu4.1",
                    "version": "1.31.2-0ubuntu4.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2121842
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add Intel mbim service to send AT command (LP: #2121842)",
                            ""
                        ],
                        "package": "libmbim",
                        "version": "1.31.2-0ubuntu4.1",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2121842
                        ],
                        "author": "Dirk Su <dirk.su@canonical.com>",
                        "date": "Thu, 09 Oct 2025 15:26:59 +0800"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libmount1:armhf",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpng16-16t64:armhf",
                "from_version": {
                    "source_package_name": "libpng1.6",
                    "source_package_version": "1.6.47-1.1",
                    "version": "1.6.47-1.1"
                },
                "to_version": {
                    "source_package_name": "libpng1.6",
                    "source_package_version": "1.6.47-1.1ubuntu0.1",
                    "version": "1.6.47-1.1ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-64505",
                        "url": "https://ubuntu.com/security/CVE-2025-64505",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. Prior to version 1.6.51, a heap buffer over-read vulnerability exists in libpng's png_do_quantize function when processing PNG files with malformed palette indices. The vulnerability occurs when palette_lookup array bounds are not validated against externally-supplied image data, allowing an attacker to craft a PNG file with out-of-range palette indices that trigger out-of-bounds memory access. This issue has been patched in version 1.6.51.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-25 00:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-64506",
                        "url": "https://ubuntu.com/security/CVE-2025-64506",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From version 1.6.0 to before 1.6.51, a heap buffer over-read vulnerability exists in libpng's png_write_image_8bit function when processing 8-bit images through the simplified write API with convert_to_8bit enabled. The vulnerability affects 8-bit grayscale+alpha, RGB/RGBA, and images with incomplete row data. A conditional guard incorrectly allows 8-bit input to enter code expecting 16-bit input, causing reads up to 2 bytes beyond allocated buffer boundaries. This issue has been patched in version 1.6.51.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-25 00:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-64720",
                        "url": "https://ubuntu.com/security/CVE-2025-64720",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From version 1.6.0 to before 1.6.51, an out-of-bounds read vulnerability exists in png_image_read_composite when processing palette images with PNG_FLAG_OPTIMIZE_ALPHA enabled. The palette compositing code in png_init_read_transformations incorrectly applies background compositing during premultiplication, violating the invariant component ≤ alpha × 257 required by the simplified PNG API. This issue has been patched in version 1.6.51.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-25 00:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-65018",
                        "url": "https://ubuntu.com/security/CVE-2025-65018",
                        "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From version 1.6.0 to before 1.6.51, there is a heap buffer overflow vulnerability in the libpng simplified API function png_image_finish_read when processing 16-bit interlaced PNGs with 8-bit output format. Attacker-crafted interlaced PNG files cause heap writes beyond allocated buffer bounds. This issue has been patched in version 1.6.51.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-25 00:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-64505",
                                "url": "https://ubuntu.com/security/CVE-2025-64505",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. Prior to version 1.6.51, a heap buffer over-read vulnerability exists in libpng's png_do_quantize function when processing PNG files with malformed palette indices. The vulnerability occurs when palette_lookup array bounds are not validated against externally-supplied image data, allowing an attacker to craft a PNG file with out-of-range palette indices that trigger out-of-bounds memory access. This issue has been patched in version 1.6.51.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-25 00:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-64506",
                                "url": "https://ubuntu.com/security/CVE-2025-64506",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From version 1.6.0 to before 1.6.51, a heap buffer over-read vulnerability exists in libpng's png_write_image_8bit function when processing 8-bit images through the simplified write API with convert_to_8bit enabled. The vulnerability affects 8-bit grayscale+alpha, RGB/RGBA, and images with incomplete row data. A conditional guard incorrectly allows 8-bit input to enter code expecting 16-bit input, causing reads up to 2 bytes beyond allocated buffer boundaries. This issue has been patched in version 1.6.51.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-25 00:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-64720",
                                "url": "https://ubuntu.com/security/CVE-2025-64720",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From version 1.6.0 to before 1.6.51, an out-of-bounds read vulnerability exists in png_image_read_composite when processing palette images with PNG_FLAG_OPTIMIZE_ALPHA enabled. The palette compositing code in png_init_read_transformations incorrectly applies background compositing during premultiplication, violating the invariant component ≤ alpha × 257 required by the simplified PNG API. This issue has been patched in version 1.6.51.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-25 00:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-65018",
                                "url": "https://ubuntu.com/security/CVE-2025-65018",
                                "cve_description": "LIBPNG is a reference library for use in applications that read, create, and manipulate PNG (Portable Network Graphics) raster image files. From version 1.6.0 to before 1.6.51, there is a heap buffer overflow vulnerability in the libpng simplified API function png_image_finish_read when processing 16-bit interlaced PNGs with 8-bit output format. Attacker-crafted interlaced PNG files cause heap writes beyond allocated buffer bounds. This issue has been patched in version 1.6.51.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-25 00:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: buffer overflow issue",
                            "    - debian/patches/CVE-2025-64505.patch: Fix a buffer overflow in",
                            "      png_do_quantize",
                            "    - debian/patches/CVE-2025-64506.patch: Fix a heap buffer overflow in",
                            "      png_write_image_8bit",
                            "    - debian/patches/CVE-2025-64720.patch: Fix a buffer overflow in",
                            "      png_init_read_transformations",
                            "    - debian/patches/CVE-2025-65018.patch: Fix a heap buffer overflow in",
                            "      png_image_finish_read",
                            "    - CVE-2025-64505",
                            "    - CVE-2025-64506",
                            "    - CVE-2025-64720",
                            "    - CVE-2025-65018",
                            ""
                        ],
                        "package": "libpng1.6",
                        "version": "1.6.47-1.1ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "plucky-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nishit Majithia <nishit.majithia@canonical.com>",
                        "date": "Tue, 09 Dec 2025 17:37:55 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsframe1:armhf",
                "from_version": {
                    "source_package_name": "binutils",
                    "source_package_version": "2.44-3ubuntu1.2",
                    "version": "2.44-3ubuntu1.2"
                },
                "to_version": {
                    "source_package_name": "binutils",
                    "source_package_version": "2.44-3ubuntu1.3",
                    "version": "2.44-3ubuntu1.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-11412",
                        "url": "https://ubuntu.com/security/CVE-2025-11412",
                        "cve_description": "A vulnerability has been found in GNU Binutils 2.45. This impacts the function bfd_elf_gc_record_vtentry of the file bfd/elflink.c of the component Linker. The manipulation leads to out-of-bounds read. Local access is required to approach this attack. The exploit has been disclosed to the public and may be used. The identifier of the patch is 047435dd988a3975d40c6626a8f739a0b2e154bc. To fix this issue, it is recommended to deploy a patch.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-07 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-11413",
                        "url": "https://ubuntu.com/security/CVE-2025-11413",
                        "cve_description": "A vulnerability was found in GNU Binutils 2.45. Affected is the function elf_link_add_object_symbols of the file bfd/elflink.c of the component Linker. The manipulation results in out-of-bounds read. The attack needs to be approached locally. The exploit has been made public and could be used. Upgrading to version 2.46 is able to address this issue. The patch is identified as 72efdf166aa0ed72ecc69fc2349af6591a7a19c0. Upgrading the affected component is advised.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-07 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-11414",
                        "url": "https://ubuntu.com/security/CVE-2025-11414",
                        "cve_description": "A vulnerability was determined in GNU Binutils 2.45. Affected by this vulnerability is the function get_link_hash_entry of the file bfd/elflink.c of the component Linker. This manipulation causes out-of-bounds read. The attack can only be executed locally. The exploit has been publicly disclosed and may be utilized. Upgrading to version 2.46 addresses this issue. Patch name: aeaaa9af6359c8e394ce9cf24911fec4f4d23703. It is advisable to upgrade the affected component.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-07 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-11494",
                        "url": "https://ubuntu.com/security/CVE-2025-11494",
                        "cve_description": "A vulnerability was found in GNU Binutils 2.45. Impacted is the function _bfd_x86_elf_late_size_sections of the file bfd/elfxx-x86.c of the component Linker. The manipulation results in out-of-bounds read. The attack needs to be approached locally. The exploit has been made public and could be used. The patch is identified as b6ac5a8a5b82f0ae6a4642c8d7149b325f4cc60a. A patch should be applied to remediate this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-08 20:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-11495",
                        "url": "https://ubuntu.com/security/CVE-2025-11495",
                        "cve_description": "A vulnerability was determined in GNU Binutils 2.45. The affected element is the function elf_x86_64_relocate_section of the file elf64-x86-64.c of the component Linker. This manipulation causes heap-based buffer overflow. The attack can only be executed locally. The exploit has been publicly disclosed and may be utilized. Patch name: 6b21c8b2ecfef5c95142cbc2c32f185cb1c26ab0. To fix this issue, it is recommended to deploy a patch.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-08 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-11412",
                                "url": "https://ubuntu.com/security/CVE-2025-11412",
                                "cve_description": "A vulnerability has been found in GNU Binutils 2.45. This impacts the function bfd_elf_gc_record_vtentry of the file bfd/elflink.c of the component Linker. The manipulation leads to out-of-bounds read. Local access is required to approach this attack. The exploit has been disclosed to the public and may be used. The identifier of the patch is 047435dd988a3975d40c6626a8f739a0b2e154bc. To fix this issue, it is recommended to deploy a patch.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-07 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-11413",
                                "url": "https://ubuntu.com/security/CVE-2025-11413",
                                "cve_description": "A vulnerability was found in GNU Binutils 2.45. Affected is the function elf_link_add_object_symbols of the file bfd/elflink.c of the component Linker. The manipulation results in out-of-bounds read. The attack needs to be approached locally. The exploit has been made public and could be used. Upgrading to version 2.46 is able to address this issue. The patch is identified as 72efdf166aa0ed72ecc69fc2349af6591a7a19c0. Upgrading the affected component is advised.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-07 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-11414",
                                "url": "https://ubuntu.com/security/CVE-2025-11414",
                                "cve_description": "A vulnerability was determined in GNU Binutils 2.45. Affected by this vulnerability is the function get_link_hash_entry of the file bfd/elflink.c of the component Linker. This manipulation causes out-of-bounds read. The attack can only be executed locally. The exploit has been publicly disclosed and may be utilized. Upgrading to version 2.46 addresses this issue. Patch name: aeaaa9af6359c8e394ce9cf24911fec4f4d23703. It is advisable to upgrade the affected component.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-07 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-11494",
                                "url": "https://ubuntu.com/security/CVE-2025-11494",
                                "cve_description": "A vulnerability was found in GNU Binutils 2.45. Impacted is the function _bfd_x86_elf_late_size_sections of the file bfd/elfxx-x86.c of the component Linker. The manipulation results in out-of-bounds read. The attack needs to be approached locally. The exploit has been made public and could be used. The patch is identified as b6ac5a8a5b82f0ae6a4642c8d7149b325f4cc60a. A patch should be applied to remediate this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-08 20:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-11495",
                                "url": "https://ubuntu.com/security/CVE-2025-11495",
                                "cve_description": "A vulnerability was determined in GNU Binutils 2.45. The affected element is the function elf_x86_64_relocate_section of the file elf64-x86-64.c of the component Linker. This manipulation causes heap-based buffer overflow. The attack can only be executed locally. The exploit has been publicly disclosed and may be utilized. Patch name: 6b21c8b2ecfef5c95142cbc2c32f185cb1c26ab0. To fix this issue, it is recommended to deploy a patch.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-08 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Out-of-Bounds Read",
                            "    - debian/patches/CVE-2025-11412.patch: PR 33452 SEGV in",
                            "      bfd_elf_gc_record_vtentry",
                            "    - CVE-2025-11412",
                            "  * SECURITY UPDATE: Out-of-Bounds Read",
                            "    - debian/patches/CVE-2025-11413.patch: Re: elf: Disallow the empty",
                            "      global symbol name",
                            "    - CVE-2025-11413",
                            "  * SECURITY UPDATE: Out-of-Bounds Read",
                            "    - debian/patches/CVE-2025-11414.patch: elf: Return error on unsorted",
                            "      symbol table if not allowed",
                            "    - CVE-2025-11414",
                            "  * SECURITY UPDATE: Out-of-Bounds Read",
                            "    - debian/patches/CVE-2025-11494.patch: x86: Keep",
                            "      _GLOBAL_OFFSET_TABLE_ for .eh_frame",
                            "    - CVE-2025-11494",
                            "  * SECURITY UPDATE: Heap-Based Buffer Overflow",
                            "    - debian/patches/CVE-2025-11495.patch: x86: Disallow TLS relocation",
                            "      in non executable section",
                            "    - CVE-2025-11495",
                            ""
                        ],
                        "package": "binutils",
                        "version": "2.44-3ubuntu1.3",
                        "urgency": "medium",
                        "distributions": "plucky-security",
                        "launchpad_bugs_fixed": [],
                        "author": "John Breton <john.breton@canonical.com>",
                        "date": "Wed, 03 Dec 2025 09:45:34 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsmartcols1:armhf",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libuuid1:armhf",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-generic",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 6.14.0-37.37",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 18:22:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 6.14.0-37.37",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 18:22:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 6.14.0-37.37",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 18:22:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-libc-dev:armhf",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-tools-common",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 6.14.0-37.37",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 18:22:24 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "login",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "1:4.16.0-2+really2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "1:4.16.0-2+really2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "mount",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python-apt-common",
                "from_version": {
                    "source_package_name": "python-apt",
                    "source_package_version": "3.0.0",
                    "version": "3.0.0"
                },
                "to_version": {
                    "source_package_name": "python-apt",
                    "source_package_version": "3.0.0ubuntu0.25.04.1",
                    "version": "3.0.0ubuntu0.25.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-6966",
                        "url": "https://ubuntu.com/security/CVE-2025-6966",
                        "cve_description": "NULL pointer dereference in TagSection.keys() in python-apt on APT-based Linux systems allows a local attacker to cause a denial of service (process crash) via a crafted deb822 file with a malformed non-UTF-8 key.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-05 13:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2091865
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-6966",
                                "url": "https://ubuntu.com/security/CVE-2025-6966",
                                "cve_description": "NULL pointer dereference in TagSection.keys() in python-apt on APT-based Linux systems allows a local attacker to cause a denial of service (process crash) via a crafted deb822 file with a malformed non-UTF-8 key.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-05 13:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: NULL pointer dereference (LP: #2091865)",
                            "    - python/tag.cc: check for NULL pointer before dereferencing",
                            "    - CVE-2025-6966",
                            ""
                        ],
                        "package": "python-apt",
                        "version": "3.0.0ubuntu0.25.04.1",
                        "urgency": "medium",
                        "distributions": "plucky-security",
                        "launchpad_bugs_fixed": [
                            2091865
                        ],
                        "author": "Sudhakar Verma <sudhakar.verma@canonical.com>",
                        "date": "Fri, 05 Dec 2025 22:44:00 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-apt",
                "from_version": {
                    "source_package_name": "python-apt",
                    "source_package_version": "3.0.0",
                    "version": "3.0.0"
                },
                "to_version": {
                    "source_package_name": "python-apt",
                    "source_package_version": "3.0.0ubuntu0.25.04.1",
                    "version": "3.0.0ubuntu0.25.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-6966",
                        "url": "https://ubuntu.com/security/CVE-2025-6966",
                        "cve_description": "NULL pointer dereference in TagSection.keys() in python-apt on APT-based Linux systems allows a local attacker to cause a denial of service (process crash) via a crafted deb822 file with a malformed non-UTF-8 key.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-05 13:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2091865
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-6966",
                                "url": "https://ubuntu.com/security/CVE-2025-6966",
                                "cve_description": "NULL pointer dereference in TagSection.keys() in python-apt on APT-based Linux systems allows a local attacker to cause a denial of service (process crash) via a crafted deb822 file with a malformed non-UTF-8 key.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-05 13:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: NULL pointer dereference (LP: #2091865)",
                            "    - python/tag.cc: check for NULL pointer before dereferencing",
                            "    - CVE-2025-6966",
                            ""
                        ],
                        "package": "python-apt",
                        "version": "3.0.0ubuntu0.25.04.1",
                        "urgency": "medium",
                        "distributions": "plucky-security",
                        "launchpad_bugs_fixed": [
                            2091865
                        ],
                        "author": "Sudhakar Verma <sudhakar.verma@canonical.com>",
                        "date": "Fri, 05 Dec 2025 22:44:00 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-urllib3",
                "from_version": {
                    "source_package_name": "python-urllib3",
                    "source_package_version": "2.3.0-2ubuntu0.1",
                    "version": "2.3.0-2ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "python-urllib3",
                    "source_package_version": "2.3.0-2ubuntu0.2",
                    "version": "2.3.0-2ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-66418",
                        "url": "https://ubuntu.com/security/CVE-2025-66418",
                        "cve_description": "urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.24 and prior to 2.6.0, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data. This vulnerability is fixed in 2.6.0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-05 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-66471",
                        "url": "https://ubuntu.com/security/CVE-2025-66471",
                        "cve_description": "urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.0 and prior to 2.6.0, the Streaming API improperly handles highly compressed data. urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once. When streaming a compressed response, urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). The library must read compressed data from the network and decompress it until the requested chunk size is met. Any resulting decompressed data that exceeds the requested amount is held in an internal buffer for the next read operation. The decompression logic could cause urllib3 to fully decode a small amount of highly compressed data in a single operation. This can result in excessive resource consumption (high CPU usage and massive memory allocation for the decompressed data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-05 17:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-66418",
                                "url": "https://ubuntu.com/security/CVE-2025-66418",
                                "cve_description": "urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.24 and prior to 2.6.0, the number of links in the decompression chain was unbounded allowing a malicious server to insert a virtually unlimited number of compression steps leading to high CPU usage and massive memory allocation for the decompressed data. This vulnerability is fixed in 2.6.0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-05 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-66471",
                                "url": "https://ubuntu.com/security/CVE-2025-66471",
                                "cve_description": "urllib3 is a user-friendly HTTP client library for Python. Starting in version 1.0 and prior to 2.6.0, the Streaming API improperly handles highly compressed data. urllib3's streaming API is designed for the efficient handling of large HTTP responses by reading the content in chunks, rather than loading the entire response body into memory at once. When streaming a compressed response, urllib3 can perform decoding or decompression based on the HTTP Content-Encoding header (e.g., gzip, deflate, br, or zstd). The library must read compressed data from the network and decompress it until the requested chunk size is met. Any resulting decompressed data that exceeds the requested amount is held in an internal buffer for the next read operation. The decompression logic could cause urllib3 to fully decode a small amount of highly compressed data in a single operation. This can result in excessive resource consumption (high CPU usage and massive memory allocation for the decompressed data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-05 17:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Denial of service due to unbounded decompression chain.",
                            "    - debian/patches/CVE-2025-66418.patch: Add max_decode_links limit and",
                            "      checks in src/urllib3/response.py. Add test in test/test_response.py.",
                            "    - CVE-2025-66418",
                            "  * SECURITY UPDATE: Denial of service due to decompression bomb.",
                            "    - debian/patches/CVE-2025-66471.patch: Fix decompression bomb in",
                            "      src/urllib3/response.py. Add tests in test/test_response.py.",
                            "    - debian/patches/CVE-2025-66471-post1.patch: Remove brotli version warning",
                            "      due to intrusive backport for brotli fixes and upstream version warning",
                            "      not being appropriate for distro backporting.",
                            "    - CVE-2025-66471",
                            ""
                        ],
                        "package": "python-urllib3",
                        "version": "2.3.0-2ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "plucky-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Wed, 10 Dec 2025 15:28:14 -0330"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "util-linux",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "uuid-runtime",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.1",
                    "version": "2.40.2-14ubuntu1.1"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.40.2-14ubuntu1.2",
                    "version": "2.40.2-14ubuntu1.2"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2123886
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Add ARM core support for Vera systems (LP: #2123886)",
                            "    - d/p/ubuntu/lp-2123886-add-missing-arm-cores.patch",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.40.2-14ubuntu1.2",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2123886
                        ],
                        "author": "Zachary Raines <zachary.raines@canonical.com>",
                        "date": "Wed, 17 Sep 2025 18:10:16 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "added": {
        "deb": [
            {
                "name": "linux-headers-6.14.0-37",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": "linux-headers-6.14.0-37 version '6.14.0-37.37' (source package linux version '6.14.0-37.37') was added. linux-headers-6.14.0-37 version '6.14.0-37.37' has the same source package name, linux, as removed package linux-headers-6.14.0-36. As such we can use the source package version of the removed package, '6.14.0-36.36', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-6.14.0-37-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": "linux-headers-6.14.0-37-generic version '6.14.0-37.37' (source package linux version '6.14.0-37.37') was added. linux-headers-6.14.0-37-generic version '6.14.0-37.37' has the same source package name, linux, as removed package linux-headers-6.14.0-36. As such we can use the source package version of the removed package, '6.14.0-36.36', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-6.14.0-37-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": "linux-image-6.14.0-37-generic version '6.14.0-37.37' (source package linux version '6.14.0-37.37') was added. linux-image-6.14.0-37-generic version '6.14.0-37.37' has the same source package name, linux, as removed package linux-headers-6.14.0-36. As such we can use the source package version of the removed package, '6.14.0-36.36', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-modules-6.14.0-37-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": "linux-modules-6.14.0-37-generic version '6.14.0-37.37' (source package linux version '6.14.0-37.37') was added. linux-modules-6.14.0-37-generic version '6.14.0-37.37' has the same source package name, linux, as removed package linux-headers-6.14.0-36. As such we can use the source package version of the removed package, '6.14.0-36.36', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-tools-6.14.0-37",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": "linux-tools-6.14.0-37 version '6.14.0-37.37' (source package linux version '6.14.0-37.37') was added. linux-tools-6.14.0-37 version '6.14.0-37.37' has the same source package name, linux, as removed package linux-headers-6.14.0-36. As such we can use the source package version of the removed package, '6.14.0-36.36', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-tools-6.14.0-37-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-37.37",
                    "version": "6.14.0-37.37"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-39993",
                        "url": "https://ubuntu.com/security/CVE-2025-39993",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-15 08:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40018",
                        "url": "https://ubuntu.com/security/CVE-2025-40018",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-24 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39964",
                        "url": "https://ubuntu.com/security/CVE-2025-39964",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-13 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-39946",
                        "url": "https://ubuntu.com/security/CVE-2025-39946",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-04 08:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2131513,
                    2115860,
                    2131046,
                    2130552,
                    2121997,
                    2127676
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-39993",
                                "url": "https://ubuntu.com/security/CVE-2025-39993",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: rc: fix races with imon_disconnect()  Syzbot reports a KASAN issue as below: BUG: KASAN: use-after-free in __create_pipe include/linux/usb.h:1945 [inline] BUG: KASAN: use-after-free in send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 Read of size 4 at addr ffff8880256fb000 by task syz-executor314/4465  CPU: 2 PID: 4465 Comm: syz-executor314 Not tainted 6.0.0-rc1-syzkaller #0 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.14.0-2 04/01/2014 Call Trace:  <TASK> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:317 [inline] print_report.cold+0x2ba/0x6e9 mm/kasan/report.c:433 kasan_report+0xb1/0x1e0 mm/kasan/report.c:495 __create_pipe include/linux/usb.h:1945 [inline] send_packet+0xa2d/0xbc0 drivers/media/rc/imon.c:627 vfd_write+0x2d9/0x550 drivers/media/rc/imon.c:991 vfs_write+0x2d7/0xdd0 fs/read_write.c:576 ksys_write+0x127/0x250 fs/read_write.c:631 do_syscall_x64 arch/x86/entry/common.c:50 [inline] do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80 entry_SYSCALL_64_after_hwframe+0x63/0xcd  The iMON driver improperly releases the usb_device reference in imon_disconnect without coordinating with active users of the device.  Specifically, the fields usbdev_intf0 and usbdev_intf1 are not protected by the users counter (ictx->users). During probe, imon_init_intf0 or imon_init_intf1 increments the usb_device reference count depending on the interface. However, during disconnect, usb_put_dev is called unconditionally, regardless of actual usage.  As a result, if vfd_write or other operations are still in progress after disconnect, this can lead to a use-after-free of the usb_device pointer.  Thread 1 vfd_write                      Thread 2 imon_disconnect                                         ...                                         if                                           usb_put_dev(ictx->usbdev_intf0)                                         else                                           usb_put_dev(ictx->usbdev_intf1) ... while   send_packet     if       pipe = usb_sndintpipe(         ictx->usbdev_intf0) UAF     else       pipe = usb_sndctrlpipe(         ictx->usbdev_intf0, 0) UAF  Guard access to usbdev_intf0 and usbdev_intf1 after disconnect by checking ictx->disconnected in all writer paths. Add early return with -ENODEV in send_packet(), vfd_write(), lcd_write() and display_open() if the device is no longer present.  Set and read ictx->disconnected under ictx->lock to ensure memory synchronization. Acquire the lock in imon_disconnect() before setting the flag to synchronize with any ongoing operations.  Ensure writers exit early and safely after disconnect before the USB core proceeds with cleanup.  Found by Linux Verification Center (linuxtesting.org) with Syzkaller.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-15 08:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40018",
                                "url": "https://ubuntu.com/security/CVE-2025-40018",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: Defer ip_vs_ftp unregister during netns cleanup  On the netns cleanup path, __ip_vs_ftp_exit() may unregister ip_vs_ftp before connections with valid cp->app pointers are flushed, leading to a use-after-free.  Fix this by introducing a global `exiting_module` flag, set to true in ip_vs_ftp_exit() before unregistering the pernet subsystem. In __ip_vs_ftp_exit(), skip ip_vs_ftp unregister if called during netns cleanup (when exiting_module is false) and defer it to __ip_vs_cleanup_batch(), which unregisters all apps after all connections are flushed. If called during module exit, unregister ip_vs_ftp immediately.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-24 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39964",
                                "url": "https://ubuntu.com/security/CVE-2025-39964",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg  Issuing two writes to the same af_alg socket is bogus as the data will be interleaved in an unpredictable fashion.  Furthermore, concurrent writes may create inconsistencies in the internal socket state.  Disallow this by adding a new ctx->write field that indiciates exclusive ownership for writing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-13 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-39946",
                                "url": "https://ubuntu.com/security/CVE-2025-39946",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tls: make sure to abort the stream if headers are bogus  Normally we wait for the socket to buffer up the whole record before we service it. If the socket has a tiny buffer, however, we read out the data sooner, to prevent connection stalls. Make sure that we abort the connection when we find out late that the record is actually invalid. Retrying the parsing is fine in itself but since we copy some more data each time before we parse we can overflow the allocated skb space.  Constructing a scenario in which we're under pressure without enough data in the socket to parse the length upfront is quite hard. syzbot figured out a way to do this by serving us the header in small OOB sends, and then filling in the recvbuf with a large normal send.  Make sure that tls_rx_msg_size() aborts strp, if we reach an invalid record there's really no way to recover.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-04 08:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * plucky/linux: 6.14.0-37.37 -proposed tracker (LP: #2131513)",
                            "",
                            "  * Poweroff not working consistently after upgrading kernel 6.14.0-17.17 or",
                            "    later (LP: #2115860)",
                            "    - drm/amd: Unify shutdown() callback behavior",
                            "    - drm/amd: Stop exporting amdgpu_device_ip_suspend() outside amdgpu_device",
                            "    - drm/amd: Remove comment about handling errors in",
                            "      amdgpu_device_ip_suspend_phase1()",
                            "    - drm/amd: Don't always set IP block HW status to false",
                            "    - drm/amd: Pass IP suspend errors up to callers",
                            "    - drm/amd: Avoid evicting resources at S5",
                            "",
                            "  * CAP_PERFMON insufficient to get perf data (LP: #2131046)",
                            "    - SAUCE: perf/core: Allow CAP_PERFMON for paranoid level 4",
                            "",
                            "  * i40e driver is triggering VF resets on every link state change",
                            "    (LP: #2130552)",
                            "    - i40e: avoid redundant VF link state updates",
                            "",
                            "  * kernel: sysfs: cannot create duplicate filename",
                            "    '/bus/platform/devices/iTCO_wdt' (LP: #2121997)",
                            "    - i2c: i801: Hide Intel Birch Stream SoC TCO WDT",
                            "",
                            "  * Fix incorrect bug number for CONFIG_KERNEL_ZSTD (LP: #2127676)",
                            "    - [Config] Fix bug note for CONFIG_KERNEL_ZSTD",
                            "",
                            "  * CVE-2025-39993",
                            "    - media: rc: fix races with imon_disconnect()",
                            "",
                            "  * CVE-2025-40018",
                            "    - ipvs: Defer ip_vs_ftp unregister during netns cleanup",
                            "",
                            "  * CVE-2025-39964",
                            "    - crypto: af_alg - Disallow concurrent writes in af_alg_sendmsg",
                            "    - crypto: af_alg - Fix incorrect boolean values in af_alg_ctx",
                            "",
                            "  * CVE-2025-39946",
                            "    - tls: make sure to abort the stream if headers are bogus",
                            ""
                        ],
                        "package": "linux",
                        "version": "6.14.0-37.37",
                        "urgency": "medium",
                        "distributions": "plucky",
                        "launchpad_bugs_fixed": [
                            2131513,
                            2115860,
                            2131046,
                            2130552,
                            2121997,
                            2127676
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Nov 2025 17:52:55 +0100"
                    }
                ],
                "notes": "linux-tools-6.14.0-37-generic version '6.14.0-37.37' (source package linux version '6.14.0-37.37') was added. linux-tools-6.14.0-37-generic version '6.14.0-37.37' has the same source package name, linux, as removed package linux-headers-6.14.0-36. As such we can use the source package version of the removed package, '6.14.0-36.36', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "removed": {
        "deb": [
            {
                "name": "linux-headers-6.14.0-36",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-6.14.0-36-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-6.14.0-36-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-modules-6.14.0-36-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-tools-6.14.0-36",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-tools-6.14.0-36-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "6.14.0-36.36",
                    "version": "6.14.0-36.36"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "notes": "Changelog diff for Ubuntu 25.04 plucky image from daily image serial 20251206 to 20251217",
    "from_series": "plucky",
    "to_series": "plucky",
    "from_serial": "20251206",
    "to_serial": "20251217",
    "from_manifest_filename": "daily_manifest.previous",
    "to_manifest_filename": "manifest.current"
}