From: Peter Xu <peterx@redhat.com>
To: Fabiano Rosas <farosas@suse.de>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
qemu-devel@nongnu.org, "Thomas Huth" <thuth@redhat.com>,
"Alex Bennée" <alex.bennee@linaro.org>,
"Cédric Le Goater" <clg@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Mauro Matteo Cascella" <mcascell@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Pierrick Bouvier" <pierrick.bouvier@oss.qualcomm.com>
Subject: Re: [PATCH] docs: outline some guidelines for security classification
Date: Fri, 17 Jul 2026 11:01:12 -0400 [thread overview]
Message-ID: <alpDuIEBdwvAWJu5@x1.local> (raw)
In-Reply-To: <87a4rq4g9q.fsf@suse.de>
On Thu, Jul 16, 2026 at 09:21:53PM -0300, Fabiano Rosas wrote:
> Peter Xu <peterx@redhat.com> writes:
>
> > On Thu, Jul 16, 2026 at 03:51:31PM -0300, Fabiano Rosas wrote:
> >> > I wonder if we can simply above 5 points into something simpler, or skip
> >> > for now? To me, what is out of scope is more valuable to be put into doc,
> >> > because I bet 99% if not all of existing "security issues" on migration in
> >> > past few months fall into it.. so it saves huge time already for triaging.
> >>
> >> I want to reduce the guesswork both when reporting issues and when
> >> triaging. People tend to sit around and imagine infinite scenarios, it's
> >> not productive.
> >>
> >> This section is so we can point at it and ask for some indication of any
> >> of the points above. Otherwise we'll get the random bug report saying
> >> that weird behavior was achieved, therefore CVE. These are the
> >> situations I could think of that would obviously be worthy of further
> >> consideration.
> >>
> >> Could you expand on why you think this is not worth having? I don't
> >> think I understand it.
> >
> > I didn't expect to point to a bug report into "IN SCOPE" category. IMHO,
> > the major use case for the doc is to point a bug report into "OUT OF SCOPE"
> > category.. then we can easily justify an issue to be not a CVE candidate.
> >
> > When it is a real security issue, we likely need to evaluate it case by
> > case, but first it needs to not directly fall int OUT OF SCOPE first.
> >
> > I think it could be that I hardly have any real experience with a legit
> > security report versus migration yet, but we have richer experience on
> > "what we don't think is a security issue, but only a bug" thanks to AI.. so
> > NOT IN SCOPE is easier to list to me than IN SCOPE ones.
> >
>
> I see.
>
> > Neither do I have very clear idea after reading the five examples given.
> >
> > To make it clearer on what I meant, I can start by asking some questions on
> > the five examples listed IN SCOPE. You don't need to answer all, or
> > maybe.. no need to answer any of them, just to show my confusions on
> > reading the examples (hence the request of simplifications, or removal, at
> > first version).
> >
>
> Thanks, let's see if I can defend myself! =)
When we're on the same side, there isn't much to "defend"! :)
>
> >> 1) Privilege escalation from the guest operating system into the
> >> destination QEMU process or host.
> >
> > Do you mean any form of guest operation to cause privilege escalation?
> > Obviously, it must be about during a live migration happening, otherwise I
> > don't see how it is relevant to migration, but then is this only talking
> > about a postcopy use case (where dest QEMU has vCPU running)? After all,
> > precopy migration guest operations all done on source, so if there's any
> > privilege escalation, it needs to happen on source host first.
> >
> > Also, I am a bit lost on why this is special for migration. Such issue can
> > happen on any host without migration. It's a bit unclear to me.
> >
>
> I mean when the guest OS does some trickery that gets propagated to the
> destination machine via migration and the person controlling that guest
> gets privileges on the QEMU process on the destination. Injecting a
> payload of some sort, or setting up a device to allow later
> exploitation.
To me, it's more likely some exploit will work even without migration, than
some exploit only be enabled only after a migration. But I understand now.
Maybe some more description would be nice?
For example, "privilege escalation that can only be enabled by a migration
process (successful or not)", which IMO it doesn't always need to be on the
dest too, if a failed migration can also trigger an exploit.
I think your wording in English is normally better than mine, though..
>
> >>
> >> 2) Tampering or exfiltration of migration stream data by a third party
> >> at a lower privilege level than either QEMU processes involved in the
> >> migration.
> >
> > If we have the ASSUMPTION describing migration stream is secure, why do we
> > worry about third party hijacking migration stream? Someone already
> > breached?
> >
>
> We assume the stream is secure, but there could still be a bug in the
> migration code that allows a thirdy party to read the stream. As for
> "tampering", you're right that's probably already covered by the
> assumptions we made earlier.
I see. Can it be put in another (hopefully simpler) way? Like "Exploits
that can cause misfunction / disability of migration channel encryptions".
>
> >>
> >> 3) Termination of the source QEMU process by source virtual machine
> >> guest userspace, including by forcing host OS resource constraints to
> >> be reached.
> >
> > This is also not clear on how it correlates to migration, because IIUC this
> > can also happen without migration. Maybe it's trying to catch the cases
> > where it only can be attacked during migration?
> >
>
> Yes, say the userspace inside the guest does something that causes the
> migration code to crash when qmp_migrate is issued, for instance. I'm
> not saying it's a simple thing to happen, just that IF it happens, then
> we have already reasoned about it and agreed that it has the potential
> to become a CVE.
If any guest behavior can either crash QEMU or causing monitor commands to
further crash QEMU, then I think it deserves a CVE.
But then here it's about when migration is involved. It's again a niche
context to think about IMHO, but yes I get what you mean now.
>
> > What is "guest userspace"? Is that the userspace of the guest OS?
> >
>
> Yes, assuming the OS itself already has ways to shoot itself in the foot
> by tampering with devices. But the userspace is in another layer, it
> could attempt to do bad things to the OS.
IIUC, from QEMU security pov, guest userspace or kernel shouldn't make much
difference. Guest userspace messing up with guest kernel is the same as
when happening on bare metal in most cases?
There might be something more to exploit when hypervisor bug helps an
attacker, but again if we furtheradd migration into picture, that becomes:
Guest userspace exploits that explicitly leverage a hypervisor bug
_during_ migration to attach the guest OS
I agree if there is such a case it might be CVE candidate, but it's a bit
too detailed in my flavor to be put into a doc for demostration purpose..
Basically since migration is fully transparent we can add "during
migration" into all the hypervisor related scenarios..
Maybe we can simplify this to below?
Guest crash or misbehave that can only be exploited during migration
process
But this looks like what 1) was talking about, so maybe we can merge them
too?
> >>
> >> 4) Other tampering or exfiltration of data from the source QEMU process
> >> if reached from migration code or migration stream manipulation.
> >
> > This is a very generic statement to me, even though I think it's correct..
> > Say, how stream can be manipulated with TLS encryption? If it's
> > manipulated from the guest, is the guest data being tampered on its own or
> > some other data?
> >
>
> Right, this is a catchall meaning: even with all of the above, if
> someone finds a way to do this, the previous points do not invalidate
> this find.
>
> I guess I wrote all of these with a sense of providing some assurance
> that even though we'll possibly be rejecting various bugs as
> non-security related, there are still clear situations where there's a
> security implication and we're aware of it.
Yes, I think from that POV maybe you're right we should still attach IN
SCOPE examples, but just to use some simpler wording and obvious examples
in the description.
For this one, it's about "data breach". Can merge with 1) too?
>
> >>
> >> 5) Causing source QEMU process to enter a state from which migration is
> >> not possible permanently.
> >
> > This is a very valid one and clear to understand. However I don't know if
> > any of such would really happen, though.
>
> I don't think it matters if it would happen. If it ever does, we think
> it's bad enough that it will be considered for a CVE. "Considered", as
> opposed to just filing it as a normal bug. But the analysis could still
> result in nothing and we'd treat it as just a bug anyway.
>
> > It's easier to happen to me when e.g. we leaked memory in QMP handlers
> > which may cause DoS rather than "cannot migrate anymore"..
> >
>
> What I'm talking about in this particular point is about putting an
> admin in a situation where they can only resort to shutting down the
> virtual machine. This is a counterpart to the "failed migrations are
> normal" assumption up above; failed migrations can be easily worked
> around, but permanent failure cannot.
Yeah, that's OK.
>
> > Also, if it's only the VM itself got affected (say, attacker from guest
> > within causing its VM not migratable), then the damage it can cause is very
> > limited too. I'm not 100% sure I know how severe is such, and whether it's
> > CVE.
>
> Fair point, maybe it's not super relevant indeed. Note I'm not trying to
> say that these items will become CVEs, just that if someone can put an
> argument that they can happen, then it's something we'll gladly look
> into.
IMHO if we want to have IN SCOPE, we should put whatever we're 100% sure is
CVE into IN SCOPE, and avoid mention things in-between. Otherwise it may
make the document less clear, then less helpful in general.
It's the same to OUT OF SCOPE: when we see anything falls into that, we
should be confident to say "This is not a CVE candidate, please refer to
document XXX".
I used to suggest removal of IN SCOPE was only trying to make the first
version easier. I agree having some would make sense even in the first
version, but maybe some rewording would be nice to make it very clear on
what it describes.
IMO it can still be as generic as this in one bullet covering a lot of
cases, meanwhile hopefully clear on what it describes:
Any form of privilege escalation, data breach, guest crash [1] or
hypervisor misbehave that requires migration process to trigger,
successful or not.
[1] guest crash only matters on whichever side is live. For example, in
a precopy setup, destination QEMU crash is normally benign and can easily
fallback to source by a migration failure. The guest crash described
here should only include where it causes real damage to the guest VM by
enforced shutdown or misbehave.
I'll leave decision to you on what you prefer as long as no objections
elsewhere; you have kudos drafting this, you deserve it.
Thanks!
--
Peter Xu
next prev parent reply other threads:[~2026-07-17 15:02 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-07 10:59 [PATCH] docs: outline some guidelines for security classification Daniel P. Berrangé
2026-07-07 12:16 ` Thomas Huth
2026-07-07 12:20 ` Cédric Le Goater
2026-07-07 12:35 ` John Levon
2026-07-07 17:11 ` Daniel P. Berrangé
2026-07-07 12:43 ` Marc-André Lureau
2026-07-07 13:43 ` Michael S. Tsirkin
2026-07-07 16:35 ` Daniel P. Berrangé
2026-07-16 14:08 ` Fabiano Rosas
2026-07-16 15:27 ` Daniel P. Berrangé
2026-07-16 18:34 ` Fabiano Rosas
2026-07-17 15:19 ` Daniel P. Berrangé
2026-07-16 15:40 ` Peter Xu
2026-07-16 18:51 ` Fabiano Rosas
2026-07-16 19:56 ` Peter Xu
2026-07-17 0:21 ` Fabiano Rosas
2026-07-17 15:01 ` Peter Xu [this message]
2026-07-07 16:28 ` Mauro Matteo Cascella
2026-07-07 16:29 ` Daniel P. Berrangé
2026-07-16 20:47 ` Michael S. Tsirkin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpDuIEBdwvAWJu5@x1.local \
--to=peterx@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=berrange@redhat.com \
--cc=clg@redhat.com \
--cc=farosas@suse.de \
--cc=marcandre.lureau@redhat.com \
--cc=mcascell@redhat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pierrick.bouvier@oss.qualcomm.com \
--cc=qemu-devel@nongnu.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.