fix(deps): update dependency hono to v4 [security] - autoclosed #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^3.0.0
->^4.0.0
GitHub Vulnerability Alerts
CVE-2023-50710
Impact
The clients may override named path parameter values from previous requests if the application is using TrieRouter. So, there is a risk that a privileged user may use unintended parameters when deleting REST API resources.
TrieRouter is used either explicitly or when the application matches a pattern that is not supported by the default RegExpRouter.
The code to reproduce it. The server side application:
The client code which makes requests to the server application:
The results:
Patches
"v3.11.7" includes the change to fix this issue.
Workarounds
Don't use TrieRouter directly.
References
Router options on the Hono website: https://hono.dev/api/hono#router-option
CVE-2024-32869
Summary
When using serveStatic with deno, it is possible to directory traverse where main.ts is located.
My environment is configured as per this tutorial
https://hono.dev/getting-started/deno
PoC
$ tree . ├── deno.json ├── deno.lock ├── main.ts ├── README.md └── static └── a.txt
source
request
response is content of main.ts
Impact
Unexpected files are retrieved.
CVE-2024-43787
Summary
Hono CSRF middleware can be bypassed using crafted Content-Type header.
Details
MIME types are case insensitive, but
isRequestedByFormElementRe
only matches lower-case.https://github.com/honojs/hono/blob/b0af71fbcc6dbe44140ea76f16d68dfdb32a99a0/src/middleware/csrf/index.ts#L16-L17
As a result, attacker can bypass csrf middleware using upper-case form-like MIME type, such as "Application/x-www-form-urlencoded".
PoC
Impact
Bypass csrf protection implemented with hono csrf middleware.
Discussion
I'm not sure that omitting csrf checks for Simple POST request is a good idea.
CSRF prevention and CORS are different concepts even though CORS can prevent CSRF in some cases.
CVE-2024-48913
Summary
Bypass CSRF Middleware by a request without Content-Type herader.
Details
Although the csrf middleware verifies the Content-Type Header, Hono always considers a request without a Content-Type header to be safe.
https://github.com/honojs/hono/blob/cebf4e87f3984a6a034e60a43f542b4c5225b668/src/middleware/csrf/index.ts#L76-L89
PoC
Similarly, the fetch API does not add a Content-Type header for requests that do not include a Body.
Impact
Bypass csrf protection implemented with hono csrf middleware.
Release Notes
honojs/hono (hono)
v4.6.5
Compare Source
Security fix for CSRF Protection Middleware
This release includes a security fix for CSRF Protection Middleware. If you are using CSRF Protection Middleware, please upgrade this
hono
package immediately.Before this release, a request without a
Content-Type
header can bypass the protection. This fix does not allow it. See: GHSA-2234-fmw7-43wrWhat's Changed
v2
by @yusukebe in https://github.com/honojs/hono/pull/3506Access-Control-Allow-Origin
if there is no matching origin by @uki00a in https://github.com/honojs/hono/pull/3510New Contributors
Full Changelog: honojs/hono@v4.6.4...v4.6.5
v4.6.4
Compare Source
What's Changed
crypto-js
from dev dependencies by @yusukebe in https://github.com/honojs/hono/pull/3447createMiddleware
by @yusukebe in https://github.com/honojs/hono/pull/3498globalThis
by @sapphi-red in https://github.com/honojs/hono/pull/3500override
totoStringToBuffer
in classes extendingJSXNode
by @yusukebe in https://github.com/honojs/hono/pull/3505New Contributors
Full Changelog: honojs/hono@v4.6.3...v4.6.4
v4.6.3
Compare Source
This release has many new features, but each feature is small, so we've released it as a patch release.
What's Changed
runtime_tests
toruntime-tests
by @yusukebe in https://github.com/honojs/hono/pull/3419every
middleware work with short-circuiting middlewares by @paolostyle in https://github.com/honojs/hono/pull/3441renderToString
by @usualoma in https://github.com/honojs/hono/pull/3432New Contributors
Full Changelog: honojs/hono@v4.6.2...v4.6.3
v4.6.2
Compare Source
What's Changed
Full Changelog: honojs/hono@v4.6.1...v4.6.2
v4.6.1
Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.6.0...v4.6.1
v4.6.0
Compare Source
Hono v4.6.0 is now available!
One of the highlights of this release is the Context Storage Middleware. Let's introduce it.
Context Storage Middleware
Many users may have been waiting for this feature. The Context Storage Middleware uses
AsyncLocalStorage
to allow handling of the current Context object even outside of handlers.For example, let’s define a Hono app with a variable
message: string
.To enable Context Storage Middleware, register
contextStorage()
as middleware at the top and set themessage
value.getContext()
returns the current Context object, allowing you to get the value of themessage
variable outside the handler.In the case of Cloudflare Workers, you can also access the
Bindings
outside the handler by using this middleware.Thanks @marceloverdijk !
New features
c.env.eventContext
in handleMiddleware https://github.com/honojs/hono/pull/3332WSContext
https://github.com/honojs/hono/pull/3337Content-Encoding
whenstream
is true https://github.com/honojs/hono/pull/3355precompressed
option https://github.com/honojs/hono/pull/3366Promise<string>
or (async)JSX.Element
instreamSSE
https://github.com/honojs/hono/pull/3344onFound
option https://github.com/honojs/hono/pull/3396Other changes
New Contributors
Full Changelog: honojs/hono@v4.5.11...v4.6.0
v4.5.11
Compare Source
What's Changed
Twitter
toX
by @yusukebe in https://github.com/honojs/hono/pull/3354New Contributors
Full Changelog: honojs/hono@v4.5.10...v4.5.11
v4.5.10
Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.5.9...v4.5.10
v4.5.9
Compare Source
What's Changed
NO_COLOR
by @ryuapp in https://github.com/honojs/hono/pull/3306type
(MIME) attribute types by @ssssota in https://github.com/honojs/hono/pull/3305Full Changelog: honojs/hono@v4.5.8...v4.5.9
v4.5.8
Compare Source
Security Fix for CSRF Protection Middleware
Before this release, in versions 4.5.7 and below, the CSRF Protection Middleware did not treat requests including
Content-Types
with uppercase letters (e.g.,Application/x-www-form-urlencoded
) as potential attacks, allowing them to pass.This could cause unexpected behavior, leading to a vulnerability. If you are using the CSRF Protection Middleware, please upgrade to version 4.5.8 or higher immediately.
For more details, see the report here: GHSA-rpfr-3m35-5vx5
v4.5.7
Compare Source
What's Changed
target
andformtarget
attribute types by @ssssota in https://github.com/honojs/hono/pull/3299New Contributors
Full Changelog: honojs/hono@v4.5.6...v4.5.7
v4.5.6
Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.5.5...v4.5.6
v4.5.5
Compare Source
What's Changed
c.header
by @nakasyou in https://github.com/honojs/hono/pull/3221c.header
by @nakasyou in https://github.com/honojs/hono/pull/3255.
and not end/
by @yusukebe in https://github.com/honojs/hono/pull/3256Full Changelog: honojs/hono@v4.5.4...v4.5.5
v4.5.4
Compare Source
What's Changed
param
inValidationTargets
supports optional param by @yusukebe in https://github.com/honojs/hono/pull/3229New Contributors
Full Changelog: honojs/hono@v4.5.3...v4.5.4
v4.5.3
Compare Source
What's Changed
application/json
with a charset as JSON by @yusukebe in https://github.com/honojs/hono/pull/3199self.fetch
correctly by @yusukebe in https://github.com/honojs/hono/pull/3200New Contributors
Full Changelog: honojs/hono@v4.5.2...v4.5.3
v4.5.2
Compare Source
What's Changed
navigator
isundefined
by @yusukebe in https://github.com/honojs/hono/pull/3171navigator
isundefined
by @yusukebe in https://github.com/honojs/hono/pull/3173Full Changelog: honojs/hono@v4.5.1...v4.5.2
v4.5.1
Compare Source
What's Changed
@experimental
fromcreateApp
by @yusukebe in https://github.com/honojs/hono/pull/3164query
inws
by @yusukebe in https://github.com/honojs/hono/pull/3169New Contributors
Full Changelog: honojs/hono@v4.5.0...v4.5.1
v4.5.0
Compare Source
v4.4.13
Compare Source
What's Changed
string[] | File[]
for RPC form value by @yusukebe in https://github.com/honojs/hono/pull/3117app.use(path, mw)
return correct schema type by @yusukebe in https://github.com/honojs/hono/pull/3128Full Changelog: honojs/hono@v4.4.12...v4.4.13
v4.4.12
Compare Source
What's Changed
path
when chaining afteruse
by @yusukebe in https://github.com/honojs/hono/pull/3087download
attribute is set to a boolean value. by @oon00b in https://github.com/honojs/hono/pull/3094@module
docs by @yusukebe in https://github.com/honojs/hono/pull/3101New Contributors
Full Changelog: honojs/hono@v4.4.11...v4.4.12
v4.4.11
Compare Source
What's Changed
hono/client
by @naporin0624 in https://github.com/honojs/hono/pull/3066HandlerInterface
's(path, handler)
s overloads down by @NamesMT in https://github.com/honojs/hono/pull/3072New Contributors
Full Changelog: honojs/hono@v4.4.10...v4.4.11
v4.4.10
Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.4.9...v4.4.10
v4.4.9
Compare Source
What's Changed
Context
by @yusukebe in https://github.com/honojs/hono/pull/3046package.json
and README by @yusukebe in https://github.com/honojs/hono/pull/3052Full Changelog: honojs/hono@v4.4.8...v4.4.9
v4.4.8
Compare Source
What's Changed
env
for codecov GitHub Actions by @yusukebe in https://github.com/honojs/hono/pull/3010Full Changelog: honojs/hono@v4.4.7...v4.4.8
v4.4.7
Compare Source
What's Changed
New Contributors
Full Changelog: honojs/hono@v4.4.6...v4.4.7
v4.4.6
Compare Source
What's Changed
Full Changelog: honojs/hono@v4.4.5...v4.4.6
v4.4.5
Compare Source
What's Changed
Hono
toJSX
and exportJSX
namespace by @yusukebe in https://github.com/honojs/hono/pull/2937app.route()
required by @yusukebe in https://github.com/honojs/hono/pull/2945app.on()
by @yusukebe in https://github.com/honojs/hono/pull/2946parseBody
and remove unnecessary check by @yusukebe in https://github.com/honojs/hono/pull/2947Full Changelog: honojs/hono@v4.4.4...v4.4.5
v4.4.4
Compare Source
What's Changed
Prettify
as duplicated withSimplify
by @NamesMT in https://github.com/honojs/hono/pull/2914never
by @NamesMT in https://github.com/honojs/hono/pull/2915c.redirect()
supportsTypedResponse
by @yusukebe in https://github.com/honojs/hono/pull/2908-
and_
by @yusukebe in https://github.com/honojs/hono/pull/2910_
prefix toTypedResponse
properties by @yusukebe in https://github.com/honojs/hono/pull/2917SimplifyDeepArray
should now actually be "deep" by @NamesMT in https://github.com/honojs/hono/pull/2920text
andhtml
for coverage reporter by @yusukebe in https://github.com/honojs/hono/pull/2923types.ts
for type definitions by @yusukebe in https://github.com/honojs/hono/pull/2924New Contributors
Full Changelog: honojs/hono@v4.4.3...v4.4.4
v4.4.3
Compare Source
What's Changed