Skip to content

fix(deps): update dependency ai to v6 [security]#17

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/npm-ai-vulnerability
Open

fix(deps): update dependency ai to v6 [security]#17
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/npm-ai-vulnerability

Conversation

@renovate

@renovate renovate Bot commented Nov 8, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
ai (source) ^4.3.16^6.0.0 age confidence

Vercel’s AI SDK's filetype whitelists can be bypassed when uploading files

CVE-2025-48985 / GHSA-rwvc-j5jr-mgvh

More information

Details

A vulnerability in Vercel’s AI SDK has been fixed in versions 5.0.52, 5.1.0-beta.9, and 6.0.0-beta. This issue may have allowed users to bypass filetype whitelists when uploading files. All users are encouraged to upgrade.

Severity

  • CVSS Score: 3.7 / 10 (Low)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

vercel/ai (ai)

v6.0.204

Compare Source

v6.0.203

Compare Source

Patch Changes
  • f42aa79: fix: harden download URL SSRF guard against hostname and redirect bypasses

    validateDownloadUrl and the file download helpers (downloadBlob, download) could be bypassed in several ways when handling untrusted URLs:

    • A fully-qualified hostname with a trailing dot (e.g. localhost., myhost.local.) skipped the localhost/.local blocklist.
    • IPv6 addresses that embed an IPv4 address in their last 32 bits — IPv4-compatible (::127.0.0.1), IPv4-translated (::ffff:0:127.0.0.1), and NAT64 (64:ff9b::127.0.0.1, including the 64:ff9b:1::/48 local-use prefix) — were not decoded and checked against the private IPv4 ranges.
    • Redirects were validated only after fetch had already followed them, so the request to a redirect target (e.g. an internal/metadata address) had already been issued before the check ran.
    • Several reserved/internal address ranges were not blocked: CGNAT (100.64.0.0/10, used by some cloud providers for internal traffic), benchmarking (198.18.0.0/15), IETF protocol assignments (192.0.0.0/24), the reserved 240.0.0.0/4 block (including the 255.255.255.255 broadcast address), and IPv6 site-local (fec0::/10) and multicast (ff00::/8).

    The validator now strips trailing dots before the hostname checks and fully expands IPv6 addresses to detect embedded private IPv4 targets. The download helpers now follow redirects manually (redirect: 'manual'), re-validating each hop before requesting it, so an unsafe redirect target is never fetched. When a redirect cannot be inspected because the runtime returns an opaque response, the helpers fail closed (reject the redirect) on the server; only in a real browser — where SSRF is not reachable (fetch is constrained by CORS and cannot reach a server's internal network or cloud-metadata endpoints) — is the redirect followed natively so legitimate redirected downloads keep working.

  • 5291f7e: Harden stream text processing and middleware against prototype pollution from stream part IDs.

  • b4b575a: fix: redact server error details from UI message streams by default

    streamText(...).toUIMessageStream() and createUIMessageStream defaulted their onError callback to getErrorMessage, which serializes the raw error (error.toString() / JSON.stringify(error)) into the client-facing { type: 'error', errorText } chunk — and also into tool-output-error parts. The documented default was () => 'An error occurred.', so applications relying on the documented behavior were unknowingly streaming server exception details (internal hostnames, paths, provider request data, validation inputs) to end users.

    The default onError now returns the documented generic 'An error occurred.'. Raw error details are only emitted when the developer explicitly supplies an onError handler. This also redacts tool-output-error and invalid-tool-input error text by default; pass an onError to surface richer messages.

  • Updated dependencies [bfa5864]

  • Updated dependencies [f42aa79]

v6.0.202

Compare Source

Patch Changes
  • 942f2f8: fix(security): re-validate tool approvals from client message history before execution

    The approval-replay path in generateText/streamText reconstructed approved tool calls from the client-supplied messages array and executed them without re-validating input against the tool's schema or re-checking that the tool actually requires approval. A client could forge an assistant message with a pre-approved tool-call part and have the server execute a tool with attacker-chosen arguments.

    The replay path now verifies the HMAC signature (when experimental_toolApprovalSecret is configured), re-validates tool-call input against the tool's input schema, and re-resolves whether the tool requires approval before execution.

  • Updated dependencies [942f2f8]

v6.0.201

Compare Source

Patch Changes
  • 0c8c0ed: fix(ai): return schema-transformed elements in array output mode

    Previously final array output validation checked each element against the schema but returned the raw model output. Array output now returns the validated values so Zod transforms, coercions, defaults, and pipes are applied consistently with object output.

v6.0.200

Compare Source

Patch Changes
  • 14098e7: fix(ai): reject streamText result promises with NoOutputGeneratedError when the model stream ends without producing any output. Previously such streams resolved with an empty step. Incomplete streams with partial output still resolve with the partial result.
  • 2cabe9c: Harden UI message stream processing against prototype pollution from chunk IDs.

v6.0.199

Compare Source

Patch Changes

v6.0.198

Compare Source

Patch Changes

v6.0.197

Compare Source

v6.0.196

Compare Source

Patch Changes

v6.0.195

Compare Source

v6.0.194

Compare Source

v6.0.193

Compare Source

Patch Changes
  • af580ea: fix(ai): do not re-validate tool input for output-error parts in validateUIMessages

v6.0.192

Compare Source

Patch Changes

v6.0.191

Compare Source

Patch Changes

v6.0.190

Compare Source

Patch Changes

v6.0.189

Compare Source

Patch Changes
  • 356c3cf: fix(ai): make input optional on input-streaming UIMessagePart variants

v6.0.188

Compare Source

Patch Changes
  • c98715a: Add allowSystemInMessages option to ToolLoopAgent.

    This exposes the same option that exists on streamText and generateText, whether role: "system" messages are allowed in the prompt or messages fields. When unset, system messages are rejected because they can create a prompt injection attack risk. Ideally, use the instructions option instead. Set to true to allow system messages, or false to explicitly reject them.

    const agent = new ToolLoopAgent({
      model,
      allowSystemInMessages: true,
    });
    
    await agent.generate({
      messages: [
        { role: "system", content: "Server context" },
        { role: "user", content: "Hello" },
      ],
    });

    The option can also be returned from prepareCall for dynamic per-call configuration.

v6.0.187

Compare Source

Patch Changes

v6.0.185

Compare Source

Patch Changes

v6.0.184

Compare Source

Patch Changes
  • 40fc5e4: fix(ai): default missing embedding warnings to an empty array

v6.0.183

Patch Changes

v6.0.182

Patch Changes
  • e76a29a: fix(ai): download tool-result file URLs

v6.0.180

Patch Changes

v6.0.178

Patch Changes
  • ac6f27e: fix(ai): update opentelemetry pinned version

v6.0.177

Patch Changes

v6.0.176

Patch Changes

v6.0.175

Patch Changes

v6.0.174

Patch Changes

v6.0.173

Patch Changes

v6.0.172

v6.0.171

Patch Changes
  • 48f842a: fix(ai): enforce callOptionsSchema at runtime in ToolLoopAgent

    ToolLoopAgentSettings.callOptionsSchema was declared and documented as a runtime schema for options, but tool-loop-agent.ts never invoked it. Any invariant a developer encoded in the schema was silently bypassed at runtime, and unchecked options flowed straight into prepareCall and any instructions template that interpolated them.

    ToolLoopAgent.prepareCall now validates caller-supplied options against callOptionsSchema (when set) via safeValidateTypes, throwing InvalidArgumentError on failure before forwarding to prepareCall / generateText / streamText.

  • a727da4: chore: ensure consistent import handling and avoid import duplicates or cycles

  • 5fee301: fix(mcp): prevent prototype pollution by using secureJsonParse

  • Updated dependencies [a727da4]

v6.0.170

Compare Source

Patch Changes
  • 19d587a: fix(ai): add allowSystemInMessages option and warn by default when system messages are found in prompt or messages

v6.0.169

Compare Source

v6.0.168

Compare Source

Patch Changes

v6.0.167

Compare Source

Patch Changes

v6.0.166

Compare Source

Patch Changes
  • b8d28f4: fix(ai): omit reasoning-start/end when sendReasoning is false

v6.0.165

Compare Source

Patch Changes

v6.0.164

Compare Source

Patch Changes

v6.0.163

Compare Source

Patch Changes

v6.0.162

Compare Source

Patch Changes

v6.0.161

Compare Source

Patch Changes

v6.0.160

Compare Source

Patch Changes

v6.0.159

Compare Source

Patch Changes

v6.0.158

Compare Source

Patch Changes
  • 295beba: fix(ai): fix lastAssistantMessageIsCompleteWithApprovalResponses to no longer ignore providerExecuted tool approvals

v6.0.157

Compare Source

Patch Changes
  • ff11aee: fix(ai): fix providerExecuted tool approvals being passed to language model twice

v6.0.156

Compare Source

Patch Changes

v6.0.155

Compare Source

Patch Changes
  • 06764c5: fix(ai): skip passing invalid JSON inputs to response messages

v6.0.154

Compare Source

Patch Changes

v6.0.153

Compare Source

Patch Changes
  • f152133: feat (ai/core): support plain string model IDs in rerank() function

    The rerank() function now accepts plain model strings (e.g., 'cohere/rerank-v3.5') in addition to RerankingModel objects, matching the behavior of generateText, embed, and other core functions.

v6.0.152

Compare Source

Patch Changes
  • d42076d: Add AI Gateway hint to provider READMEs

v6.0.151

Compare Source

Patch Changes

v6.0.150

Compare Source

Patch Changes

v6.0.149

Compare Source

Patch Changes

v6.0.148

Compare Source

Patch Changes

v6.0.147

Compare Source

Patch Changes

v6.0.146

Compare Source

Patch Changes

v6.0.145

Compare Source

Patch Changes

v6.0.144

Compare Source

Patch Changes

v6.0.143

Compare Source

Patch Changes

v6.0.142

Compare Source

Patch Changes

v6.0.141

Compare Source

Patch Changes

v6.0.140

Compare Source

Patch Changes

v6.0.139

Compare Source

Patch Changes

v6.0.138

Compare Source

Patch Changes

v6.0.137

Compare Source

Patch Changes

v6.0.136

Compare Source

Patch Changes

v6.0.135

Compare Source

Patch Changes
  • df6a330: chore(ai): remove all experimental agent events

v6.0.134

Compare Source

Patch Changes
  • ed6876b: chore(ai): remove all experimental embed events

v6.0.133

Compare Source

Patch Changes

v6.0.132

Compare Source

Patch Changes

v6.0.131

Compare Source

Patch Changes
  • 14f25f9: feat(ai): introduce experimental callbacks for embed function

v6.0.130

Compare Source

Patch Changes

v6.0.129

Compare Source

Patch Changes

v6.0.128

Compare Source

Patch Changes

v6.0.127

Compare Source

Patch Changes

v6.0.126

Compare Source

Patch Changes
  • 578615a: Remove custom User-Agent header from HttpChatTransport to fix CORS preflight failures in Safari and Firefox

v6.0.125

Compare Source

Patch Changes

v6.0.124

Patch Changes

v6.0.122

Compare Source

Patch Changes

v6.0.121

Compare Source

Patch Changes

v6.0.120

Compare Source

Patch Changes
  • 78c0e26: feat(ai): pass result provider metadata across the stream

v6.0.119

Compare Source

Patch Changes
  • ab286f1: fix(ai): doStream should reflect transformed values
  • d68b122: feat(ai): add missing usage attributes

v6.0.118

Compare Source

Patch Changes
  • 64ac0fd: fix(security): validate redirect targets in download functions to prevent SSRF bypass

    Both downloadBlob and download now validate the final URL after following HTTP redirects, preventing attackers from bypassing SSRF protections via open redirects to internal/private addresses.

  • Updated dependencies [64ac0fd]

v6.0.117

Compare Source

Patch Changes

v6.0.116

Compare Source

Patch Changes

v6.0.115

Compare Source

Patch Changes

v6.0.114

Compare Source

Patch Changes
  • 2291047: fix(ai): fix missing support for image thought signatures (e.g. for Gemini image models)

v6.0.113

Compare Source

Patch Changes
  • 70d3980: fix(ai): use errorMode 'text' in approval continuation to preserve tool error messages

v6.0.112

Compare Source

Patch Changes

v6.0.111

Compare Source

Patch Changes
  • 2129c82: feat(ai): register global telemetry integrations

v6.0.110

Compare Source

Patch Changes

v6.0.109

Compare Source

Patch Changes

v6.0.108

Compare Source

Patch Changes
  • 2a4f512: feat(ai): add telemetry interface and registry

v6.0.107

Compare Source

Patch Changes

v6.0.106

Compare Source

Patch Changes

v6.0.105

Compare Source

Patch Changes

v6.0.104

Compare Source

Patch Changes

v6.0.103

Compare Source

Patch Changes

v6.0.102

Compare Source

Patch Changes

v6.0.101

Compare Source

Patch Changes
  • 5230482: fix(ai): Don't create duplicate tool parts when models call non-existent tools

v6.0.100

Compare Source

Patch Changes
  • b7fba77: feat(ai): add event notifiers to core functions

v6.0.99

Compare Source

Patch Changes

v6.0.98

Compare Source

Patch Changes

v6.0.97

Compare Source

Patch Changes
  • ebfdad1: feat(ai): experimental callbacks in ToolLoopAgent

v6.0.96

Compare Source

Patch Changes
  • 30c9de6: feat(ai): experimental callbacks for streamText

v6.0.95

Compare Source

Patch Changes

v6.0.94

Compare Source

Patch Changes

v6.0.93

Compare Source

Patch Changes
  • d3769ec: feat(ai): add experimental callbacks in generateText

v6.0.92

Compare Source

Patch Changes

v6.0.91

Compare Source

Patch Changes

v6.0.90

Compare Source

Patch Changes
  • 98e83ab: Fix useChat status briefly flashing to submitted on page load when resume: true is set and there is no active stream to resume. The reconnectToStream check is now performed before setting status to submitted, so status stays ready when the server responds with 204 (no active stream).

v6.0.89

Compare Source

Patch Changes

v6.0.88

Compare Source

Patch Changes

v6.0.87

Compare Source

Patch Changes

v6.0.86

Compare Source

Patch Changes

v6.0.85

Compare Source

Patch Changes

v6.0.84

Compare Source

Patch Changes
  • 4024a3a: security: prevent unbounded memory growth in download functions

    The download() and downloadBlob() functions now enforce a default 2 GiB size limit when downloading from user-provided URLs. Downloads that exceed this limit are aborted with a DownloadError instead of consuming unbounded memory and crashing the process. The abortSignal parameter is now passed through to fetch() in all download call sites.

    Added download option to transcribe() and experimental_generateVideo() for providing a custom download function. Use the new createDownload({ maxBytes }) factory to configure download size limits.

  • Updated dependencies [4024a3a]

v6.0.83

Compare Source

Patch Changes

v6.0.82

Compare Source

Patch Changes

v6.0.81

Compare Source

Patch Changes
  • ee4beee: feat(ai): add onStepFinish callback to createUIMessageStream

v6.0.80

Compare Source

Patch Changes

v6.0.79

Compare Source

Patch Changes

v6.0.78

Compare Source

Patch Changes
  • 59fcf30: fix(ai): make experimental_context required in ToolLoopAgentOnFinishCallback

    This fixes a type inconsistency where ToolLoopAgentOnFinishCallback had experimental_context as optional while StreamTextOnFinishCallback and GenerateTextOnFinishCallback had it as required. Since ToolLoopAgent delegates to streamText/generateText, and both always pass experimental_context when invoking the callback, the types should match.

v6.0.77

Compare Source

Patch Changes
  • Updated dependencies [eea5d30]
    • [@​ai-sdk/gateway

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@coderabbitai

coderabbitai Bot commented Nov 8, 2025

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review

Comment @coderabbitai help to get the list of available commands and usage tips.

@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch 3 times, most recently from 14319b6 to 7a2abc5 Compare November 20, 2025 06:51
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch 2 times, most recently from a935a57 to c41afcd Compare December 5, 2025 23:11
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch 4 times, most recently from 66b29d4 to 0726482 Compare December 18, 2025 07:32
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 0726482 to 73d8ffc Compare December 31, 2025 07:24
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Dec 31, 2025
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 73d8ffc to 89ee48d Compare January 2, 2026 07:40
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Jan 2, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 89ee48d to 232ff70 Compare January 9, 2026 07:30
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Jan 9, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 232ff70 to cb19e59 Compare January 10, 2026 07:44
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Jan 10, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from cb19e59 to 27a75e2 Compare January 20, 2026 06:48
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Jan 20, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 27a75e2 to 90f43b0 Compare January 21, 2026 07:42
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Jan 21, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 90f43b0 to ddf8c75 Compare January 24, 2026 19:36
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Jan 24, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from ddf8c75 to 4236dca Compare January 25, 2026 14:53
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Jan 25, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 4236dca to 2bbfc71 Compare February 3, 2026 20:07
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Feb 3, 2026
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Feb 4, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 2bbfc71 to db235d0 Compare February 4, 2026 12:15
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Feb 20, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 20a61e3 to 4dfa1a5 Compare March 8, 2026 11:00
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Mar 8, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 4dfa1a5 to c97d10c Compare March 31, 2026 10:12
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch 2 times, most recently from d444afd to 33d08e9 Compare April 19, 2026 04:16
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch 3 times, most recently from ae240c1 to 95ef009 Compare May 3, 2026 14:50
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] May 3, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 95ef009 to 6649e5b Compare May 13, 2026 03:00
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] May 13, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 6649e5b to 663cfb1 Compare May 14, 2026 07:48
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] May 14, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 663cfb1 to 469f439 Compare May 16, 2026 07:25
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] May 16, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 469f439 to b1d55ae Compare May 17, 2026 10:56
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] May 17, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from b1d55ae to 6eaf182 Compare May 23, 2026 03:42
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] May 23, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 6eaf182 to 97b45f6 Compare May 24, 2026 11:15
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] May 24, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 97b45f6 to d1eec2d Compare May 30, 2026 20:05
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] May 30, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch 2 times, most recently from f8b02a7 to 57741d9 Compare June 6, 2026 19:17
@renovate renovate Bot changed the title fix(deps): update dependency ai to v6 [security] fix(deps): update dependency ai to v5 [security] Jun 6, 2026
@renovate renovate Bot force-pushed the renovate/npm-ai-vulnerability branch from 57741d9 to 0d3704c Compare June 12, 2026 23:54
@renovate renovate Bot changed the title fix(deps): update dependency ai to v5 [security] fix(deps): update dependency ai to v6 [security] Jun 12, 2026
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.

0 participants