The POST /api/config endpoint uses a vulnerable recursive merge function that does not sanitize __proto__ keys.
User sessions are stored as plain objects (not class instances). The admin check uses
user.constructor.name === 'AdminUser'.
An attacker can pollute Object.prototype.constructor with {"name": "AdminUser"} via:
{"__proto__": {"constructor": {"name": "AdminUser"}}}
After pollution, all plain objects will report their constructor.name as "AdminUser", bypassing the admin check on GET /api/admin/flag.