<feed xmlns='http://www.w3.org/2005/Atom'>
<title>qemu/qemu.git, branch stable-10.1</title>
<subtitle>QEMU main repository</subtitle>
<id>https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/atom?h=stable-10.1</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/atom?h=stable-10.1'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/'/>
<updated>2026-03-17T08:32:30+00:00</updated>
<entry>
<title>Update version for 10.1.5 release</title>
<updated>2026-03-17T08:32:30+00:00</updated>
<author>
<name>Michael Tokarev</name>
<email>mjt@tls.msk.ru</email>
</author>
<published>2026-03-17T08:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=29e39cbdfe8432ac9d2b3bfb944a32c76afe33b8'/>
<id>urn:sha1:29e39cbdfe8432ac9d2b3bfb944a32c76afe33b8</id>
<content type='text'>
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>hyperv/syndbg: check length returned by cpu_physical_memory_map()</title>
<updated>2026-03-13T07:16:27+00:00</updated>
<author>
<name>Paolo Bonzini</name>
<email>pbonzini@redhat.com</email>
</author>
<published>2026-03-09T12:20:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=82600ca4073c4dcb20aa348b8c1f5b2db21683a7'/>
<id>urn:sha1:82600ca4073c4dcb20aa348b8c1f5b2db21683a7</id>
<content type='text'>
If cpu_physical_memory_map() returns a length shorter than the one
that was passed into the function, writing the full out_len bytes
causes an access beyond the memory allocated to the guest; or in
the case of the MMIO bounce buffer, an out-of-bounds access in a
heap-allocated object.

Add a check similar to the one already in handle_send_msg(),
and take the occasion to remove repeated computations of
recv_byte_count + UDP_PKT_HEADER_SIZE and clarify that the
code does not write past out_len bytes.

Reported-by: Oleh Konko &lt;https://github.com/1seal&gt;
Reviewed-by: Daniel P. Berrangé &lt;berrange@redhat.com&gt;
Fixes: CVE-2026-3842
Signed-off-by: Paolo Bonzini &lt;pbonzini@redhat.com&gt;
(cherry picked from commit 4f28b87fdd24df2049626106b7c24d0180952115)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>fuse: Copy write buffer content before polling</title>
<updated>2026-03-13T07:16:27+00:00</updated>
<author>
<name>Hanna Czenczek</name>
<email>hreitz@redhat.com</email>
</author>
<published>2026-03-09T15:08:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=561ddd82ea06e3ef78ca043f3929924df012a2f5'/>
<id>urn:sha1:561ddd82ea06e3ef78ca043f3929924df012a2f5</id>
<content type='text'>
aio_poll() in I/O functions can lead to nested read_from_fuse_export()
calls, overwriting the request buffer's content.  The only function
affected by this is fuse_write(), which therefore must use a bounce
buffer or corruption may occur.

Note that in addition we do not know whether libfuse-internal structures
can cope with this nesting, and even if we did, we probably cannot rely
on it in the future.  This is the main reason why we want to remove
libfuse from the I/O path.

I do not have a good reproducer for this other than:

$ dd if=/dev/urandom of=image bs=1M count=4096
$ dd if=/dev/zero of=copy bs=1M count=4096
$ touch fuse-export
$ qemu-storage-daemon \
    --blockdev file,node-name=file,filename=copy \
    --export \
    fuse,id=exp,node-name=file,mountpoint=fuse-export,writable=true \
    &amp;

Other shell:
$ qemu-img convert -p -n -f raw -O raw -t none image fuse-export
$ killall -SIGINT qemu-storage-daemon
$ qemu-img compare image copy
Content mismatch at offset 0!

(The -t none in qemu-img convert is important.)

I tried reproducing this with throttle and small aio_write requests from
another qemu-io instance, but for some reason all requests are perfectly
serialized then.

I think in theory we should get parallel writes only if we set
fi-&gt;parallel_direct_writes in fuse_open().  In fact, I can confirm that
if we do that, that throttle-based reproducer works (i.e. does get
parallel (nested) write requests).  I have no idea why we still get
parallel requests with qemu-img convert anyway.

Also, a later patch in this series will set fi-&gt;parallel_direct_writes
and note that it makes basically no difference when running fio on the
current libfuse-based version of our code.  It does make a difference
without libfuse.  So something quite fishy is going on.

I will try to investigate further what the root cause is, but I think
for now let's assume that calling blk_pwrite() can invalidate the buffer
contents through nested polling.

