CVE-2026-93827: virtio-fs: avoid double-free on failed queue setup

Published Sep 24, 2026
·
Updated

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

virtio-fs: avoid double-free on failed queue setup

virtiofssetupvqs() allocates fs->vqs and fs->mqmap before calling virtiofindvqs(). If virtiofindvqs() fails, the error path frees both pointers and returns an error to virtiofsprobe().

virtiofsprobe() then drops the last kobject reference, and virtiofsktyperelease() frees fs->vqs and fs->mqmap again. This leaves dangling pointers in struct virtiofs and can trigger a double-free during probe failure cleanup.

Set fs->vqs and fs->mqmap to NULL immediately after kfree() in the virtiofssetupvqs() error path so that the later kobject release sees an uninitialized state and kfree(NULL) becomes harmless.

This can be reproduced when a broken virtio-fs device advertises more request queues than the transport actually provides. In that case virtiofindvqs() fails while setting up the extra queue, and the probe path reaches the double-free cleanup sequence.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Compensating control

    In the virtio_fs_setup_vqs() error path, set fs->vqs and fs->mq_map to NULL immediately after kfree() so later cleanup sees an uninitialized state and kfree(NULL) is harmless.

Event History

Sep 24, 2026
CVE Published
via MITRE·04:03 PM
Data Sourced
via MITRE·04:03 PM
Description
Data Sourced
via NVD·05:17 PM
Description

Frequently Asked Questions

1

When can this issue be triggered?

It is triggered during virtio-fs device probing when queue setup fails after virtio_fs_setup_vqs() has allocated its queue-related arrays. A reproducible case is a broken virtio-fs device that advertises more request queues than its transport provides.

2

What is the consequence of the failed probe path?

The queue setup error path frees the queue-related pointers, then the later kobject release frees the same dangling pointers again. This can trigger a double-free during probe failure cleanup.

3

What does the fix change?

The fix sets fs->vqs and fs->mq_map to NULL immediately after freeing them in the queue-setup error path. The subsequent release then performs kfree(NULL), avoiding the second free.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203