Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Aug 30, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
svelte (source) ^3.55.0 -> ^4.0.0 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-45047

Summary

A potential XSS vulnerability exists in Svelte for versions prior to 4.2.19.

Details

Svelte improperly escapes HTML on server-side rendering. It converts strings according to the following rules:

  • If the string is an attribute value:
    • " -> "
    • & -> &
    • Other characters -> No conversion
  • Otherwise:
    • < -> &lt;
    • & -> &amp;
    • Other characters -> No conversion

The assumption is that attributes will always stay as such, but in some situation the final DOM tree rendered on browsers is different from what Svelte expects on server-side rendering. This may be leveraged to perform XSS attacks. More specifically, this can occur when injecting malicious content into an attribute within a <noscript> tag.

PoC

A vulnerable page (+page.svelte):

<script>
import { page } from "$app/stores"

// user input
let href = $page.url.searchParams.get("href") ?? "https://example.com";
</script>

<noscript>
  <a href={href}>test</a>
</noscript>

If a user accesses the following URL,

http://localhost:4173/?href=</noscript><script>alert(123)</script>

then, alert(123) will be executed.

Impact

XSS, when using an attribute within a noscript tag


Release Notes

sveltejs/svelte (svelte)

v4.2.19

Compare Source

Patch Changes
  • fix: ensure typings for <svelte:options> are picked up (#​12902)

  • fix: escape < in attribute strings (#​12989)

v4.2.18

Compare Source

Patch Changes

v4.2.17

Compare Source

Patch Changes
  • fix: correctly handle falsy values of style directives in SSR mode (#​11584)

v4.2.16

Compare Source

Patch Changes
  • fix: check if svelte component exists on custom element destroy (#​11489)

v4.2.15

Compare Source

Patch Changes
  • support attribute selector inside :global() (#​11135)

v4.2.14

Compare Source

Patch Changes
  • fix parsing camelcase container query name (#​11131)

v4.2.13

Compare Source

Patch Changes
  • fix: applying :global for +,~ sibling combinator when slots are present (#​9282)

v4.2.12

Compare Source

Patch Changes
  • fix: properly update svelte:component props when there are spread props (#​10604)

v4.2.11

Compare Source

Patch Changes
  • fix: check that component wasn't instantiated in connectedCallback (#​10466)

v4.2.10

Compare Source

Patch Changes
  • fix: add scrollend event type (#​10336)

  • fix: add fetchpriority attribute type (#​10390)

  • fix: Add miter-clip and arcs to stroke-linejoin attribute (#​10377)

  • fix: make inline doc links valid (#​10366)

v4.2.9

Compare Source

Patch Changes
  • fix: add types for popover attributes and events (#​10042)

  • fix: add gamepadconnected and gamepaddisconnected events (#​9864)

  • fix: make @types/estree a dependency (#​10149)

  • fix: bump axobject-query (#​10167)

v4.2.8

Compare Source

Patch Changes
  • fix: port over props that were set prior to initialization (#​9701)

v4.2.7

Compare Source

Patch Changes
  • fix: handle spreads within static strings (#​9554)

v4.2.6

Compare Source

Patch Changes
  • fix: adjust static attribute regex (#​9551)

v4.2.5

Compare Source

Patch Changes
  • fix: ignore expressions in top level script/style tag attributes (#​9498)

v4.2.4

Compare Source

Patch Changes
  • fix: handle closing tags inside attribute values (#​9486)

v4.2.3

Compare Source

Patch Changes
  • fix: improve a11y-click-events-have-key-events message (#​9358)

  • fix: more robust hydration of html tag (#​9184)

v4.2.2

Compare Source

Patch Changes
  • fix: support camelCase properties on custom elements (#​9328)

  • fix: add missing plaintext-only value to contenteditable type (#​9242)

  • chore: upgrade magic-string to 0.30.4 (#​9292)

  • fix: ignore trailing comments when comparing nodes (#​9197)

v4.2.1

Compare Source

Patch Changes
  • fix: update style directive when style attribute is present and is updated via an object prop (#​9187)

  • fix: css sourcemap generation with unicode filenames (#​9120)

  • fix: do not add module declared variables as dependencies (#​9122)

  • fix: handle svelte:element with dynamic this and spread attributes (#​9112)

  • fix: silence false positive reactive component warning (#​9094)

  • fix: head duplication when binding is present (#​9124)

  • fix: take custom attribute name into account when reflecting property (#​9140)

  • fix: add indeterminate to the list of HTMLAttributes (#​9180)

  • fix: recognize option value on spread attribute (#​9125)

v4.2.0

Compare Source

Minor Changes
  • feat: move svelteHTML from language-tools into core to load the correct svelte/element types (#​9070)

v4.1.2

Compare Source

Patch Changes
  • fix: allow child element with slot attribute within svelte:element (#​9038)

  • fix: Add data-* to svg attributes (#​9036)

v4.1.1

Compare Source

Patch Changes
  • fix: svelte:component spread props change not picked up (#​9006)

v4.1.0

Compare Source

Minor Changes
  • feat: add ability to extend custom element class (#​8991)
Patch Changes
  • fix: ensure svelte:component evaluates props once (#​8946)

  • fix: remove let:variable slot bindings from select binding dependencies (#​8969)

  • fix: handle destructured primitive literals (#​8871)

  • perf: optimize imports that are not mutated or reassigned (#​8948)

  • fix: don't add accessor twice (#​8996)

v4.0.5

Compare Source

Patch Changes
  • fix: generate type definition with nullable types (#​8924)

v4.0.4

Compare Source

Patch Changes
  • fix: claim svg tags in raw mustache tags correctly (#​8910)

  • fix: repair invalid raw html content during hydration (#​8912)

v4.0.3

Compare Source

Patch Changes
  • fix: handle falsy srcset values (#​8901)

v4.0.2

Compare Source

Patch Changes
  • fix: reflect all custom element prop updates back to attribute (#​8898)

  • fix: shrink custom element baseline a bit (#​8858)

  • fix: use non-destructive hydration for all @html tags (#​8880)

  • fix: align disclose-version exports specification (#​8874)

  • fix: check srcset when hydrating to prevent needless requests (#​8868)

v4.0.1

Compare Source

Patch Changes
  • fix: ensure identifiers in destructuring contexts don't clash with existing ones (#​8840)

  • fix: ensure createEventDispatcher and ActionReturn work with types from generic function parameters (#​8872)

  • fix: apply transition to <svelte:element> with local transition (#​8865)

  • fix: relax a11y "no redundant role" rule for li, ul, ol (#​8867)

  • fix: remove tsconfig.json from published package (#​8859)

v4.0.0

Compare Source

Major Changes
  • breaking: Minimum supported Node version is now Node 16 (#​8566)

  • breaking: Minimum supported webpack version is now webpack 5 (#​8515)

  • breaking: Bundlers must specify the browser condition when building a frontend bundle for the browser (#​8516)

  • breaking: Minimum supported vite-plugin-svelte version is now 2.4.1. SvelteKit users can upgrade to 1.20.0 or newer to ensure a compatible version (#​8516)

  • breaking: Minimum supported rollup-plugin-svelte version is now 7.1.5 (198dbcf)

  • breaking: Minimum supported svelte-loader is now 3.1.8 (198dbcf)

  • breaking: Minimum supported TypeScript version is now TypeScript 5 (it will likely work with lower versions, but we make no guarantees about that) (#​8488)

  • breaking: Remove svelte/register hook, CJS runtime version and CJS compiler output (#​8613)

  • breaking: Stricter types for createEventDispatcher (see PR for migration instructions) (#​7224)

  • breaking: Stricter types for Action and ActionReturn (see PR for migration instructions) (#​7442)

  • breaking: Stricter types for onMount - now throws a type error when returning a function asynchronously to catch potential mistakes around callback functions
    (see PR for migration instructions) (#​8136)

  • breaking: Overhaul and drastically improve creating custom elements with Svelte (see PR for list of changes and migration instructions) ([#​8457](https://github.
    com/feat: custom elements rework sveltejs/svelte#8457))

  • breaking: Deprecate SvelteComponentTyped in favor of SvelteComponent (#​8512)

  • breaking: Make transitions local by default to prevent confusion around page navigations (#​6686)

  • breaking: Error on falsy values instead of stores passed to derived (#​7947)

  • breaking: Custom store implementers now need to pass an update function additionally to the set function ([#​6750](https://github.com/sveltejs/svelte/pull/
    6750))

  • breaking: Do not expose default slot bindings to named slots and vice versa (#​6049)

  • breaking: Change order in which preprocessors are applied (#​8618)

  • breaking: The runtime now makes use of classList.toggle(name, boolean) which does not work in very old browsers ([#​8629](https://github.com/sveltejs/svelte/
    pull/8629))

  • breaking: apply inert to outroing elements (#​8628)

  • breaking: use CustomEvent constructor instead of deprecated createEvent method (#​8775)

Minor Changes
  • Add a way to modify attributes for script/style preprocessors (#​8618)

  • Improve hydration speed by adding data-svelte-h attribute to detect unchanged HTML elements (#​7426)

  • Add a11y no-noninteractive-element-interactions rule (#​8391)

  • Add a11y-no-static-element-interactionsrule (#​8251)

  • Allow #each to iterate over iterables like Set, Map etc (#​7425)

  • Improve duplicate key error for keyed each blocks (#​8411)

  • Warn about : in attributes and props to prevent ambiguity with Svelte directives (#​6823)

  • feat: add version info to window. You can opt out by setting discloseVersion to false in the compiler options (#​8761)

  • feat: smaller minified output for destructor chunks (#​8763)

Patch Changes
  • Bind null option and input values consistently (#​8312)

  • Allow $store to be used with changing values including nullish values (#​7555)

  • Initialize stylesheet with /* empty */ to enable setting CSP directive that also works in Safari (#​7800)

  • Treat slots as if they don't exist when using CSS adjacent and general sibling combinators (#​8284)

  • Fix transitions so that they don't require a style-src 'unsafe-inline' Content Security Policy (CSP) (#​6662).

  • Explicitly disallow var declarations extending the reactive statement scope (#​6800)

  • Improve error message when trying to use animate: directives on inline components (#​8641)

  • fix: export ComponentType from svelte entrypoint (#​8578)

  • fix: never use html optimization for mustache tags in hydration mode (#​8744)

  • fix: derived store types (#​8578)

  • Generate type declarations with dts-buddy (#​8578)

  • fix: ensure types are loaded with all TS settings (#​8721)

  • fix: account for preprocessor source maps when calculating meta info (#​8778)

  • chore: deindent cjs output for compiler (#​8785)

  • warn on boolean compilerOptions.css (#​8710)

  • fix: export correct SvelteComponent type (#​8721)


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

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

Rebasing: Whenever PR is behind base branch, 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.

@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from e440eb6 to 33d712d Compare October 10, 2024 20:15
@socket-security
Copy link

socket-security bot commented Oct 10, 2024

Caution

Review the following alerts detected in dependencies.

According to your organization's Security Policy, you must resolve all "Block" alerts before proceeding. It is recommended to resolve "Warn" alerts too. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Block High
High CVE: Axios is vulnerable to DoS attack through lack of data size check

CVE: GHSA-4hjh-wcwx-xvwj Axios is vulnerable to DoS attack through lack of data size check (HIGH)

Affected versions: >= 1.0.0 < 1.12.0; < 0.30.2

Patched version: 1.12.0

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is a CVE?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Remove or replace dependencies that include known high severity CVEs. Consumers can use dependency overrides or npm audit fix --force to remove vulnerable dependencies.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm amdefine is 100.0% likely to have a medium risk anomaly

Notes: The code implements a global module loader hook that prepends a require('amdefine')(module) shim to nearly all .js modules before they are compiled. This is not directly overtly malicious, but it is a high-impact supply-chain/style modification: it alters every module load, can obscure behavior from static analysis, and increases attack surface if an attacker can modify this package or the amdefine module. Use of this module should be considered a risk in environments that require strict control of execution semantics or provenance; review and pin amdefine and this loader carefully. No clear evidence of direct data exfiltration or backdoor in this fragment.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm asynckit is 100.0% likely to have a medium risk anomaly

Notes: The analyzed code is a standard wrapper/adapter for long-signature iterators in a streaming context. It includes proper handling to avoid duplicate callbacks, emits errors correctly, and finalizes the stream appropriately. There is no indication of malicious behavior, data exfiltration, or backdoor-like mechanisms. The risk is minimal and primarily relates to correct usage by downstream code (e.g., ensuring stream object has the expected properties).

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm axios is 100.0% likely to have a medium risk anomaly

Notes: The code appears to be a standard, well-scoped progress-event utility used to report progress (upload/download) to a consumer listener. It reads input from the event object and computes metrics, then forwards a structured payload to a listener. A minor data exposure risk exists due to passing the raw event object to the listener; mitigations include sanitizing the payload or removing the event object before emission. Overall security risk remains modest, with malware likelihood negligible in this isolated module.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm axios is 100.0% likely to have a medium risk anomaly

Notes: The code is a legitimate, self-contained throttling transformer designed for Axios-like streaming workflows. It throttles data output based on maxRate and timeWindow, preserves data integrity by splitting chunks when necessary, and emits optional progress telemetry. No malicious activity or data leakage is detected in this fragment. Security risk remains moderate due to throttling complexity and potential misconfiguration in real deployments, but the module itself does not introduce obvious security flaws.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm chalk is 100.0% likely to have a medium risk anomaly

Notes: This is a conventional Chalk-like color-styling module. It exhibits expected behavior for terminal styling, uses environment checks for compatibility, and does not demonstrate malicious activity, data leakage, or external communications. Security risk is low in isolation; the primary considerations are safe usage in environments where ANSI sequences could affect log readability or concealment, and ensuring trusted template renderingCode integrity. Overall, the component appears benign within its described scope.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm fs-extra is 100.0% likely to have a medium risk anomaly

Notes: The copy.js module appears to be a legitimate and secure filesystem copy utility with appropriate safeguards and options. No malicious activity detected, and typical supply-chain risk is limited to the general risk of filesystem operations. The code is suitable for inclusion in a package like fs-extra with normal risk expectations.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm node-addon-api is 100.0% likely to have a medium risk anomaly

Notes: The script is a legitimate formatting helper within a Node.js project. It orchestrates clang-format via git-clang-format, supports fix and diff modes, and provides actionable feedback to the developer. While operational dependencies exist, no malicious activity or data leakage is evident based on the provided code and typical usage.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@openzeppelin/[email protected]npm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm pbkdf2 is 72.0% likely to have a medium risk anomaly

Notes: The code is a straightforward and correct PBKDF2 implementation using HMAC with support for multiple digests and standard input handling. No malicious behavior detected. Security risk mainly derives from correct usage (encodings, salt handling, and proper key length) and from the absence of explicit side-channel hardening within the function. Recommendations focus on careful integration and memory hygiene, and optional refinements for side-channel resilience in high-assurance contexts.

Confidence: 0.72

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@openzeppelin/[email protected]npm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm sc-istanbul is 100.0% likely to have a medium risk anomaly

Notes: No direct malicious actions (network exfiltration, reverse shells, or hard-coded credentials) are present in this fragment. However, the module intentionally monkeypatches Node's module loader and VM APIs to transform and execute code at load time. Those capabilities are high-risk: if a malicious transformer/matcher is supplied (or if the package itself is replaced with a malicious version), it can inject arbitrary code into any loaded module, enabling supply-chain attacks, data theft, or backdoors. Reviewers should treat usage of this module as a high-privilege operation, ensure transformers are trusted, and limit hook usage to controlled environments.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm undici is 100.0% likely to have a medium risk anomaly

Notes: The analyzed code appears to implement a standard in-memory cache batch operation flow (put/delete) with careful handling of response bodies by buffering and storing bytes for caching. No signs of malware, data exfiltration, backdoors, or obfuscated behavior were found. The primary security considerations relate to memory usage from buffering potentially large response bodies and ensuring robust validation within batch operations to prevent cache state corruption. Overall risk is moderate, driven by in-memory data handling rather than external communication.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.jsonnpm/@openzeppelin/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm viem is 100.0% likely to have a medium risk anomaly

Notes: The code implements a cross-chain deposit flow with proper validations, artifact reads, and on-chain interactions. There is no evidence of hidden backdoors, data exfiltration, or malware. The main security considerations relate to token approval logic and correct configuration of flags to avoid granting excessive allowances. Overall, the module appears legitimate for a bridge deposit flow, with moderate risk primarily around configuration of approvals and correct handling of gas/fees.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm ws is 100.0% likely to have a medium risk anomaly

Notes: The code implements a standard EventTarget-like mixin for wrapping event listeners and dispatching events to user callbacks. There are no suspicious patterns such as dynamic code execution, hardcoded secrets, or network activity. The risk is contingent on what the consumer does inside their handlers; the snippet itself does not introduce malware or data leakage mechanisms beyond normal event dispatch. Overall security risk is low in isolation.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@openzeppelin/[email protected]npm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Block Low
Potential code anomaly (AI signal): npm ws is 100.0% likely to have a medium risk anomaly

Notes: The code implements a standard EventTarget-like mixin for wrapping event listeners and dispatching events to user callbacks. There are no suspicious patterns such as dynamic code execution, hardcoded secrets, or network activity. The risk is contingent on what the consumer does inside their handlers; the snippet itself does not introduce malware or data leakage mechanisms beyond normal event dispatch. Overall security risk is low in isolation.

Confidence: 1.00

Severity: 0.60

From: packages/core/solidity/src/environments/hardhat/package-lock.jsonnpm/@nomicfoundation/[email protected]npm/@nomicfoundation/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is an AI-detected potential code anomaly?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: An AI system found a low-risk anomaly in this package. It may still be fine to use, but you should check that it is safe before proceeding.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn High
Obfuscated code: npm buffer is 96.0% likely obfuscated

Confidence: 0.96

Location: Package overview

From: packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.jsonnpm/@openzeppelin/[email protected]npm/[email protected]

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at [email protected].

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/[email protected]. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from 33d712d to aa35f83 Compare November 18, 2024 20:32
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from aa35f83 to de0c040 Compare January 20, 2025 18:18
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 2 times, most recently from 17b5d6c to a1ba4f1 Compare February 26, 2025 20:20
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from a1ba4f1 to 9bb7c98 Compare April 21, 2025 14:29
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from 9bb7c98 to 49a51d2 Compare April 29, 2025 22:45
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 5 times, most recently from 7e3f2c2 to 2db0263 Compare June 27, 2025 14:52
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 7 times, most recently from 950f211 to 1e15d83 Compare July 4, 2025 16:29
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 3 times, most recently from dacf32a to 04a37fb Compare July 15, 2025 08:38
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 5 times, most recently from 44f828c to 2072ab7 Compare July 22, 2025 20:42
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 4 times, most recently from 137c675 to 673d179 Compare October 14, 2025 15:16
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 4 times, most recently from 33c7684 to 36f4993 Compare October 16, 2025 21:49
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from 36f4993 to b45eb6e Compare October 22, 2025 18:16
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d5a10bc and b45eb6e.

⛔ Files ignored due to path filters (1)
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (1)
  • packages/ui/package.json (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: build (solidity, default)
  • GitHub Check: semgrep-cloud-platform/scan

"rollup-plugin-svelte": "^7.2.3",
"rollup-plugin-terser": "^7.0.2",
"svelte": "^3.55.0",
"svelte": "^4.0.0",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

✓ Approve the security fix, but verify build compatibility.

The version bump addresses CVE-2024-45047, a critical XSS vulnerability in Svelte's SSR that affects attribute escaping in <noscript> tags. The ^4.0.0 constraint ensures v4.2.19+ (which includes the fix) will be installed.

However, this is a major version change. Verify that:

  1. The build completes without errors.
  2. All tests pass with Svelte v4.
  3. The compatibility of related dependencies (rollup-plugin-svelte v7.2.3, svelte-check v3.8.6, svelte-preprocess v5.1.4) is confirmed.

🏁 Script executed:

#!/bin/bash
# Description: Verify build and test compatibility with Svelte v4.

set -e

cd packages/ui

# Check if rollup-plugin-svelte v7.2.3 is compatible with Svelte v4
echo "Checking package.json for compatible versions..."
grep -E '"(svelte|rollup-plugin-svelte|svelte-check|svelte-preprocess)"' package.json

# Try to resolve and validate dependencies (without installing)
npm list svelte rollup-plugin-svelte svelte-check svelte-preprocess 2>&1 | head -20 || echo "npm list may fail if not installed; this is expected"

# Check for known breaking changes or migration notes
echo ""
echo "Checking Svelte v4 migration documentation..."
# Look for any v4-specific documentation or migration guides in the repo
fd -e md -e txt --type f | xargs grep -l "svelte.*v4\|svelte.*4\.0\|migration" 2>/dev/null | head -5 || echo "No migration docs found"

Length of output: 292


🌐 Web query:

rollup-plugin-svelte v7.2.3 Svelte v4 compatibility

💡 Result:

Yes — rollup-plugin-svelte v7.2.3 is compatible with Svelte 4. The Svelte v4 migration docs require rollup-plugin-svelte >= 7.1.5 for Rollup users, and v7.2.3 is a current 7.x release. [1][2]

Sources:
[1] rollup-plugin-svelte on npm (v7.2.3).
[2] Svelte v4 migration guide — "If you are using Rollup, upgrade to rollup-plugin-svelte 7.1.5 or higher."


🌐 Web query:

svelte-check v3.8.6 Svelte v4 support

💡 Result:

Yes — svelte-check 3.8.6 lists Svelte v4 in its peerDependencies and its 3.8.6 release notes show Svelte v4/5-related fixes, so v3.8.6 supports Svelte 4. [1][2]

Sources:

  • package-lock entry showing peerDependencies include ^4.0.0. [1]
  • svelte-check 3.8.6 release notes. [2]

🌐 Web query:

Svelte v4 breaking changes migration guide

💡 Result:

Here are the essential steps and breaking changes to handle when migrating to Svelte v4 — run the automatic migrator first, then address the manual items below.

Quick steps

  • Run the migrator: npx svelte-migrate@latest svelte-4. [1]
  • Upgrade toolchain: Node >= 16, TypeScript >= 5, Vite/SvelteKit/rollup/webpack plugin versions listed in the guide. [1]
  • Update eslint to eslint-plugin-svelte (eslint-plugin-svelte3 is deprecated). [1]

Top breaking changes to check and fix

  • Compiler output is ESM-only (CJS output and svelte/register removed). If you need CJS, convert ESM to CJS in a post-build step. [1]
  • Stricter TypeScript typings: createEventDispatcher, Action generic types, and onMount return types now enforce correctness — update types accordingly. [1]
  • Transitions are local by default and default slot bindings behavior changed — review components that relied on the old globals. [1]
  • Custom elements and svelte component instance accessors changed (SvelteComponentTyped deprecated; custom-elements docs). [1]
  • Browser/build config: bundlers must use the "browser" condition (misconfigured bundlers can cause lifecycle hooks like onMount not to run). Update rollup/webpack/Vite config as documented. [1]
  • Store API changes: StartStopNotifier must now provide an update function; derived() throws on falsy values instead of treating them as stores. [1]
  • Runtime changes affecting very old browsers: classList.toggle(name, boolean), CustomEvent constructor usage, and the inert attribute applied to outroing elements — polyfills may be necessary. [1]
  • DOM removals are batched (order of removal/events may differ; MutationObserver users should verify). [1]
  • Global JSX/typing namespace changes: migrate from svelte.JSX to svelteHTML / svelte/elements where applicable. [1]

If you want, I can:

  • run the migrator commands you should execute,
  • produce a checklist tailored to your repo (package.json, bundler, and TypeScript files) — share your repo or package.json.


🏁 Script executed:

#!/bin/bash
# Description: Examine rollup config and check for Svelte v4 breaking change patterns

echo "=== Checking rollup configuration ==="
fd -e "rollup.config" -o -e "rollup.js" | head -5

echo ""
echo "=== Checking for store API usage patterns ==="
fd -e svelte -e ts -e js | xargs grep -l "StartStopNotifier\|writable\|derived" 2>/dev/null | head -10

echo ""
echo "=== Checking for TypeScript issues (Action, createEventDispatcher) ==="
fd -e svelte -e ts | xargs grep -l "Action\|createEventDispatcher" 2>/dev/null | head -10

echo ""
echo "=== Checking for SvelteComponentTyped usage ==="
fd -e svelte -e ts -e js | xargs grep -l "SvelteComponentTyped" 2>/dev/null | head -5

echo ""
echo "=== Checking for ESM/CJS output config ==="
fd -e "package.json" --type f | xargs grep -l "exports\|module\|main" 2>/dev/null | head -10

Length of output: 730


🌐 Web query:

svelte-preprocess v5.1.4 Svelte v4 support

💡 Result:

Yes — svelte-preprocess v5.1.4 is compatible with Svelte v4. The package README documents using svelte-preprocess for Svelte (and notes Svelte 4 users still need a preprocessor for TypeScript and common CSS preprocessors), and the v5.1.4 npm release is available. [1][2]

Sources:

  • svelte-preprocess v5.1.4 on npm. [1]
  • svelte-preprocess README / usage (compatibility notes). [2]


🏁 Script executed:

#!/bin/bash
# Description: Verify SvelteComponentTyped usage and check rollup config

echo "=== SvelteComponentTyped usage in Wiz.svelte ==="
grep -n "SvelteComponentTyped" packages/ui/src/common/Wiz.svelte -B2 -A2

echo ""
echo "=== Checking for rollup.config file ==="
find packages/ui -name "rollup.config.*" -o -name "rollup.js" | head -5

echo ""
echo "=== Checking package.json exports field ==="
cat packages/ui/package.json | grep -A5 '"exports"' || echo "No exports field found"

Length of output: 500



🏁 Script executed:

#!/bin/bash
# Description: Check rollup config for Svelte v4 setup and look for alternative SvelteComponentTyped patterns

echo "=== rollup.config.mjs content (first 50 lines) ==="
head -50 packages/ui/rollup.config.mjs

echo ""
echo "=== Checking if there are other deprecated patterns in Wiz.svelte ==="
cat packages/ui/src/common/Wiz.svelte | head -50

Length of output: 3433


Critical issue: SvelteComponentTyped is deprecated in Svelte v4—migration incomplete.

The version upgrade is valid and addresses CVE-2024-45047 (XSS in SSR). All dependencies (rollup-plugin-svelte v7.2.3, svelte-check v3.8.6, svelte-preprocess v5.1.4) are compatible with Svelte v4, and the rollup configuration is properly set up.

However, packages/ui/src/common/Wiz.svelte (lines 2, 25–26) uses SvelteComponentTyped, which is deprecated and removed in Svelte v4. This must be updated to the new component typing pattern before the upgrade can proceed. Run the migration tool—npx svelte-migrate@latest svelte-4—to help identify and fix all breaking changes, particularly in this file and any TypeScript type usage (createEventDispatcher, Action generics).

🤖 Prompt for AI Agents
packages/ui/src/common/Wiz.svelte (referenced lines 2, 25-26): Svelte v4 removed
SvelteComponentTyped so update the component typings and related TypeScript
usages: run the migration tool npx svelte-migrate@latest svelte-4 to auto-fix
common breaking changes, then edit Wiz.svelte to replace SvelteComponentTyped
usages with the new Svelte v4 typing patterns (use the new
Component/props/events/slots generics or export component types per the
migration output), update createEventDispatcher and Action generics to their v4
signatures, fix any resulting type errors, and re-run the typechecker/build
until type errors are resolved.

@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 2 times, most recently from cb5dd92 to 0355647 Compare October 28, 2025 10:36
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 7 times, most recently from 7fe2992 to 9d0b749 Compare November 5, 2025 19:49
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 6 times, most recently from 8f58131 to aecc5f7 Compare November 12, 2025 16:27
@socket-security
Copy link

socket-security bot commented Nov 12, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Added@​nomicfoundation/​hardhat-toolbox@​6.1.0981007679100
Added@​openzeppelin/​hardhat-upgrades@​3.9.19910010086100
Updatedhardhat@​2.26.3 ⏵ 2.26.594 +110092 +297 +180

View full report

@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch 2 times, most recently from c1d6ed3 to 8a80010 Compare November 12, 2025 20:30
@renovate renovate bot force-pushed the renovate/npm-svelte-vulnerability branch from 8a80010 to 6d165f9 Compare November 13, 2025 17:00
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.

1 participant