Ahead of the 19 October interim: -03 does not cover a resource server
or MCP gateway that treats a rejection of its own credential by its
introspection endpoint or policy decision point as an outage, or that
loses a refusal on a cache hit. RFC 7662 Section 2.3 has the AS answer
401 and says nothing about the protected request; Section 4 permits
caching, with staleness as the risk. The nearest -03 text is "fail
safe" in Section 4.2.6. This is the resource-server side of
Laxmikant Sharma's 25 September thread on how a client handles a 401.

Both shipped in Norviq, an open-source MCP enforcement point I
maintain that asks a policy decision point. Before 0.2.2, three
consecutive 401s opened a circuit breaker whose fallback was allow, so
later calls were mostly allowed until the credential was replaced.
Before 0.2.3, the cache-hit path skipped the gateway's own refusal, so
trust scoring recorded refused calls as allowed (the verdict served
was correct). Norviq still allows by default when its decision point
is unreachable, and one refusal still lands there: a TLS-layer
rejection of the gateway's client certificate arrives as a connection
error, not a 401, so it takes the allow fallback
(norviq/sidecar/remote_evaluator.py:205, :228-229 on main a419aef;
read, not run). The point is that a refusal is not an outage, at either
layer.
https://github.com/norviq-dev/norviq/releases/tag/v0.2.2
<https://www.google.com/url?q=https://github.com/norviq-dev/norviq/releases/tag/v0.2.2&source=gmail&ust=1790863043502000&sa=E>
https://github.com/norviq-dev/norviq/releases/tag/v0.2.3
<https://www.google.com/url?q=https://github.com/norviq-dev/norviq/releases/tag/v0.2.3&source=gmail&ust=1790863043502000&sa=E>

Proposed text, Section 7, new bullet:

* *Rejected Credentials Are Not Outages:* When an introspection
endpoint [RFC7662] or policy decision point rejects the resource
server's own credential, RFC 7662 Section 2.3 does not say what
happens to the protected request, and a resource server that
treats the rejection as an outage may admit it through its
outage fallback. A rejected credential must never admit the
request, whatever the outage posture. A decision served from an
introspection or decision cache (RFC 7662, Section 4) must pass
the same per-request checks as a fresh one, so a refusal reaches
the response and any audit or risk state derived from it.

The RFC and draft points are read, not run; the regression test for
each fix passes on Norviq main (a419aef) and fails with the fix
reverted. Happy to open this on the authors' tracker, or fold it into
Section 6.

Thanks,
Santosh Kumar Puppala
_______________________________________________
OAuth mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to