Cc: qemu-stable@nongnu.org
Reviewed-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
Signed-off-by: Hanna Czenczek &lt;hreitz@redhat.com&gt;
Message-ID: &lt;20260309150856.26800-2-hreitz@redhat.com&gt;
Reviewed-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
Signed-off-by: Kevin Wolf &lt;kwolf@redhat.com&gt;
(cherry picked from commit a3fcbca0ef643a8aecf354bdeb08b1d81e5b33e7)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>target/loongarch: Avoid recursive PNX exception on CSR_BADI fetch</title>
<updated>2026-03-13T07:16:00+00:00</updated>
<author>
<name>rail5</name>
<email>andrew@rail5.org</email>
</author>
<published>2026-03-06T07:33:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=730e6cb5547b85a84f1c5585fb0f17920559b50f'/>
<id>urn:sha1:730e6cb5547b85a84f1c5585fb0f17920559b50f</id>
<content type='text'>
loongarch_cpu_do_interrupt() updates CSR_BADI by fetching the faulting
instruction with cpu_ldl_code_mmu().

For a PNX exception (instruction fetch prohibited by NX), fetching the
instruction at env-&gt;pc will fault with PNX again. This can lead to an
infinite exception loop.

Treat PNX like other instruction-fetch exceptions (PIF/ADEF) and do not
update CSR_BADI for it.

-Fixes: 410dfbf620a ("target/loongarch: Move TCG specified functions to tcg_cpu.c")
Fixes: d2cba6f7cea9 ("target/loongarch: Add other core instructions support")
Cc: qemu-stable@nongnu.org
Signed-off-by: rail5 (Andrew S. Rightenburg) &lt;andrew@rail5.org&gt;
Reviewed-by: Bibo Mao &lt;maobibo@loongson.cn&gt;
Reviewed-by: Song Gao &lt;gaosong@loongson.cn&gt;
Signed-off-by: Song Gao &lt;gaosong@loongson.cn&gt;
(cherry picked from commit db2325f79481fab87211e5a287580d753f582cb8)
(Mjt: back-port to 10.1.x across v10.1.0-1187-g410dfbf620
 "target/loongarch: Move TCG specified functions to tcg_cpu.c")
(fixing the Fixes: tag)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>target/loongarch: Preserve PTE permission bits in LDPTE</title>
<updated>2026-03-13T07:15:33+00:00</updated>
<author>
<name>rail5</name>
<email>andrew@rail5.org</email>
</author>
<published>2026-03-06T07:33:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=3a7b0cd6a6051c920f17c0798ba0be970c1e8869'/>
<id>urn:sha1:3a7b0cd6a6051c920f17c0798ba0be970c1e8869</id>
<content type='text'>
The LDPTE helper loads a page table entry (or huge page entry) from guest
memory and currently applies the PALEN mask to the whole 64-bit value.

That mask is intended to constrain the physical address bits, but masking
the full entry also clears upper permission bits in the PTE, including NX
(bit 62). As a result, LoongArch TCG can incorrectly allow instruction
fetches from NX mappings when translation is driven through software
page-walk.

Fix this by masking only the PPN/address field with PALEN while preserving
permission bits, and by clearing any non-architectural (software) bits
using a hardware PTE mask. LDDIR is unchanged since it returns the base
address of the next page table level.

Reported at: https://gitlab.com/qemu-project/qemu/-/issues/3319

-Fixes: 56599a705f2 ("target/loongarch: Introduce loongarch_palen_mask()")
Fixes: f757a2cd6948 ("target/loongarch: Add LoongArch interrupt and exception handler")
Cc: qemu-stable@nongnu.org
Signed-off-by: rail5 (Andrew S. Rightenburg) &lt;andrew@rail5.org&gt;
Reviewed-by: Bibo Mao &lt;maobibo@loongson.cn&gt;
Reviewed-by: Song Gao &lt;gaosong@loongson.cn&gt;
Signed-off-by: Song Gao &lt;gaosong@loongson.cn&gt;
(cherry picked from commit 2d877bc02a3b94998cbdd784d194c173d308a98a)
(Mjt: backport to 10.1.x which lacks v10.2.0-1568-g56599a705f
 "target/loongarch: Introduce loongarch_palen_mask()")
