-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
On Sun, Mar 15, 2026 at 06:47:50AM -0700, TM TALEB wrote:
> Hello,
Hello,
> My name is Tarek, a Computer Science student interested in the Admin API
> Fuzzer project for GSoC 2026.
>
> I have been reading the previous threads on this list, PR #751, the Admin
> API documentation, and your reply to Laksh where you mentioned that "not
> every exception is a failure — invalid parameters are supposed to result in
> an exception during early validation, not later execution."
>
> This brings me to what I think is the core design challenge of this fuzzer:
> the oracle problem.
>
> For each Admin API call, the fuzzer needs to know what the *expected*
> behavior is for a given input, in order to correctly classify a response as
> a real bug or a normal rejection. Without this, the fuzzer would produce
> too many false positives to be useful.
>
> My question is: is there currently any machine-readable specification of
> what valid inputs look like for each Admin API method — for example,
> argument types, allowed characters, length limits — or would that
> specification need to be built as part of this project, extracted from the
> existing validation code in admin.py?
This is a very good question!
Unfortunately we don't have machine-readable version of it, but the
human-readable API documentation is at
https://doc.qubes-os.org/en/latest/developer/services/admin-api.html
(you likely found it already)
Some of the fields are defined more precisely, and some less.
Lack of formal API specification leads to issues like this:
https://github.com/QubesOS/qubes-issues/issues/10040
...
So, I guess improving the specification (based on the current
documentation, implementation, and likely a lot of clarification
questions) might be in scope for the project.
> Understanding this would help me propose a realistic and precise
> architecture in my formal proposal.
- --
Best Regards,
Marek Marczykowski-Górecki
Invisible Things Lab
-----BEGIN PGP SIGNATURE-----
iQEzBAEBCAAdFiEEhrpukzGPukRmQqkK24/THMrX1ywFAmm3fK4ACgkQ24/THMrX
1ywSCgf9HS808TGUHi4oZEcxKJgOoi4+/wjqLNNRKg+IRPjYmCD1j98fCR9kMYcU
qH1W/fXo+13iKI8wBh5mfF4/mZzkCPmtUT6K+Rev9J00bblRWmjTDHJ3wO65/aue
TCQ0Ih2PNwvu2rk4n2dvR/1CxRBfkfvJDCz9t5GrkyjICTI7ADHLf0+S05GqHz45
lOjEghQ7a8no+vsd6a9WdwMD/3UsVYzYp48IKK3ka0Zfpma3GddphWUzNB61N1vy
cG+A4Q5fY2da7lovE8tNrJolIvIJVKtTVRqkA+OJyuvuP+wnxS1M08EvWK8l4VOp
pDjbFs9k2zGTN7o5oGMcThCMaTlKtg==
=nvBB
-----END PGP SIGNATURE-----