CVE-2026-90310 PUBLISHED

xen/xenbus: check otherend_id only after it has been initialized

Assigner: Linux
Reserved: 11.09.2026 Published: 17.09.2026 Updated: 17.09.2026

In the Linux kernel, the following vulnerability has been resolved:

xen/xenbus: check otherend_id only after it has been initialized

When device just got initialized (for example on module load), the otherend_id field is initialized only after xenbus_read_otherend_details() gets called. If xenstore watch triggers xenbus_dev_changed() before that, it might consider still zeroed otherend_id field (not matching actual xenstore content) as a sign of device state reset. It can happen because xenstore watch are handled in another thread (xenwatch), which can run in parallel to the initial device probe running at module load. In that case, it would call device_unregister(), which would deadlock against device probe from module init.

Fix this by considering dev->otherend_id change only after dev->otherend is set (which happen after otherend_id is initialized).

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from e2dcf9065536ab4a1b00828ff0d19f7d282dfecc to 36fb592af353c55832e2cafe3fcfc3291be05f19 (excl.)
  • affected from e2dcf9065536ab4a1b00828ff0d19f7d282dfecc to c76cbf348c7df077f93fa99a1225a527ce64cfa1 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 7.0 is affected
  • unaffected from 0 to 7.0 (excl.)
  • unaffected from 7.2.6 to 7.2.* (incl.)
  • unaffected from 7.3-rc1 to * (incl.)

References