Repository navigation
chore(deps): update dependency sass-loader to v17 - #3959
renovate[bot] wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0web/package-lock.json— lockfile refresh forsass-loader@17.0.0Analysis
sass-loaderis a devDependency used only at build time by Vue CLI/Webpack to compile.sass/.scsssources. It does not ship to production or process runtime user input, so there is no attacker-controlled input path to a security sink.Supply chain:
sass-loader@17.0.0is published by the official webpack project, has no known CVEs, and drops its prior runtime dependency (neo-async), slightly reducing transitive surface.Attack surface: Inputs are developer-controlled repository sources (Vue SFC styles, Vuetify SASS). Exploitation would require repository write access, which is outside the threat model for this dependency bump.
Compatibility note (non-security):
sass-loaderv17 removes legacy Sass JS API support and requires Node>=22.11.0. With the pinnedsass@~1.32.12,npm run buildfails (Unknown Sass implementation— ESM default-export mismatch with the legacy package). CI uses Node 24, so this is a build breakage risk, not a runtime security exposure.Prior threads
No previous automation review threads were present on this PR.
Sent by Cursor Automation: Find vulnerabilities
7d072a0 to
185ba7f
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0web/package-lock.json— lockfile refresh forsass-loader@17.0.0Analysis
sass-loaderis a devDependency used only at build time by Vue CLI/Webpack to compile.sass/.scsssources. It does not ship to production or process runtime user input, so there is no attacker-controlled input path to a security sink.Supply chain:
sass-loader@17.0.0is published by the official webpack project, has no known CVEs, and drops its prior runtime dependency (neo-async), slightly reducing transitive surface.Attack surface: Inputs are developer-controlled repository sources (Vue SFC styles, Vuetify SASS). Exploitation would require repository write access, which is outside the threat model for this dependency bump.
Compatibility note (non-security):
sass-loaderv17 removes legacy Sass JS API support and requires Node>=22.11.0. With the pinnedsass@~1.32.12, builds may fail (Unknown Sass implementation— ESM default-export mismatch with the legacy package). This is a build breakage risk, not a runtime security exposure.Prior threads
Previous automation review (no inline threads) re-validated; no findings remain.
Sent by Cursor Automation: Find vulnerabilities
185ba7f to
aeabcf6
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0web/package-lock.json— lockfile refresh forsass-loader@17.0.0Analysis
sass-loaderis a devDependency used only at build time by Vue CLI/Webpack to compile.sass/.scsssources. It does not ship to production or process runtime user input, so there is no attacker-controlled input path to a security sink.Supply chain:
sass-loader@17.0.0is published by the official webpack project, has no known CVEs, and drops its prior runtime dependency (neo-async), slightly reducing transitive surface.Attack surface: Inputs are developer-controlled repository sources (Vue SFC styles, Vuetify SASS). Exploitation would require repository write access, which is outside the threat model for this dependency bump.
Compatibility note (non-security):
sass-loaderv17 removes legacy Sass JS API support and requires Node>=22.11.0. With the pinnedsass@~1.32.12, builds may fail (Unknown Sass implementation— ESM default-export mismatch with the legacy package). This is a build breakage risk, not a runtime security exposure.Prior threads
Previous automation reviews (no inline threads) re-validated; no findings remain.
Sent by Cursor Automation: Find vulnerabilities
aeabcf6 to
713ec46
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Reviewed the full diff for PR #3959 (
sass-loader^13 → ^17). The change is limited toweb/package.jsonandweb/package-lock.json; no application, API, or runtime code is modified.Scope analyzed
- Dependency bump:
sass-loader13.3.3 → 17.0.0 (devDependency)- Build-time webpack loader only; compiles developer-controlled SCSS during
npm run build/serve- No new transitive runtime dependencies introduced (
sass-loader@17.0.0ships with zero dependencies; the priorneo-asyncdirect dep was removed)Checks performed
- Traced data flow: no attacker-controlled input reaches
sass-loader; SCSS sources are static project/vendored files (App.vue, Vuetify imports)- Verified existing controls: not applicable to this build-tool path; no production request handling involved
- Supply-chain review: no known CVEs/advisories for
sass-loader@17.0.0; Snyk/npm report no direct vulnerabilitiesnpm auditcomparison: identical vulnerability counts before/after (33 total);sass-loaderis not flaggedPrior automation threads
- Re-validated earlier assessments against the current diff; no unresolved medium+ findings remain applicable.
Outcome: No medium, high, or critical vulnerabilities identified that are introduced or newly exposed by this PR.
Sent by Cursor Automation: Find vulnerabilities
713ec46 to
9ef9922
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Reviewed the full diff for PR #3959 (
sass-loader^13 → ^17). The change is limited toweb/package.jsonandweb/package-lock.json; no application, API, or runtime code is modified.Scope analyzed
- Dependency bump:
sass-loader13.3.3 → 17.0.0 (devDependency)- Build-time webpack loader only; compiles developer-controlled SCSS during
npm run build/serve- No new transitive runtime dependencies (
sass-loader@17.0.0ships with zero dependencies; priorneo-asyncdirect dep removed)Checks performed
- Traced data flow: no attacker-controlled input reaches
sass-loader; SCSS sources are static project/vendored files (Vue SFC<style lang="scss">, Vuetify imports,main.scss)- Verified existing controls: not applicable to this build-tool path; no production request handling involved
- Supply-chain review: no known CVEs/advisories for
sass-loader@17.0.0; lockfile includes integrity hash; Snyk/npm report no direct vulnerabilitiesnpm audit:sass-loaderis not flagged among existing advisoriesPrior automation threads
- Re-validated earlier assessments against the current diff (
6f15cde7…9ef99222); no unresolved medium+ findings remain applicable. No prior inline review threads were present.Outcome: No medium, high, or critical vulnerabilities identified that are introduced or newly exposed by this PR.
Sent by Cursor Automation: Find vulnerabilities
9ef9922 to
758ecf2
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Reviewed the full diff for PR #3959 (
sass-loader^13 → ^17). The change is limited toweb/package.jsonandweb/package-lock.json; no application, API, or runtime code is modified.Scope analyzed
- Dependency bump:
sass-loader13.3.3 → 17.0.0 (devDependenciesonly)- Build-time webpack loader; compiles developer-controlled SCSS during
npm run build/serve- No new transitive runtime dependencies introduced (lockfile churn is formatting/reordering plus the single version change)
- No known CVEs for
sass-loader@17.0.0; package has zero bundled dependencies and an npm integrity hash in the lockfileAttack-path assessment
sass-loaderis not exposed to end-user input at runtime and does not ship in the production bundle.vue.config.jsdoes not pass attacker-controlled options into the loader.- No injection, authz, SSRF, XSS, path traversal, or deserialization surfaces are introduced by this bump.
Outcome: No medium, high, or critical vulnerabilities identified.
Sent by Cursor Automation: Find vulnerabilities
758ecf2 to
0146d96
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Reviewed PR diff (
sass-loader^13 → ^17 inweb/package.json+ lockfile refresh). This is a devDependency build-time webpack loader only; no application/runtime code changed.Checks performed:
- Traced attack surface: sass-loader compiles checked-in SCSS at build time; no attacker-controlled input path to a security sink in production.
npm auditvulnerability counts unchanged (31 total: 8 high, 20 moderate, 3 low, 0 critical) before vs after.- No known CVEs for
sass-loader@17.0.0; upgrade removes theneo-asynctransitive dependency.Prior threads: No unresolved automation findings to carry forward.
Verdict: No medium+ vulnerabilities introduced by this change.
Sent by Cursor Automation: Find vulnerabilities
0146d96 to
31151d8
Compare
|
Important Review skippedBot user detected. To trigger a single review, invoke the
|
| Layer / File(s) | Summary |
|---|---|
Update sass-loader constraint web/package.json |
Changes the sass-loader dependency constraint from ^13.0.0 to ^17.0.0. |
Estimated code review effort: 1 (Trivial) | ~2 minutes
🚥 Pre-merge checks | ✅ 5
-
✅ Passed checks (5 passed)
-
Check name Status Explanation Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request. Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request. Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled. Title check ✅ Passed The title accurately summarizes the main change: upgrading sass-loader to v17.
-
✨ Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create PR with unit tests
- Commit unit tests in branch
renovate/sass-loader-17.x
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; parsed comparison shows onlynode_modules/sass-loaderchanged (13.3.3→17.0.0); remaining diff is formatting/line endingsChecks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It is not bundled into the production runtime and does not process end-user input.- Input path: SCSS sources come from the repository and are compiled during
vue-cli-service build; no attacker-controlled data reaches the loader without prior repo write access.- Known CVEs: No published vulnerabilities for
sass-loader@17.0.0(npm advisory DB / Snyk).npm auditreports no issues tied to this package.- Transitive deps: v17 removes the
neo-asyncruntime dependency and drops deprecatednode-sasspeer support; no new vulnerable transitive packages introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
No unresolved automation review threads on this PR; previous assessments reached the same conclusion.
Sent by Cursor Automation: Find vulnerabilities
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@web/package.json`:
- Line 56: Update the web package dependencies so the sass version is at least
1.45.0 and compatible with sass-loader 17, then regenerate web/package-lock.json
to resolve the upgraded version and its dependency metadata.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 8a907c61-447b-4931-8cd2-ae6acb94a71d
⛔ Files ignored due to path filters (1)
web/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (1)
web/package.json
| "prettier": "^3.4.2", | ||
| "sass": "~1.32.12", | ||
| "sass-loader": "^13.0.0", | ||
| "sass-loader": "^17.0.0", |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n== web/package.json ==\n'
cat -n web/package.json | sed -n '1,220p'
printf '\n== web/package-lock.json (sass-related lines) ==\n'
rg -n '"sass-loader"|"sass"|compileStringAsync|compileString\(' web/package-lock.json web/package.json -n -C 2
printf '\n== locate sass-loader usage in web ==\n'
rg -n "sass-loader|sass" web -g '!web/package-lock.json' -g '!web/node_modules/**' -C 2Repository: semaphoreui/semaphore
Length of output: 50378
🏁 Script executed:
#!/bin/bash
set -euo pipefail
python3 - <<'PY'
import json, pathlib
p = pathlib.Path('web/package-lock.json')
data = json.loads(p.read_text())
# npm lockfile v3 structure may store packages under "packages"
pkg = data.get('packages', {}).get('node_modules/sass')
print('sass package entry:')
print(pkg)
pkg2 = data.get('packages', {}).get('node_modules/sass-loader')
print('sass-loader package entry:')
print(pkg2)
# Also root dependencies
print('root dependencies sass:', data.get('dependencies', {}).get('sass'))
print('root dependencies sass-loader:', data.get('dependencies', {}).get('sass-loader'))
PYRepository: semaphoreui/semaphore
Length of output: 1260
🌐 Web query:
sass-loader 17 peer dependency sass modern API compileStringAsync minimum supported sass version
💡 Result:
For sass-loader v17.0.0, the peer dependency requirement for the sass package is ^1.3.0 [1]. Regarding the use of the modern API and compileStringAsync: 1. API Support: sass-loader v17.0.0 has dropped support for the legacy Sass JS API entirely [2][3]. It now uses the modern API exclusively, with options for "modern" and "modern-compiler" modes [4][2][3]. 2. compileStringAsync: The compileStringAsync method is part of the Sass modern JS API, which was introduced in Dart Sass v1.45.0 [5]. Because sass-loader v17.0.0 enforces the modern API, it effectively requires a version of the sass package that supports these modern JS API methods (i.e., Dart Sass v1.45.0 or higher) [5][2]. 3. Performance Optimization: The loader's default API mode is "auto" [2][3]. In this mode, if your installed sass or sass-embedded package exposes initAsyncCompiler (a feature of recent versions), sass-loader will automatically use the "modern-compiler" API, which utilizes asynchronous compilation for improved performance [4][2][3]. It is recommended to use recent versions of the sass or sass-embedded packages to ensure full compatibility and performance benefits when using the modern API in sass-loader v17 [4][2][3].
Citations:
- 1: https://www.npmjs.com/package/sass-loader
- 2: https://github.com/webpack/sass-loader/blob/main/README.md
- 3: https://unpkg.com/sass-loader@17.0.0/README.md
- 4: https://github.com/webpack/sass-loader/
- 5: https://sass-lang.com/documentation/js-api/functions/compilestringasync/
Upgrade sass with sass-loader 17. web/package-lock.json still resolves sass to 1.32.13, which predates the modern Sass JS API. Bump sass to a modern Dart Sass release (>=1.45.0) and regenerate the lockfile.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@web/package.json` at line 56, Update the web package dependencies so the sass
version is at least 1.45.0 and compatible with sass-loader 17, then regenerate
web/package-lock.json to resolve the upgraded version and its dependency
metadata.
Source: MCP tools
429ff6c to
f56a4c0
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.0 (remaining diff is formatting)Analysis
sass-loaderis a devDependency used only at build time by webpack/vue-cli to compile SCSS. It is not bundled into the production Semaphore server and does not process runtime user input.- No application, API, auth, or runtime code is modified.
sass-loader@17.0.0has no known CVEs (Snyk, npm advisory DB).npm auditvulnerability counts are unchanged before vs. after this PR (29 total: 8 high, 18 moderate, 0 critical) — no new supply-chain risk introduced.- No plausible attacker-controlled input path to a security-sensitive sink was introduced by this change.
Prior threads
No unresolved security findings from earlier automation runs on this PR.
Sent by Cursor Automation: Find vulnerabilities
f56a4c0 to
e28d9e1
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.0 (remaining diff is formatting)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (Vue SFC styles, Vuetify). Exploitation would require prior repository write access, outside this dependency bump's threat model.
- Known CVEs: No published vulnerabilities for
sass-loader@17.0.0(npm advisory DB, Snyk, ReversingLabs).- Supply chain: Official
webpack/sass-loaderpackage; v17.0.0 has zero runtime dependencies (removes priorneo-asynctransitive dep). Lockfile comparison confirms no other package versions changed.npm audit: Vulnerability counts unchanged (29 total: 8 high, 18 moderate, 3 low, 0 critical) — no new supply-chain risk introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
No unresolved security findings from earlier automation runs on this PR; previous assessments re-validated.
Sent by Cursor Automation: Find vulnerabilities
Sent by Cursor Automation: Find vulnerabilities
e28d9e1 to
232dcb4
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.0 (remaining diff is formatting)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (Vue SFC styles, Vuetify). Exploitation would require prior repository write access, outside this dependency bump's threat model.
- Known CVEs: No published vulnerabilities for
sass-loader@17.0.0(npm advisory DB, Snyk, ReversingLabs).- Supply chain: Official
webpack/sass-loaderpackage; v17.0.0 has zero runtime dependencies (removes priorneo-asyncdirect dep). Lockfile comparison confirms no other package versions changed.npm audit: Vulnerability counts unchanged (29 total: 8 high, 18 moderate, 3 low, 0 critical) — no new supply-chain risk introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
c477f8d8…232dcb4c). No unresolved medium+ security findings; no prior automation inline threads to carry forward.Sent by Cursor Automation: Find vulnerabilities
232dcb4 to
f4ec7c5
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.0 (remaining diff is CRLF/formatting)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (Vue SFC styles, Vuetify). Exploitation would require prior repository write access, outside this dependency bump's threat model.
- Known CVEs: No published vulnerabilities for
sass-loader@17.0.0(npm advisory DB, Snyk, ReversingLabs).- Supply chain: Official
webpack/sass-loaderpackage; v17.0.0 has zero runtime dependencies (removes priorneo-asyncdirect dep). Lockfile comparison confirms no other package versions changed.npm audit: 29 total vulnerabilities (8 high, 18 moderate, 3 low, 0 critical); none tied tosass-loader— no new supply-chain risk introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
160347da…f4ec7c59). No unresolved medium+ security findings; no prior automation inline threads to carry forward.
Sent by Cursor Automation: Find vulnerabilities
Sent by Cursor Automation: Find vulnerabilities
f4ec7c5 to
2406d99
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.0 (remaining diff is CRLF/formatting)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (Vue SFC styles, Vuetify). Exploitation would require prior repository write access, outside this dependency bump's threat model.
- Known CVEs: No published vulnerabilities for
sass-loader@17.0.0(npm advisory DB, Snyk).- Supply chain: Official
webpack/sass-loaderpackage; v17.0.0 has zero runtime dependencies (removes priorneo-asyncdirect dep). Lockfile comparison confirms no other package versions changed.npm audit: 29 total vulnerabilities (8 high, 18 moderate, 3 low, 0 critical); none tied tosass-loader— no new supply-chain risk introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
333e71e9…2406d99d). No unresolved medium+ security findings; no prior automation inline threads to carry forward.
Sent by Cursor Automation: Find vulnerabilities
Sent by Cursor Automation: Find vulnerabilities
2406d99 to
32530ee
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.0Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (
main.scss, Vuetify imports). Exploitation would require prior repository write access, outside this dependency bump's threat model.- Known CVEs: No published vulnerabilities for
sass-loader@17.0.0(npm advisory DB, Snyk).- Supply chain: Official
webpack/sass-loaderpackage; v17.0.0 has zero runtime dependencies (peer-only). Lockfile diff confirms no other package versions changed.npm audit: No findings tied tosass-loaderorsass— no new supply-chain risk introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
ded97b5…32530ee). No unresolved medium+ security findings; no prior automation inline threads to carry forward.Sent by Cursor Automation: Find vulnerabilities
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.1Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringnpm run build/serve; it is not bundled into the production runtime and has no path for attacker-controlled input to reach a security sink.- Input tracing: SCSS sources are developer-controlled repository files (Vue SFC
<style lang="scss">, Vuetify imports). Exploitation would require prior repository write access, outside this dependency bump's threat model.- Configuration:
vue.config.jshas no customsass-loaderoptions that would widen the attack surface.- Known CVEs: No published vulnerabilities for
sass-loader@17.0.1(npm advisory DB, Snyk, Sonatype).npm auditreports no issues tied tosass-loader.- Supply chain: Official
webpack-contrib/sass-loaderpackage; v17.0.1 has zero runtime dependencies (drops v13'sneo-asyncdirect dep). Lockfile includes integrity hash.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
f0eed0b9…a9988bfd). No unresolved medium+ security findings; no automation-authored inline security threads to carry forward. The open CodeRabbit thread onsass/sass-loadercompatibility is a functional/build concern, not a security vulnerability.Verdict: Safe to merge from a security perspective.
Sent by Cursor Automation: Find vulnerabilities
a9988bf to
4355b20
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive version change issass-loader13.3.3 → 17.0.1 (remaining diff is CRLF/formatting)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (Vue SFC
<style lang="scss">, Vuetify imports). Exploitation would require prior repository write access, outside this dependency bump's threat model.- Known CVEs: No published vulnerabilities for
sass-loader@17.0.1(OSV, npm advisory DB, Snyk).- Supply chain: Official
webpack/sass-loaderpackage; v17.0.1 has zero runtime dependencies (removes priorneo-asyncdirect dep). Lockfile includes integrity hash.npm audit: No findings tied tosass-loaderorsass— no new supply-chain risk introduced.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
vue.config.jsdoes not pass attacker-controlled options into the loader.Prior threads
Re-validated all prior automation assessments against the current diff (
6b740c2d…4355b20d). No unresolved medium+ security findings; no prior automation inline threads to carry forward.Sent by Cursor Automation: Find vulnerabilities
Sent by Cursor Automation: Find vulnerabilities
4355b20 to
5074b97
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; programmatic comparison confirms onlysass-loaderchanged (13.3.3→17.0.1)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringnpm run build/serveand is not bundled into the production runtime.vue.config.jshas no customsass-loaderoptions.- Input tracing: SCSS sources are developer-controlled repository files (Vue SFC
<style lang="scss">, Vuetify imports). No path from external/user-controlled input to the loader at runtime; exploitation would require prior repository write access.- Supply chain: Official
webpack/sass-loaderpackage;sass-loader@17.0.1has no published CVEs (npm advisory DB, Snyk, Sonatype). v17.0.1 has zero runtime dependencies (drops v13'sneo-asyncdirect dep). Lockfile includes integrity hash.npm audit: 38 total vulnerabilities (14 high, 20 moderate, 4 low, 0 critical); counts unchanged before vs. after — none tied tosass-loaderorsass.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
5b3e4f76…5074b976). No unresolved medium+ security findings from earlier automation runs; no automation-authored inline security threads to carry forward. The open CodeRabbit thread onweb/package.json:56flags a functionalsasspeer-compatibility issue (sass@1.32.13vs modern API required by sass-loader 17), not an exploitable security vulnerability.Verdict: Safe to merge from a security perspective.
Sent by Cursor Automation: Find vulnerabilities
5074b97 to
01b10fc
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; only substantive change issass-loader13.3.3→17.0.1(removesneo-asynctransitive dep; no new packages added)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader only; it is not bundled into the production runtime. SCSS inputs are developer-controlled sources compiled duringnpm run build/ CI (Node 24).- Code paths: No custom
sass-loaderoptions invue.config.js; Vue CLI wires the loader internally.- Input → sink tracing: No attacker-controlled input reaches
sass-loaderat runtime. Exploitation would require commit access to SCSS sources or compromise of the build/CI environment — outside this dependency bump's threat model.- Supply chain:
sass-loader@17.0.1has no known CVEs (Snyk, npm audit). Lockfile diff adds no new transitive dependencies.- Prior findings: Validated all previous automation assessments; no unresolved security findings remain.
Note (non-security)
CodeRabbit flagged that
sass@~1.32.12may be incompatible withsass-loaderv17's modern Sass JS API (requires Dart Sass ≥1.45.0). This is a build/compatibility concern, not a security vulnerability.Sent by Cursor Automation: Find vulnerabilities
01b10fc to
c37ffcb
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh resolvingsass-loader@17.0.1Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service build/serveand is not bundled into the production Semaphore server. No customsass-loaderoptions invue.config.js.- Input tracing: SCSS sources are developer-controlled repository files (Vue SFC
<style lang="scss">, Vuetify imports). No attacker-controlled input reaches this loader at runtime.- Supply chain:
sass-loader@17.0.1is published by the official webpack project (webpack/sass-loader), has no known CVEs, ships with zero runtime dependencies, and is pinned with an npm integrity hash in the lockfile.- Prior threads: No unresolved automation security findings to carry forward.
Verdict: No medium+ vulnerabilities introduced by this change.
Sent by Cursor Automation: Find vulnerabilities
c37ffcb to
5e55f27
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; substantive change issass-loader13.3.3 → 17.0.1Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service buildand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input path: SCSS sources are developer-controlled repository files (
App.vue,Settings.vue, Vuetify imports). Exploitation would require prior repository write access, outside this dependency bump's threat model.- Config review:
vue.config.jsdoes not pass attacker-controlled options into the loader.- Known CVEs: No published vulnerabilities for
sass-loader@17.0.1(npm advisory DB). Package has zero bundled dependencies (peer-only:sass,webpack).- Supply chain: Official
webpack/sass-loaderpackage with lockfile integrity hash; no new vulnerable transitive packages introduced.npm audit: No findings tied tosass-loaderorsass.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
81be693…5e55f27). No unresolved medium+ security findings; no prior automation inline threads to carry forward.Sent by Cursor Automation: Find vulnerabilities
5e55f27 to
51cfe81
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh; programmatic comparison confirms onlysass-loaderchanged (13.3.3→17.0.1)Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader (devDependency). It compiles checked-in SCSS duringvue-cli-service build/serveand is not bundled into the production Semaphore server. No runtime user input reaches this loader.- Input tracing: SCSS sources are developer-controlled repository files (Vue SFC
<style lang="scss">, Vuetify imports). Exploitation would require prior repository write access, outside this dependency bump's threat model.- Configuration:
vue.config.jshas no customsass-loaderoptions that would widen the attack surface.- Known CVEs: No published vulnerabilities for
sass-loader@17.0.1(npm advisory DB, Snyk).npm auditreports no issues tied tosass-loaderorsass.- Supply chain: Official
webpack-contrib/sass-loaderpackage; v17.0.1 has zero runtime dependencies (removes priorneo-asyncdirect dep from v13). Lockfile includes integrity hash.- Application code: No changes to API handlers, auth, templates, or runtime frontend code.
Prior threads
Re-validated all prior automation assessments against the current diff (
5a16e607…51cfe81a). No unresolved medium+ security findings; no prior automation inline security threads to carry forward.Sent by Cursor Automation: Find vulnerabilities
51cfe81 to
3888864
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependency)web/package-lock.json— lockfile refresh resolvingsass-loader@17.0.1Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader only; it is not bundled into the production runtime. SCSS inputs are developer-controlled repository sources compiled duringnpm run build/serve.- Integration: No custom
sass-loaderoptions invue.config.js; Vue CLI default wiring only.- Supply chain:
sass-loader@17.0.1has no known CVEs (Snyk/npm advisory databases). The upgrade removes theneo-asynctransitive dependency and drops deprecatednode-sass/fiberspeer support.- Runtime exposure: No application, API, or server code changes; no new attacker-controlled input path to a security sink.
- CI compatibility:
sass-loaderv17 requires Node>=22.11.0; project CI uses Node 24.Prior findings
Validated prior automation security reviews — no unresolved security findings. The open CodeRabbit thread about upgrading
sassfor modern API compatibility is a functional/build concern, not a demonstrated security vulnerability.
Automated security review
Sent by Cursor Automation: Find vulnerabilities
3888864 to
8503358
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependencies)web/package-lock.json— lockfile refresh resolvingsass-loader@17.0.1; removesneo-asynctransitive dep from sass-loader; drops optionalnode-sass/fiberspeer metadata in favor of Dart Sass / optional@rspack/corePrior findings
- No unresolved security inline threads from earlier automation runs on this PR (only unrelated CodeRabbit functional feedback on
sassvs modern API compatibility).Checks performed
- Attack surface:
sass-loaderis a webpack build-time loader only; not bundled into the Semaphore server runtime. Inputs are repository-controlled.scss/.sassprocessed duringnpm run build/ dev serve — no path from untrusted production HTTP/API input to this loader.- Integration:
web/vue.config.jshas no customsass-loaderoptions or dynamic loader configuration that would widen trust boundaries.- Supply chain: Version pinned via lockfile integrity hash; public scanners (Snyk/npm) report no known direct CVEs for
sass-loader@17.x. Upgrade removes legacynode-sassoptional peer chain (historical ReDoS advisories targetedscss-tokenizervianode-sass, not Dart Sass).- Auth / injection / SSRF / XSS / secrets: No application, API, or workflow code changed.
Slack summary: PR #3959 — security review clean; no actionable findings.
Sent by Cursor Automation: Find vulnerabilities
8503358 to
e477366
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0web/package-lock.json— lockfile refresh forsass-loader@17.0.1Analysis
sass-loaderis a devDependency used only at build time by Vue CLI/Webpack to compile.sass/.scsssources. It is not bundled into the Semaphore runtime and does not process end-user HTTP input, so there is no plausible attacker-controlled input path to a security sink in application code.Supply chain: Resolved package is
sass-loader@17.0.1from the official webpack project on npm, with lockfile integrity pinning.npm auditreports no vulnerabilities tied tosass-loader. The update removes the priorneo-asyncruntime dependency, slightly reducing transitive surface.Attack surface: Compilation inputs are repository-controlled sources (Vue SFC styles, Vuetify SASS). Abusing the loader would require the ability to modify those sources or the build pipeline, which is outside the threat model for this Renovate bump.
Prior threads
Re-validated prior automation assessments (no inline security findings). No unresolved automation security threads remain.
Sent by Cursor Automation: Find vulnerabilities
Sent by Cursor Automation: Find vulnerabilities
e477366 to
ade528b
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependenciesonly)web/package-lock.json— lockfile refresh resolvingsass-loader@17.0.1Checks performed
- Attack surface:
sass-loaderis a build-time webpack loader only; it is not bundled into the production runtime. Sources are repo-controlled.scsscompiled duringnpm run build/servevia Vue CLI (no custom loader options invue.config.js).- Input → sink: No path for external attacker-controlled input to reach this loader in deployed Semaphore; exploitation would require compromising the repo or build environment (out of scope for this dependency-only change).
- Supply chain: Pinned tarball with integrity hash in the lockfile; Snyk/npm advisory data shows no known CVEs for
sass-loader@17.0.x.npm auditreports no issues attributed tosass-loader.- Runtime deps: Upgrade removes
neo-asyncfromsass-loader's dependency tree; no new production dependencies introduced.- Prior automation threads: Re-validated earlier runs — no unresolved security inline findings; none re-opened.
Note: CodeRabbit's open thread on
sasspeer compatibility is a functional/build concern, not a security finding.Sent by Cursor Automation: Find vulnerabilities
ade528b to
008a861
Compare
There was a problem hiding this comment.
Stale comment
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependencies)web/package-lock.json— resolvessass-loader13.3.3 → 17.0.1; no other dependency version changes in the diffChecks performed
- Attack surface:
sass-loaderis a webpack loader used only at build time (Vue CLI /@vue/cli-service). It is not bundled into the Semaphore server binary or exposed to HTTP clients. No application, API, or runtime code paths changed.- Attacker-controlled input: SCSS inputs are repository-controlled sources compiled in CI/release builds, not user-supplied content at runtime. No new loader options or
vue.config.jschanges that would widen file resolution or remote import behavior.- Supply chain: Lockfile pins
sass-loader@17.0.1with an integrity hash from the public npm registry; the package ships with no runtime dependencies (dependencies: {}). No new advisories tied tosass-loaderinnpm auditfor this bump.- Environment:
sass-loader@17requires Node>= 22.11.0; project CI already uses Node 24 (.github/workflows/dev.yml), so this does not weaken build isolation.Prior threads
Validated earlier automation assessments: no unresolved security findings; this review supersedes prior runs (
cleanup_previous).Sent by Cursor Automation: Find vulnerabilities
008a861 to
7375f13
Compare
There was a problem hiding this comment.
Security review — no findings
Outcome: No medium, high, or critical vulnerabilities identified in this PR.
Scope reviewed
web/package.json—sass-loaderbumped from^13.0.0to^17.0.0(devDependenciesonly)web/package-lock.json— resolvessass-loader13.3.3 → 17.0.1 (integrity-pinned)
Analysis
- Diff surface: Version/lockfile only; no application, API, or runtime code changes.
- Exploitability:
sass-loaderruns at build time inside the webpack/Vue CLI pipeline (@vue/cli-service/vue-cli-plugin-vuetify). It is not shipped to end users and does not process untrusted HTTP input in the deployed Semaphore UI. - Supply chain: Lockfile pins
sass-loader@17.0.1with anintegrityhash; no new runtimedependencies(v17 dropsneo-async).npm auditreports no advisories targetingsass-loaderfor this tree. - Prior automation threads: No unresolved inline security findings from earlier runs; nothing to re-report.
Residual (out of scope)
- Functional/CI compatibility (e.g.
engines.node >= 22.11.0onsass-loadervs local Node) is not a production security boundary for this app.
Sent by Cursor Automation: Find vulnerabilities
22d9adc to
0f2f516
Compare
0f2f516 to
226f7d1
Compare


