NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/60544: nvmm_vcpu_run: use after mutex release



>Number:         60544
>Category:       kern
>Synopsis:       nvmm_vcpu_run: use after mutex release
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Aug 06 01:20:00 +0000 2026
>Originator:     Taylor R Campbell
>Release:        current, 11, 10, 9
>Organization:
Acme VM Stoppers, Inc.
>Environment:
>Description:
    666 	error = nvmm_vcpu_get(mach, args->cpuid, &vcpu);
    667 	if (error)
    668 		goto out;
    669 
    670 	error = nvmm_do_vcpu_run(mach, vcpu, &args->exit);
    671 	nvmm_vcpu_put(vcpu);
...
    675 	if (vcpu)
    676 		vcpu->comm->stop = 0;

https://nxr.netbsd.org/xref/src/sys/dev/nvmm/nvmm.c?r=1.48#655

	Unclear why vcpu->comm->stop is supposed to happen so late and
	not immediately after nvmm_do_vcpu_run returns before we
	invalidate vcpu by nvmm_vcpu_put(vcpu).

	Reported by maxv.

>How-To-Repeat:

	code inspection

>Fix:

	Move the vcpu->comm->stop = 0 earlier.




Home | Main Index | Thread Index | Old Index