The Wire · Showcase
LANGUAGE TOOLS PATCHES SHELL INJECTION HOLE IN CI WORKFLOW
By RepoJournal · Filed · About Vue.js
A supply chain vulnerability in the auto-version GitHub Action could let malicious PR titles execute arbitrary commands during version bumps.
The vulnerability [1] lived in the `auto-version.yml` workflow, which pulled the PR title directly into a shell variable without sanitization. A PR title like `v3.0.0"; id; "` would execute as shell code despite existing regex checks, because GitHub Actions expands template variables before bash runs. The fix [2] now reads the PR title from environment variables instead, which bash treats as data not commands. This is the kind of supply chain risk that compounds quietly across thousands of repos using shared Actions. Update your local copy immediately if you fork language-tools.
Meanwhile, the VSCode extension got a fix [3] that restores TypeScript auto-imports in Vue files [4], closing a gap where IDE behavior diverged from standard TS. Vapor's compiler picked up two hydration fixes [5] [6] synced from core, addressing cursor tracking for nested insertions and useId evaluation order. Vue core shipped beta.13 [7] on the minor branch, so watch the changelog for what's coming next.
Action items
- → Review and merge the auto-version workflow fix [ref:1] immediately if you maintain any shared Actions vuejs/language-tools [immediate]
- → Update language-tools to pick up the VSCode extension fix for TS auto-imports vuejs/language-tools [plan]
- → Monitor v3.6.0-beta.13 changelog for breaking changes before upgrading vuejs/core [monitor]
References
- [1] fix(ci): read PR title from env in `auto-version` workflow to prevent injection (#6074) vuejs/language-tools
- [2] fix(ci): read PR title from env in `auto-version` workflow to prevent injection ↗ vuejs/language-tools
- [3] fix(vscode): preserve TS auto imports behavior in Vue files (#6072) vuejs/language-tools
- [4] fix(vscode): preserve TS auto imports behavior in Vue files ↗ vuejs/language-tools
- [5] fix(compiler/vapor): preserve hydration cursor for nested insertions vuejs/vue-jsx-vapor
- [6] fix(compiler/vapor): preserve useId evaluation order before dynamic vuejs/vue-jsx-vapor
- [7] v3.6.0-beta.13 ↗ vuejs/core
FAQ
- What changed in Vue.js on May 29, 2026?
- A supply chain vulnerability in the auto-version GitHub Action could let malicious PR titles execute arbitrary commands during version bumps.
- What should Vue.js teams do about it?
- Review and merge the auto-version workflow fix [ref:1] immediately if you maintain any shared Actions • Update language-tools to pick up the VSCode extension fix for TS auto-imports • Monitor v3.6.0-beta.13 changelog for breaking changes before upgrading
- Which Vue.js repositories shipped on May 29, 2026?
- vuejs/language-tools, vuejs/vue-jsx-vapor, vuejs/core