1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-18 02:19:39 +00:00
freebsd/usr.sbin
Chuck Tuffli 5374b9e146 bhyve/nvme: Fix Infinite loop in queue processing
In the functions pci_nvme_handle_admin_cmd and pci_nvme_handle_io_cmd
infinite loops are possible in the bhyve process if the sq->tail value
is greater than sq->size.

An attacker could overload the host CPU.

Fix is to validate that doorbell values:
 - Are for a valid (i.e., created) queue
 - Are not the same as the previous value
 - Fit within the available capacity

The emulation will generate an Asynchronous Event Notification (Invalid
Doorbell or Invalid Doorbell Value) if enabled and ignore the doorbell
update.

While in the neighborhood, remove a redundant bounds check.

Reported by:	Synacktiv
MFC after:	1 week
Security:	HYP-14
Sponsored by:	Alpha-Omega Project
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D46064
2024-10-13 06:58:50 -07:00
..
ac Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
accton Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
acpi acpidump: Print SPCR v3 and v4 fields 2024-10-11 12:06:33 -06:00
adduser adduser.8: update log location + spdx 2024-09-06 12:34:31 -06:00
apm Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
apmd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
arp arp(8): Complete libxo transition 2024-10-13 02:21:45 +08:00
audit
auditd
auditdistd
auditreduce
authpf Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
autofs Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
bhyve bhyve/nvme: Fix Infinite loop in queue processing 2024-10-13 06:58:50 -07:00
bhyvectl
bhyveload Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
binmiscctl manuals: Fix typos in -offset for .Bd and .Bl 2024-10-03 14:49:31 -03:00
blacklistctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
blacklistd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
bluetooth Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
boot0cfg Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
bootparamd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
boottrace
bsdconfig Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
bsdinstall Copy the new ia32 loader 2024-09-20 08:45:10 -06:00
bsnmpd bsnmpd: FreeBSD has strlcpy(3) 2024-07-16 00:12:29 -05:00
btxld Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
camdd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
cdcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
certctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
chkgrp Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
chown Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
chroot Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ckdist Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
clear_locks Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
config config: Search include paths for files to be read (options, files) 2024-09-18 15:49:46 -04:00
cpucontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
crashinfo Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
cron Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
crunch Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ctladm Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ctld ctld: fix several process setup/teardown bugs 2024-09-18 14:06:31 -06:00
cxgbetool Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
daemon Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
dconschat manuals: Fix syntax of list width 2024-10-08 16:16:26 -03:00
devctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
devinfo Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
diskinfo Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
dumpcis
editmap Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
edquota Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
efibootmgr efibootmgr: minor cleanup (spdx, typos, see also) 2024-09-22 09:21:39 -06:00
efidp Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
efitable Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
efivar Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
efiwake Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
etcupdate etcupdate(8): improve phrasing 2024-07-16 15:17:31 -04:00
extattr Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
extattrctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fdcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fdformat Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fdread Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fdwrite
fifolog Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
flowctl
freebsd-update Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fstyp zfs: merge openzfs/zfs@b10992582 2024-09-09 18:13:02 +02:00
ftp-proxy Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
fwcontrol fwcontrol: Allocate full fw_asyreq structures passed to the kernel 2024-07-19 13:09:32 -04:00
fwget fwget: add needed firmware for AMD Raphael GPUs 2024-07-07 05:45:37 -06:00
getfmac Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
getpmac Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
gpioctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
gssd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
gstat usr.sbin/gstat: add microsecond precision for disk latency 2024-08-04 11:31:06 +03:00
hyperv Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
i2c i2c: Don't print uninitialized data when verbose 2024-09-20 09:37:58 -06:00
ifmcstat Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
inetd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
iostat Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
iovctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ip6addrctl getaddrinfo.{1,3}: Cross-reference ip6addrctl(8) 2024-09-06 12:34:32 -06:00
ipfwpcap
iscsid Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
jail usr.sbin/jail/jail.8: Make a reference more accurate 2024-09-29 11:33:14 +03:00
jexec jail: only chdir to user's home directory when user is specified 2024-08-12 15:23:28 -07:00
jls jls(8): Complete libxo transition 2024-10-13 02:21:47 +08:00
kbdcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
kbdmap Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
keyserv Fix enum warning in keyserv 2024-07-31 21:28:42 +02:00
kldxref Revert "libkldelf: add a private library for kernel/kld-related ELF parsing" 2024-10-08 19:40:20 +00:00
lastlogin lastlogin(8): Complete libxo transition 2024-10-13 02:21:47 +08:00
lpr lpd: Tighten permissions on /var/run/printer 2024-10-11 09:50:08 -06:00
lptcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mailstats Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mailwrapper Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
makefs makefs: Remove the warning printed when makefs -t zfs is used 2024-10-04 15:56:34 +00:00
makemap Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
manctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
memcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mfiutil manuals: Misc macro typos 2024-09-21 05:25:15 -06:00
mixer mixer tests: Serialize 2024-09-09 15:28:30 +00:00
mld6query
mlx5tool manuals: Misc macro typos 2024-09-21 05:25:15 -06:00
mlxcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mount_smbfs Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mountd mountd: Add check for "=" after exports(5) options 2024-09-06 16:41:12 -07:00
moused Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mpsutil
mptable Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mptutil Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
mtest Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ndp ndp(8): Complete libxo transition 2024-10-13 02:21:46 +08:00
newsyslog Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nfscbd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nfsd nfsd.c: Synchronize error handling 2024-09-29 13:11:54 -07:00
nfsdumpstate Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nfsrevoke Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nfsuserd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ngctl
nghook
nmtree Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nologin Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
nscd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ntp ntp: Improve descriptions in man pages 2024-09-25 05:40:17 -07:00
nvmfd nvmfd/nvmft: Fix a typo "whiled" -> "while" 2024-09-03 16:12:04 -04:00
nvram Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ofwdump Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pciconf
periodic Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pkg pkg: improve error message 2024-10-07 13:05:07 -04:00
pmc
pmcannotate
pmccontrol
pmcstat
pmcstudy Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pnfsdscopymr Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pnfsdsfile Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pnfsdskill manuals: Fix "skipping end of block" .El errors 2024-10-07 15:37:47 -03:00
pnpinfo Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
powerd powerd: use nlsysevent if possible 2024-10-08 08:40:58 +02:00
ppp usr.sbin/ppp: correct SIOCDIFADDR{,_IN6} calls to use {,in6_}ifreq 2024-07-22 10:03:37 +00:00
pppctl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
praliases Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
praudit Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
prometheus_sysctl_exporter Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pstat Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
pw pw: Clarify groupadd/groupmod memberlist formats 2024-07-29 14:14:14 -06:00
pwd_mkdb manuals: Fix typos in -offset for .Bd and .Bl 2024-10-03 14:49:31 -03:00
pwm Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
quot Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
quotaon Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rarpd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
repquota Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rip6query Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rmt Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
route6d Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.lockd Add man page for nfslockd. 2024-05-10 11:23:13 +02:00
rpc.statd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.tlsclntd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.tlsservd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.umntall Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.yppasswdd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.ypupdated Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpc.ypxfrd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rpcbind Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rrenumd
rtadvctl
rtadvd rtadvd(8): support PREF64 (RFC 8781) 2024-05-23 14:40:48 -06:00
rtprio Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
rtsold
rwhod Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
sa Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
sendmail Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
service manuals: Fix typos in -offset for .Bd and .Bl 2024-10-03 14:49:31 -03:00
services_mkdb Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
sesutil sesutil(8): Complete libxo transition 2024-10-13 02:21:46 +08:00
setfib Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
setfmac Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
setpmac Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
smbmsg
snapinfo man filesystems: fix xrefs after move to section 4 2024-05-16 10:25:29 -06:00
spi Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
spkrtest Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
spray Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
syslogd syslogd: Ignore getaddrinfo() errors if -ss is specified 2024-09-19 10:01:37 +00:00
sysrc Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tcpdchk Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tcpdmatch Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tcpdrop
tcpdump tcpdump: Update to 4.99.5 2024-09-23 20:23:25 +01:00
tcpsso tcpsso: remove support for some IPPROTO_TCP-level socket option names 2024-08-30 09:32:50 +02:00
tests Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
traceroute Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
traceroute6
trim Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
tzsetup tzsetup: correct timezone symlink target 2024-09-30 10:22:34 -04:00
uathload Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
uefisign Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ugidfw Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
uhsoctl usr.sbin/uhsoctl: correct SIOCDIFADDR calls to use ifreq 2024-07-22 14:58:19 +00:00
unbound Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
usbconfig
usbdump Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
utx Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
valectl valectl(8): explicitly mention network switches 2024-08-30 16:39:56 -03:00
vidcontrol Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
vigr Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
vipw Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
wake Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
watch Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
watchdogd Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
wlandebug Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
wpa wpa: Fix gcc build 2024-07-24 08:04:33 -07:00
yp_mkdb Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ypbind Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ypldap
yppoll Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
yppush Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ypserv Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
ypset Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
zdump Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
zic Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
zonectl Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
zzz Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
Makefile mergemaster: remove from the tree 2024-07-16 08:25:54 -04:00
Makefile.aarch64
Makefile.amd64 Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
Makefile.i386 Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
Makefile.inc Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00
Makefile.powerpc Remove residual blank line at start of Makefile 2024-07-15 16:43:39 -06:00