Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/vulndb: potential Go vuln in github.com/ory/hydra/oauth2: GHSA-3p3g-vpw6-4w66 #1131

Closed
GoVulnBot opened this issue Nov 30, 2022 · 1 comment

Comments

@GoVulnBot
Copy link

In GitHub Security Advisory GHSA-3p3g-vpw6-4w66, there is a vulnerability in the following Go packages or modules:

Unit Fixed Vulnerable Ranges
github.com/ory/hydra/oauth2 1.4.0 < 1.4.0

See doc/triage.md for instructions on how to triage this report.

modules:
  - module: TODO
    versions:
      - fixed: 1.4.0
    packages:
      - package: github.com/ory/hydra/oauth2
  - module: TODO
    versions:
      - fixed: 1.4.0
    packages:
      - package: github.com/ory/hydra
description: "### Impact\n\nWhen using client authentication method \"private_key_jwt\"
    [1], OpenId specification says the following about assertion `jti`:\n\n> A unique
    identifier for the token, which can be used to prevent reuse of the token. These
    tokens MUST only be used once, unless conditions for reuse were negotiated between
    the parties\n\nHydra does not seem to check the uniqueness of this `jti` value.
    Here is me sending the same token request twice, hence with the same `jti` assertion,
    and getting two access tokens:\n\n```\n$ curl --insecure --location --request
    POST 'https://localhost/_/oauth2/token' \\\n   --header 'Content-Type: application/x-www-form-urlencoded'
    \\\n   --data-urlencode 'grant_type=client_credentials' \\\n   --data-urlencode
    'client_id=c001d00d-5ecc-beef-ca4e-b00b1e54a111' \\\n   --data-urlencode 'scope=application
    openid' \\\n   --data-urlencode 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer'
    \\\n   --data-urlencode 'client_assertion=eyJhb [...] jTw'\n{\"access_token\":\"zeG0NoqOtlACl8q5J6A-TIsNegQRRUzqLZaYrQtoBZQ.VR6iUcJQYp3u_j7pwvL7YtPqGhtyQe5OhnBE2KCp5pM\",\"expires_in\":3599,\"scope\":\"application
    openid\",\"token_type\":\"bearer\"}⏎            ~$ curl --insecure --location
    --request POST 'https://localhost/_/oauth2/token' \\\n   --header 'Content-Type:
    application/x-www-form-urlencoded' \\\n   --data-urlencode 'grant_type=client_credentials'
    \\\n   --data-urlencode 'client_id=c001d00d-5ecc-beef-ca4e-b00b1e54a111' \\\n
    \  --data-urlencode 'scope=application openid' \\\n   --data-urlencode 'client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer'
    \\\n   --data-urlencode 'client_assertion=eyJhb [...] jTw'\n{\"access_token\":\"wOYtgCLxLXlELORrwZlmeiqqMQ4kRzV-STU2_Sollas.mwlQGCZWXN7G2IoegUe1P0Vw5iGoKrkOzOaplhMSjm4\",\"expires_in\":3599,\"scope\":\"application
    openid\",\"token_type\":\"bearer\"}\n```\n\n### Severity\n\nWe rate the severity
    as medium because the following reasons make it hard to replay tokens without
    the patch:\x10\n\n- TLS protects against MITM which makes it difficult to intercept
    valid tokens for replay attacks\n- The expiry time of the JWT gives only a short
    window of opportunity where it could be replayed\n\n### Patches\n\nThis will be
    patched with v1.4.0+oryOS.17\n\n### Workarounds\n\nTwo workarounds have been identified:\n\n-
    Do not allow clients to use `private_key_jwt`\n- Use short expiry times for the
    JWTs\n\n### References\n\nhttps://openid.net/specs/openid-connect-core-1_0.html#ClientAuthentication\n\n###
    Upstream\n\nThis issue will be resolved in the upstream repository https://github.com/ory/fosite"
cves:
  - CVE-2020-5300
ghsas:
  - GHSA-3p3g-vpw6-4w66

@julieqiu
Copy link
Member

julieqiu commented Nov 30, 2022

Duplicate of #786

@julieqiu julieqiu marked this as a duplicate of #1131 Nov 30, 2022
@julieqiu julieqiu marked this as a duplicate of #786 Nov 30, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants