chore(deps): update dependency @nuxt/ui to v4 [security] - #143
chore(deps): update dependency @nuxt/ui to v4 [security]#143renovate[bot] wants to merge 1 commit into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #143 +/- ##
=======================================
Coverage 99.77% 99.77%
=======================================
Files 81 81
Lines 1340 1340
Branches 332 332
=======================================
Hits 1337 1337
Misses 3 3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
fad78a7 to
656a104
Compare
656a104 to
136d791
Compare
136d791 to
4d4b2e9
Compare
Preview sitepr-143: https://pr-143--stuartclark.netlify.app Updated 2026-09-09T23:39:31Z |
4d4b2e9 to
30cfd34
Compare
30cfd34 to
e884144
Compare
|
Important Review skippedBot user detected. To trigger a single review, invoke the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This PR contains the following updates:
^3.0.0→^4.0.0@nuxt/ui: UAuthForm / UForm SSR markup omits
method, leaking credentials via GET if submitted before hydrationGHSA-gj2h-2fpw-fhv9
More information
Details
Summary
UFormandUAuthFormrender a server-side<form>element with nomethodand noactionattribute, relying on a hydrated@submit.preventhandler to intercept submission. If a user submits the form before Vue hydration has attached the handler (autofill plus Enter on a slow network, JS bundle blocked by CSP or CDN failure, etc.), the browser performs the native default: aGETto the current URL with every named field, including<input type="password">, serialised into the query string.Details
src/runtime/components/Form.vue(around the template's<form>element) emits:No
method, noaction.@submit.preventis the only thing stopping native submission, and it only exists after hydration.UAuthFormcomposesUFormand inherits the same shape.The SSR snapshot of
UAuthForm(test/components/__snapshots__/AuthForm.spec.ts.snap) shows the rendered markup, with<input type="password" name="password">inside a<form>that has nomethod.Proof of concept
Reported by @nimonian:
UAuthForm.The URL becomes
/login?email=…&password=…. Reproducible deterministically in Playwright by triggering submit immediately onload.Impact
Any application using
UAuthForm(orUFormwith credential-shaped fields) as documented. The cleartext password lands in:window.history,Refererheader of every same-origin subresource fetched from the resulting URL,Patch
Default the rendered
<form>tomethod="post"so the pre-hydration fallback submits as POST rather than GET. Vue's@submit.preventstill intercepts the hydrated case; the attribute only matters in the race window. Applications that explicitly want native GET submission can opt back in by passingmethod="get".Credit
Reported by @nimonian. Originally filed as
GHSA-92g7-2fpq-hmq8againstnuxt/nuxt; moved here because the affected code lives in@nuxt/ui.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
nuxt/ui (@nuxt/ui)
v4.8.1Compare Source
Bug Fixes
method="post"to prevent credential leaking via GET before hydration (#6512) (7a0825a)tagPriorityto-2for inline style tag (2dac778)max-height(#6503) (f4d7cbe)v4.8.0Compare Source
⚠ BREAKING CHANGES
autocompleteprop tomodeto free up HTML attribute (#6474)Features
colorprop (#6405) (6f2396f)colorprop (#6406) (955dac1)bodyslot and improve actions alignment (#6460) (48685b6)colorprop andheaderslot (#6407) (c6ce8ca)submitOnEnterprop to control Enter behavior (b597f90), closes #6177highlightprop for error ring styling (a0deee4)useSearchCollection(#6432) (a1bef8b)storageOptionsprop (8f0101b), closes #6170iconprop andleadingslot (e6ea707), closes #6119positionprop (#6415) (844660a)Bug Fixes
wrap-break-wordto content slot (#6476) (eb468e6)useTokenSearchis enabled (898fbce)theme.prefixto hardcoded utility classes (f51b1e8)ui.triggerprop to trigger elements (252b906), closes #6428e.codefor alt shortcuts to handle macOS key remapping (231f156), closes #6444disabledattribute to button variant (2890c83), closes #6420trailing: falseover defaulttrailingIcon(#6457) (65b47ce)autocompleteprop tomodeto free up HTML attribute (#6474) (2799fa6)@nuxtjs/mdcwhen usingcontentoption (89f7778)[#build](https://redirect.github.com/nuxt/ui/issues/build)/ui.cssfallback for tooling (083c2a9), closes #5504valueoptional (f317c7f)ClassValueleaves (cac3860)v4.7.1Compare Source
Bug Fixes
@nuxtjs/i18nauto-localization (#6404) (dde09d0)v4.7.0Compare Source
Features
separatorslot (#6305) (81c7ddb)titleanddescriptionprops (3cf7d75), closes #6001group-labelslot (#6329) (7fc773c)searchDelayprop (7d2af05)@nuxtjs/i18nis installed (#5537) (92cfda0)autoResizemethod (#6120) (9c5c0df)Bug Fixes
leading-nonefrom fallback (#6383) (77ce09a)disabledprop when status is notready(600a2ca)defaultVariantsin template logic (#6361) (75b37d0)colorandhighlightinstead of raw props (bb5a9ed)v-showand$elresolution (#6310) (2c4ff35)tagPriorityfor inline style tags (#6299) (ae693d0)codeprop is missing (#6333) (b808ce4)item-alignedposition mode (#6358) (255807a)v4.6.1Compare Source
Bug Fixes
part.statefor streaming detection and deprecateisReasoningStreaming(d2d7543)collapsed: falsein mobile menu slots (957a0f5), closes #6157reka-uito prevent injection errors (#6286) (b822c43)v4.6.0Compare Source
⚠ BREAKING CHANGES
moduleDependenciesto manipulate options (#5384)Features
filesslot (12d6020)trueValue/falseValueprops (#6150) (91c6356)highlight-variantprop (#5746) (df080ce)filterprop (#6153) (a529b43)fileImageprop (#5935) (40f9c2e)autocompleteprop (#6026) (ee8a248)rangeprop (#6203) (c124f29)moduleDependenciesto manipulate options (#5384) (dd3f5c5)Bug Fixes
liftcalls for unavailable list extensions (#6100) (065db6b)statusandstatusTextproperties (1350d62), closes #6134close:preventemit (#6226) (9a0d501)v4.5.1Compare Source
Bug Fixes
stroke-defaultandfill-bg(#6095) (0e9198e)transformUIfrom mutating cacheduseComponentUIvalue (286738a), closes #6104 #4387isArrayOfArraytype return (#6097) (04292d9)v4.5.0Compare Source
Features
autoCloseprop (#6089) (2663deb)nested/nestedOptionsprops and emithoverevent (#5960) (ed60193)horizontalorientation (#5682) (f46b504)chipin items (#6064) (401a2c0)skipMeasurementvirtualize option (#5721) (548b711)outlineandsubtlevariants (94b0c31)Bug Fixes
ImgHTMLAttributestype for image prop (#6007) (0185856)data-stateconflict when used inside Tooltip (2bb1a8b), closes #3599update:modelValueemit type (#5927) (64d2e88)fixedprop to prevent responsive text size reduction (#6074) (8f5f44c)charprop as mention prefix instead of always@(0b9b097), closes #6035sizeto buttons (1ec1698), closes #5958cssLayeroption fromcomponentstobase(#6076) (e8bc322)byprop (14dceaf)shallowRefwhen watch deep is disabled (#6023) (bc06ce2)updateto keep toast open and reset duration (82afa0a)DotPathKeysaccuracy andGetItemKeysperformance (#6077) (6f7af3e)v4.4.0Compare Source
Features
weekNumbersprop (#4555) (7a1a71b)indicatorprop (#5257) (6a925cd)estimateSizeas function (#5748) (d51b424)inputprop (#5736) (12052e8)sizeprop (#5878) (3ae04c6)byprop (#5906) (36cd5e5)valueKeyprop (#5905) (55646ea)placeholder.modeprop (d90acb3), closes #5785sizeprop in menus (#5889) (571d50d)taskListhandler (#5837) (db04197)imageandmentionprops (b6fa83a), closes #5820ignoreFilterprop (#5880) (f8d1883)viewportReffor infinite scroll (#5836) (f4a945c)clearprop (#5643) (ec6b8ec)alignprop (859390e), closes #5795selectevent (#5826) (8e431be)Bug Fixes
contentTypewhen updating value (c37d6f7), closes #5709onClickfrom being called twice on items (cbed0cc), closes #5784maininstead ofdiv(6ccb1f5)csandskterminology for correct inflection (#5789) (af6f288)primarycolor andmdsize default variants (f422de8)expandAllprop (c79cb77), closes #5828v4.3.0Compare Source
Features
subprop on content slots (#5609) (b09e6bc)layoutIndependentoption (#4251) (ece0568)separatoroption (#5642) (4e71271)orientationprop (#5632) (b74ec6e)modelModifiersprop (#5559) (a92ee7b)[@source](https://redirect.github.com/source)for nuxt layers (#5630) (de98a72)itemsprop (cb34ca5)insetprop (05bd995)routeroption to disable router (#5213) (b34cf8a)scanPackagesoption (#5510) (4e57139)Bug Fixes
z-index(07147f1)UButtonimport (1b850bb)kind(feb756d)reverseprop under lg screens (#5545) (60b430c)aria-labelto thumb (#5313) (f99ec46)size(e885b0e), closes #4721 #3927v4.2.1Compare Source
Bug Fixes
stopandreloademits (#5400) (736a547)nametype (#5498) (b654a77)#app(#5491) (da8daaa)#build/ui.cssalias (#5499) (d9aadc7)v4.2.0Compare Source
⚠ BREAKING CHANGES
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.