Skip to content

Security Fixes for 48.0.7 - #14819

Merged
pchickey merged 9 commits into
bytecodealliance:release-48.0.0from
pchickey:fixes-48.0.7
Oct 19, 2026
Merged

pchickey merged 9 commits into
bytecodealliance:release-48.0.0from
pchickey:fixes-48.0.7

Conversation

@pchickey

Copy link
Copy Markdown
Contributor
  • wasi-http: Guests can add conflicting content lengths to messages
    GHSA-r8xh-cgf7-392j
  • wasi-http p3: forwarded trailers aren't checked against is_forbidden_header hook
    GHSA-jxcf-8qw5-5c33
  • wasi-http p3: Guests can set incorrect content-length for spliced response bodies
    GHSA-9prg-84vf-g5fc
  • Cranelift backend on aarch64 can jump to incorrect target on large Wasm br_table instruction
    GHSA-mghf-wjfp-p5xm
  • Update rustls to 0.23.46
    #14768
  • Panic lowering a host-created component model stream into a guest that expects a different payload type.
    GHSA-9pvw-hwfg-92h5

pchickey and others added 6 commits October 16, 2026 11:43
Setting more than one value for content-length is now rejected with
HeaderError::InvalidSyntax in p2 and p3.

Fixes GHSA-r8xh-cgf7-392j

(cherry picked from commit f843085)
…railers

in a backwards-compatible manner by introducing a new
WasiHttpHooks::forbidden_header_filter method. Embedders which customized
WasiHttpHooks::is_forbidden_header must switch to using this new method in
order to block trailers which are not the DEFAULT_FORBIDDEN_HEADERS.

Fixes GHSA-jxcf-8qw5-5c33
…nse bodies

The prior implementation did not enforce that this was valid when
splicing an existing body into a new response, which made it possible to
perform response splitting attacks when responding to a
non-spec-compliant client.

Fixes GHSA-9prg-84vf-g5fc
Previously, the `JTSequence` macro-instruction contained a conditional
branch for the default (selector greater than table size) case. This
default branch on aarch64 has a +/- 1MiB range. The `JTSequence` also
contains the entire table of 32-bit offsets for each `br_table`
target. As a result of these two facts, a branch may have an
out-of-bounds target and silently wrap the offset, resulting in an
incorrect branch target.

This PR fixes the sequence to instead use the offset table for the
default case too. The conditional branch is converted into a
conditional-select that clamps the index to the last table
entry (which we fill with the default target) if out-of-bounds.
@pchickey
pchickey requested review from a team as code owners October 19, 2026 18:05
@pchickey
pchickey requested review from fitzgen and rvolosatovs and removed request for a team October 19, 2026 18:05
@alexcrichton

Copy link
Copy Markdown
Member

I think the tests/component-model submodule here got updated by accident (causing CI failures)

@pchickey

Copy link
Copy Markdown
Contributor Author

Yep - fixing now

pchickey and others added 3 commits October 19, 2026 11:14
This commit fixes an issue where a `StreamAny` can be used to re-type a
future or stream in a manner that can cause a panic within Wasmtime in
certain host situations. The fix here is to unconditionally perform a
type-check when lowering a future or stream into a guest. This is
already required for `{Stream,Future}Any`, and it's additionally
required in this issue when the `T` in `StreamReader<T>` contains a
`StreamAny`, for example. This technically makes the static type-check
of `StreamReader<u32>` redundant, but it seems best to fully close this
hole since bytecodealliance#14733 was not a complete fix for this class of issues.
@pchickey
pchickey enabled auto-merge (squash) October 19, 2026 18:19
@pchickey
pchickey merged commit 222ff3a into bytecodealliance:release-48.0.0 Oct 19, 2026
191 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants