From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xenproject.org>
Cc: "Luca Fancellu" <luca.fancellu@arm.com>,
"Jan Beulich" <JBeulich@suse.com>,
"Roger Pau Monné" <roger.pau@citrix.com>
Subject: Re: [PATCH] x86/IDT: Fix IDT generation for INT $0x80
Date: Tue, 11 Mar 2025 23:36:45 +0000 [thread overview]
Message-ID: <79b3e775-5996-4d31-80cf-0f29d56d9633@citrix.com> (raw)
In-Reply-To: <cdae37d8-a01d-412c-a48b-f4e27d7d898e@citrix.com>
On 11/03/2025 9:27 pm, Andrew Cooper wrote:
> On 11/03/2025 9:22 pm, Andrew Cooper wrote:
>> When PV is enabled, entry_int80 needs to be DPL3, not DPL0.
>>
>> This causes the XSA-259 PoC to fail with:
>>
>> --- Xen Test Framework ---
>> Environment: PV 64bit (Long mode 4 levels)
>> XSA-259 PoC
>> Error: Unexpected fault 0x800d0802, #GP[IDT[256]]
>> Test result: ERROR
>>
>> (Clearly I have a bug in XTF's rendering of the error code too.)
Nope, it's a QEMU bug. Under QEMU, we get:
--- Xen Test Framework ---
Environment: PV 64bit (Long mode 4 levels)
XSA-259 PoC
(XEN) [ 3.982447] *** #GP/IDT ec 00000802
(XEN) [ 3.982668] *** #GP/IDT ec 00000802, not permitted
(XEN) [ 3.982849] *** #GP inject ec 00000802
Error: Unexpected fault 0x800d0802, #GP[IDT[256]]
Test result: ERROR
On real hardware:
(d1) --- Xen Test Framework ---
(d1) Environment: PV 64bit (Long mode 4 levels)
(d1) XSA-259 PoC
(XEN) *** #GP/IDT ec 00000402
(XEN) *** #GP/IDT ec 00000402, not permitted
(XEN) *** #GP inject ec 00000402
(d1) Success: Not vulnerable to XSA-259
(d1) Test result: SUCCESS
So it's by chance that Luca's testing even picked up this failure. The
XSA-259 PoC can't distinguish between the #GP INT emulation path and the
INT80 fastpath's error path which injects #GP.
~Andrew
next prev parent reply other threads:[~2025-03-11 23:37 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-11 21:22 [PATCH] x86/IDT: Fix IDT generation for INT $0x80 Andrew Cooper
2025-03-11 21:27 ` Andrew Cooper
2025-03-11 23:36 ` Andrew Cooper [this message]
2025-03-12 0:09 ` Andrew Cooper
2025-03-12 8:49 ` Jan Beulich
2025-03-11 22:16 ` Luca Fancellu
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=79b3e775-5996-4d31-80cf-0f29d56d9633@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=JBeulich@suse.com \
--cc=luca.fancellu@arm.com \
--cc=roger.pau@citrix.com \
--cc=xen-devel@lists.xenproject.org \
/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.