(fixing the Fixes: tag)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>hw/net/npcm_gmac: Catch accesses off the end of the register array</title>
<updated>2026-03-11T13:41:49+00:00</updated>
<author>
<name>Peter Maydell</name>
<email>peter.maydell@linaro.org</email>
</author>
<published>2026-03-06T15:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=92a24cdbcca3a6bbaf9c5b39f0eebf687169745b'/>
<id>urn:sha1:92a24cdbcca3a6bbaf9c5b39f0eebf687169745b</id>
<content type='text'>
In the npcm_gmac device, we create the iomem MemoryRegion with
a size of 8KB, but NPCM_GMAC_NR_REGS is only 0x1060 / 4. This
means there's a range of offsets that the guest can access
that don't have gmac-&gt;regs[] entries. We weren't catching this,
so the guest could get us to index off the end of the regs array.

Catch and log these invalid accesses.

Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3316
Signed-off-by: Peter Maydell &lt;peter.maydell@linaro.org&gt;
Reviewed-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
Message-ID: &lt;20260306154016.2194091-1-peter.maydell@linaro.org&gt;
Signed-off-by: Philippe Mathieu-Daudé &lt;philmd@linaro.org&gt;
(cherry picked from commit 550391c7134d295d73b2b0e7a1111a922b78c13c)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>linux-user: fix TIOCGSID ioctl</title>
<updated>2026-03-11T13:41:49+00:00</updated>
<author>
<name>Andreas Schwab</name>
<email>schwab@suse.de</email>
</author>
<published>2026-02-10T09:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=3308cb1fcece1bb3472c0e7bc7d360c7c8467726'/>
<id>urn:sha1:3308cb1fcece1bb3472c0e7bc7d360c7c8467726</id>
<content type='text'>
TIOCGSID is IOC_R, not IOC_W.

Signed-off-by: Andreas Schwab &lt;schwab@suse.de&gt;
Reviewed-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit 6a1221614fd9344a22cafea78e48d6ded95f317d)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>tests/tcg/multiarch/test-mmap: Check mmaps beyond reserved_va</title>
<updated>2026-03-11T13:41:49+00:00</updated>
<author>
<name>Bingwu Zhang</name>
<email>xtex@astrafall.org</email>
</author>
<published>2026-02-27T16:46:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=aa3b7cc939291b53fec5f4554d49d6746d1fef40'/>
<id>urn:sha1:aa3b7cc939291b53fec5f4554d49d6746d1fef40</id>
<content type='text'>
Unfixed mmap calls where start &gt; reserved_va or the max guest addr
should have a valid result.

Signed-off-by: Bingwu Zhang &lt;xtex@astrafall.org&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit c865b6bce5d0c882b86fb7c3512174cdaf235017)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>bsd-user: Deal with mmap where start &gt; reserved_va</title>
<updated>2026-03-11T13:41:49+00:00</updated>
<author>
<name>Bingwu Zhang</name>
<email>xtex@astrafall.org</email>
</author>
<published>2026-02-27T16:46:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=99dbd039e0dc4c0ecd55996a8bb7f4d638f53f52'/>
<id>urn:sha1:99dbd039e0dc4c0ecd55996a8bb7f4d638f53f52</id>
<content type='text'>
Fixes: f12294b5bd21 ("bsd-user: Use page_find_range_empty for mmap_find_vma_reserved")
Signed-off-by: Bingwu Zhang &lt;xtex@astrafall.org&gt;
Reviewed-by: Helge Deller &lt;deller@gmx.de&gt;
Reviewed-by: Warner Losh &lt;imp@bsdimp.com&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit e8e7d1f97785be2fd81fc520e0c7b9d228c10a56)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
<entry>
<title>linux-user: Deal with mmap where start &gt; reserved_va</title>
<updated>2026-03-11T13:41:49+00:00</updated>
<author>
<name>Bingwu Zhang</name>
<email>xtex@astrafall.org</email>
</author>
<published>2026-02-27T16:46:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/virt/qemu/qemu.git/commit/?id=58c5c5ea2b93f7b284f412547450eecb6155b6ec'/>
<id>urn:sha1:58c5c5ea2b93f7b284f412547450eecb6155b6ec</id>
<content type='text'>
Fixes: 4c13048e02d9 ("linux-user: Use page_find_range_empty for mmap_find_vma_reserved")
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/3310
Signed-off-by: Bingwu Zhang &lt;xtex@astrafall.org&gt;
Reviewed-by: Helge Deller &lt;deller@gmx.de&gt;
Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
(cherry picked from commit f2813e13fe910e01127271a87177a477b9438bc6)
Signed-off-by: Michael Tokarev &lt;mjt@tls.msk.ru&gt;
</content>
</entry>
</feed>
