{"id":"CVE-2025-68822","title":"Input: alps - fix use-after-free bugs caused by dev3_register_work","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nInput: alps - fix use-after-free bugs caused by dev3_register_work\n\nThe dev3_register_work delayed work item is initialized within\nalps_reconnect() and scheduled upon r…","severity":"high","cvss":7.8,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cvssSource":"cna","vendor":"Linux","product":"Linux","affected":["Linux >= 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 < ed8c61b89be0c45f029228b2913d5cf7b5cda1a7","Linux >= 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 < a9c115e017b2c633d25bdfe6709dda6fc36f08c2","Linux >= 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 < bf40644ef8c8a288742fa45580897ed0e0289474","Linux 4.0"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"total","timestamp":"2026-10-16T15:05:36.678846Z"},"published":"2026-01-13","updated":"2026-10-16","sourceUpdated":"2026-10-16T15:09:45.906Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-68822","references":[{"url":"https://git.kernel.org/stable/c/ed8c61b89be0c45f029228b2913d5cf7b5cda1a7"},{"url":"https://git.kernel.org/stable/c/a9c115e017b2c633d25bdfe6709dda6fc36f08c2"},{"url":"https://git.kernel.org/stable/c/bf40644ef8c8a288742fa45580897ed0e0289474"}],"tags":["cve.org"],"epss":0.00148,"epssPercentile":0.03638,"ingestedAt":"2026-10-16T17:24:46.634Z","slug":"CVE-2025-68822","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nInput: alps - fix use-after-free bugs caused by dev3_register_work\n\nThe dev3_register_work delayed work item is initialized within\nalps_reconnect() and scheduled upon receipt of the first bare\nPS/2 packet from an external PS/2 device connected to the ALPS\ntouchpad. During device detachment, the original implementation\ncalls flush_workqueue() in psmouse_disconnect() to ensure\ncompletion of dev3_register_work. However, the flush_workqueue()\nin psmouse_disconnect() only blocks and waits for work items that\nwere already queued to the workqueue prior to its invocation. Any\nwork items submitted after flush_workqueue() is called are not\nincluded in the set of tasks that the flush operation awaits.\nThis means that after flush_workqueue() has finished executing,\nthe dev3_register_work could still be scheduled. Although the\npsmouse state is set to PSMOUSE_CMD_MODE in psmouse_disconnect(),\nthe scheduling of dev3_register_work remains unaffected.\n\nThe race condition can occur as follows:\n\nCPU 0 (cleanup path)     | CPU 1 (delayed work)\npsmouse_disconnect()     |\n  psmouse_set_state()    |\n  flush_workqueue()      | alps_report_bare_ps2_packet()\n  alps_disconnect()      |   psmouse_queue_work()\n    kfree(priv); // FREE | alps_register_bare_ps2_mouse()\n                         |   priv = container_of(work...); // USE\n                         |   priv->dev3 // USE\n\nAdd disable_delayed_work_sync() in alps_disconnect() to ensure\nthat dev3_register_work is properly canceled and prevented from\nexecuting after the alps_data structure has been deallocated.\n\nThis bug is identified by static analysis.\n\n## Affected\n\n- `Linux >= 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 < ed8c61b89be0c45f029228b2913d5cf7b5cda1a7`\n- `Linux >= 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 < a9c115e017b2c633d25bdfe6709dda6fc36f08c2`\n- `Linux >= 04aae283ba6a8cd4851d937bf9c6d6ef0361d794 < bf40644ef8c8a288742fa45580897ed0e0289474`\n- `Linux 4.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":43,"depthScoreParts":{"impact":42.9,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}