Malformed token error with base64 encoded secret
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 35/100
- Issue 类型
- 缺陷
- 描述清晰度
- 基本清楚
- 活跃度
- 停滞
- 技术栈
- javascript, node.js
调研方向
从 JWT verification API 开始,使用提供的 token 和 secret,通过 Buffer.from(process.env.JWT_KEY, 'base64') 重现 HS256 情况。确定解码后的 secret 应如何处理,然后为此次重现添加覆盖,并确认验证不再报告 malformed token。
由索引模型根据 Issue 内容生成。
描述
Please do not report security vulnerabilities here. The Responsible Disclosure Program details the procedure for disclosing security issues.
Thank you in advance for helping us to improve this library! Please read through the template below and answer all relevant questions. Your additional work here is greatly appreciated and will help us respond as quickly as possible. For general support or usage questions, use the Auth0 Community or Auth0 Support. Finally, to avoid duplicates, please search existing Issues before submitting one here.
By submitting an Issue to this repository, you agree to the terms within the Auth0 Code of Conduct.
Description
Using a
base64encoded secret with an HS256 token generates aMalformed tokenerror. A full output of the error is as follows:
app_1 | Error: Malformed token
app_1 | at /usr/src/app/.build/src/auth/authController.js:54:27
app_1 | at step (/usr/src/app/.build/src/auth/authController.js:33:23)
app_1 | at Object.next (/usr/src/app/.build/src/auth/authController.js:14:53)
app_1 | at /usr/src/app/.build/src/auth/authController.js:8:71
app_1 | at new Promise (<anonymous>)
app_1 | at __awaiter (/usr/src/app/.build/src/auth/authController.js:4:12)
app_1 | at exports.handler (/usr/src/app/.build/src/auth/authController.js:47:45)
app_1 | at InProcessRunner.run (/usr/src/app/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:190:16)
app_1 | at processTicksAndRejections (internal/process/task_queues.js:97:5)
app_1 | at async LambdaFunction.runHandler (/usr/src/app/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)
app_1 | at async Object.authenticate (/usr/src/app/node_modules/serverless-offline/dist/events/http/createAuthScheme.js:101:24)
app_1 | at async module.exports.internals.Manager.execute (/usr/src/app/node_modules/@hapi/hapi/lib/toolkit.js:45:28)
app_1 | at async module.exports.internals.Auth._authenticate (/usr/src/app/node_modules/@hapi/hapi/lib/auth.js:256:30)
app_1 | at async Request._lifecycle (/usr/src/app/node_modules/@hapi/hapi/lib/request.js:312:32)
app_1 | at async Request._execute (/usr/src/app/node_modules/@hapi/hapi/lib/request.js:221:9)
app_1 | offline: Authorization function returned an error response: (λ: auth)
Reproduction
- Generate a token and key from here: https://java.jsonwebtoken.io/ or https://jwt.io and set the secret to base64 encoded
- Add the secret key to your project.
- Pass a request with the generated JWT and watch it error out. Code as follows:
const valid = jwt.verify(
token,
Buffer.from(process.env.JWT_KEY, 'base64'),
{ algorithms: ['HS256'] }
)
Environment
Please provide the following:
- Version of this library used: 8.5.1
- Version of the platform or framework used, if applicable:
- Other relevant versions (language, server software, OS, browser): I'm using serverless-offline. This is a Lambda-based API
- Other modules/plugins/libraries that might be involved: While I was able to re-create this using both java.jsonwebtoken.io and jwt.io I was also able to recreate the issue using tokens and keys directly using JJWT in Springboot. Note: the generated secret and token does work from any of these sources when using it within the Springboot API. Also of note is that this is all running in Docker. Also of note if I generate a token from jwt.io w/out base64 encoding the key then this will work fine (w/out
Bufferobviously).
- 主要语言
- JavaScript
- 星标
- 18.2k
- 派生
- 1.3k
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
auth0/node-jsonwebtoken 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
auth0/node-jsonwebtoken#1042 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
auth0/node-jsonwebtoken#1000 · 2 条评论 · 1 个 reaction ·
-
难度 4/5 3-5 天 新手友好度 65/100
auth0/node-jsonwebtoken#1046 ·
-
难度 5/5 一周以上 新手友好度 10/100
auth0/node-jsonwebtoken#1034 ·
-
难度 3/5 1-2 天 新手友好度 48/100
auth0/node-jsonwebtoken#1032 ·
查看 auth0/node-jsonwebtoken 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
antfu-collective/icones#398 ·
-
ECmail.com 未关闭
难度 1/5 1 小时以内 新手友好度 90/100
wesbos/burner-email-providers#554 ·
-
难度 2/5 1-3 小时 新手友好度 65/100
radiantearth/stac-browser#1023 ·
-
难度 2/5 1-3 小时 新手友好度 75/100
-
难度 2/5 1-3 小时 新手友好度 75/100
components-web-app/docs#92 ·