<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic JWT Assertion Security Concern - Missing Validation of iss and sub Claims in Nuxeo Forum</title>
    <link>https://connect.hyland.com/t5/nuxeo-forum/jwt-assertion-security-concern-missing-validation-of-iss-and-sub/m-p/494874#M15886</link>
    <description>&lt;P&gt;Hello Nuxeo/Hyland Community,&lt;/P&gt;&lt;P&gt;I've been testing JWT authentication following the Nuxeo JWT documentation (&lt;A href="https://doc.nuxeo.com/nxdoc/using-oauth2/#configuring-nuxeo-for-jwt-access" target="_blank"&gt;https://doc.nuxeo.com/nxdoc/using-oauth2/#configuring-nuxeo-for-jwt-access&lt;/A&gt;) and noticed what appears to be a security concern regarding JWT assertion validation.&lt;/P&gt;&lt;P&gt;Current Behavior&lt;BR /&gt;When generating a JWT assertion for OAuth 2.0 token exchange, I can successfully obtain an access token even when using arbitrary or invalid values for the iss (issuer) and sub (subject) claims, as long as the JWT is properly signed with the nuxeo.jwt.secret.&lt;BR /&gt;For example:&lt;BR /&gt;{&lt;BR /&gt;"iss": "random-issuer",&lt;BR /&gt;"sub": "non-existent-user"&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;When this JWT (signed with the correct secret) is used to request an access token, Nuxeo accepts it and issues a valid token.&lt;/P&gt;&lt;P&gt;Expected Behavior (per RFC 7523)&lt;BR /&gt;According to RFC 7523 Section 3, the authorization server must:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Validate that the iss claim contains a unique identifier for a trusted entity&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Validate that the sub claim identifies a legitimate principal/user&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Questions&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Is this the intended behavior? Should Nuxeo validate the iss and sub claims against registered OAuth2 clients or existing users?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Security implications: If someone gains access to nuxeo.jwt.secret, they can generate tokens for any arbitrary subject. Is there additional validation I’m missing?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;RFC 7523 compliance: Is Nuxeo’s JWT implementation intended to be fully RFC 7523 compliant, or is it a simplified version for specific use cases?&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Environment&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Nuxeo version: NUXEO LTS PLATFORM 2025&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Authentication method: JWT Bearer Token&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Any clarification on the expected security model would be greatly appreciated. Thank you!&lt;/P&gt;</description>
    <pubDate>Mon, 01 Dec 2025 20:37:19 GMT</pubDate>
    <dc:creator>Slid31</dc:creator>
    <dc:date>2025-12-01T20:37:19Z</dc:date>
    <item>
      <title>JWT Assertion Security Concern - Missing Validation of iss and sub Claims</title>
      <link>https://connect.hyland.com/t5/nuxeo-forum/jwt-assertion-security-concern-missing-validation-of-iss-and-sub/m-p/494874#M15886</link>
      <description>&lt;P&gt;Hello Nuxeo/Hyland Community,&lt;/P&gt;&lt;P&gt;I've been testing JWT authentication following the Nuxeo JWT documentation (&lt;A href="https://doc.nuxeo.com/nxdoc/using-oauth2/#configuring-nuxeo-for-jwt-access" target="_blank"&gt;https://doc.nuxeo.com/nxdoc/using-oauth2/#configuring-nuxeo-for-jwt-access&lt;/A&gt;) and noticed what appears to be a security concern regarding JWT assertion validation.&lt;/P&gt;&lt;P&gt;Current Behavior&lt;BR /&gt;When generating a JWT assertion for OAuth 2.0 token exchange, I can successfully obtain an access token even when using arbitrary or invalid values for the iss (issuer) and sub (subject) claims, as long as the JWT is properly signed with the nuxeo.jwt.secret.&lt;BR /&gt;For example:&lt;BR /&gt;{&lt;BR /&gt;"iss": "random-issuer",&lt;BR /&gt;"sub": "non-existent-user"&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;When this JWT (signed with the correct secret) is used to request an access token, Nuxeo accepts it and issues a valid token.&lt;/P&gt;&lt;P&gt;Expected Behavior (per RFC 7523)&lt;BR /&gt;According to RFC 7523 Section 3, the authorization server must:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Validate that the iss claim contains a unique identifier for a trusted entity&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Validate that the sub claim identifies a legitimate principal/user&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Questions&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;P&gt;Is this the intended behavior? Should Nuxeo validate the iss and sub claims against registered OAuth2 clients or existing users?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Security implications: If someone gains access to nuxeo.jwt.secret, they can generate tokens for any arbitrary subject. Is there additional validation I’m missing?&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;RFC 7523 compliance: Is Nuxeo’s JWT implementation intended to be fully RFC 7523 compliant, or is it a simplified version for specific use cases?&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Environment&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;P&gt;Nuxeo version: NUXEO LTS PLATFORM 2025&lt;/P&gt;&lt;/LI&gt;&lt;LI&gt;&lt;P&gt;Authentication method: JWT Bearer Token&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Any clarification on the expected security model would be greatly appreciated. Thank you!&lt;/P&gt;</description>
      <pubDate>Mon, 01 Dec 2025 20:37:19 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/nuxeo-forum/jwt-assertion-security-concern-missing-validation-of-iss-and-sub/m-p/494874#M15886</guid>
      <dc:creator>Slid31</dc:creator>
      <dc:date>2025-12-01T20:37:19Z</dc:date>
    </item>
  </channel>
</rss>