This PR contains the following updates:
^13.0.0→^17.0.0Release Notes
webpack/sass-loader (sass-loader)
v17.1.0Compare Source
Minor Changes
data:resource from the loader's context, readingtext/x-sassas the indented syntax. (by @alexander-akait in #1352)v17.0.1Compare Source
Patch Changes
dart-sassprepends it when the compiled CSS contains non ASCII characters and thestyleoption iscompressed(the default for theproductionmode), but a BOM is only valid at the very beginning of a file - tools likecss-loadermove@importat-rules above it, so it ended up in the middle of the generated CSS and broke the rule after it. Source maps are shifted accordingly. (by @alexander-akait in #1337)v17.0.0Compare Source
Major Changes
Add
"auto"to theapioption and make it the default. When the Sass implementation supports the modern compiler,"auto"enables it and reuses a single long-running compiler across files, which significantly improves build performance; otherwise it falls back to themodernAPI. (by @alexander-akait in #1319)Remove
node-sasssupport. (by @alexander-akait in #1316)Minimum supported NodeJS version is
22.11.0. (by @alexander-akait in #1318)Convert source to native ECMAScript modules. The package now declares
"type": "module"and exposes both an ESM and a CommonJS build via theexportsfield. CommonJS consumers continue to work viarequire, and ESM consumers can nowimportthe loader directly. (by @alexander-akait in #1322)Remove legacy Sass JS API support. (by @alexander-akait in #1316)
Minor Changes
All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
16.0.8 (2026-05-08)
Bug Fixes
16.0.7 (2026-02-05)
Bug Fixes
16.0.6 (2025-10-23)
Bug Fixes
16.0.5 (2025-02-14)
Bug Fixes
@usewithcssextension (#1254) (3352e49)16.0.4 (2024-12-04)
Bug Fixes
16.0.3 (2024-11-01)
Bug Fixes
16.0.2 (2024-09-20)
Bug Fixes
v16.0.8Compare Source
v16.0.7Compare Source
v16.0.6Compare Source
v16.0.5Compare Source
v16.0.4Compare Source
v16.0.3Compare Source
v16.0.2Compare Source
v16.0.1Compare Source
Bug Fixes
modern-compilerapi (#1228) (f862f7a)v16.0.0Compare Source
⚠ BREAKING CHANGES
sassandsass-embeddedTo return to the previous logic use:
Features
sassandsass-embedded(10be1ba)v15.0.0Compare Source
⚠ BREAKING CHANGES
sass-embeddedoversassby default (#1211)Features
sass-embeddedoversassby default (#1211) (83423ff)14.2.1 (2024-04-16)
Bug Fixes
v14.2.1Compare Source
⚠ BREAKING CHANGES
sass-embeddedoversassby default (#1211)Features
sass-embeddedoversassby default (#1211) (83423ff)14.2.1 (2024-04-16)
Bug Fixes
v14.2.0Compare Source
⚠ BREAKING CHANGES
sass-embeddedoversassby default (#1211)Features
sass-embeddedoversassby default (#1211) (83423ff)14.2.1 (2024-04-16)
Bug Fixes
v14.1.1Compare Source
Features
modern-compilervalue for API to reuse compiler process (#1195) (cef40a8)modernandmodern-compilerAPI (#1197) (2265b72)Notes:
Using the
modern-compilervalue for theapioption together withsass-embeddedreduces compilation time by 5-10 times, especially for projects using large files with a lot of@import/@use, for small files the build time reduction will not be significant.14.1.1 (2024-02-19)
Bug Fixes
pkg:scheme (#1191) (c34c8e3)v14.1.0Compare Source
Features
modern-compilervalue for API to reuse compiler process (#1195) (cef40a8)modernandmodern-compilerAPI (#1197) (2265b72)Notes:
Using the
modern-compilervalue for theapioption together withsass-embeddedreduces compilation time by 5-10 times, especially for projects using large files with a lot of@import/@use, for small files the build time reduction will not be significant.14.1.1 (2024-02-19)
Bug Fixes
pkg:scheme (#1191) (c34c8e3)v14.0.0Compare Source
⚠ BREAKING CHANGES
fiberssupport18.12.0(627f55d)13.3.3 (2023-12-25)
Bug Fixes
13.3.2 (2023-06-09)
Bug Fixes
klonaforsassoptions (#1145) (9e87b6b)13.3.1 (2023-05-28)
Bug Fixes
Configuration
📅 Schedule: (UTC)
🚦 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.
This PR was generated by Mend Renovate. View the repository job log.