Re: [PATCH] checkpolicy/fuzz: ignore invalid policy versions for the Xen target
Stephen Smalley <[email protected]> Wed, 29 Jul 2026 16:18:57 -0400
| Newsgroups | org.kernel.vger.selinux |
|---|---|
| Message-ID | <CAEjxPJ61MT5kstaRSSjMq7OfAf6Vr-jdMvBrSL2tti7yNBYbwQ@mail.gmail.com> |
On Mon, Jul 27, 2026 at 3:18 PM Stephen Smalley <[email protected]> wrote: > > Xen only supports specific policy versions (see policydb_compat[] in > libsepol/src/policydb.c); the fuzzer will always fail on the > policydb_write() call if given a version not listed in that array with > a .target_platform of SEPOL_TARGET_XEN. > > Reported-by: oss-fuzz (issue 539336382) > Signed-off-by: Stephen Smalley <[email protected]> Merged. > --- > checkpolicy/fuzz/checkpolicy-fuzzer.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/checkpolicy/fuzz/checkpolicy-fuzzer.c b/checkpolicy/fuzz/checkpolicy-fuzzer.c > index 7db0d4c8..c58d10e9 100644 > --- a/checkpolicy/fuzz/checkpolicy-fuzzer.c > +++ b/checkpolicy/fuzz/checkpolicy-fuzzer.c > @@ -159,7 +159,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) > /* > * Take the first byte whether to generate a SELinux or Xen policy, > * the second byte whether to parse as MLS policy, > - * and the second byte as policy version. > + * and the third byte as policy version. > */ > if (size < 3) > return 0; > @@ -189,6 +189,10 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) > if (policyvers < POLICYDB_VERSION_MIN || > policyvers > POLICYDB_VERSION_MAX) > return 0; > + if (platform == SEPOL_TARGET_XEN && > + policyvers != POLICYDB_VERSION_XEN_DEVICETREE && > + policyvers != POLICYDB_VERSION_BOUNDARY) > + return 0; > data += 3; > size -= 3; > > -- > 2.55.0 >